阿里云首页

通用方案:专有云V3环境中清理virtualmaster容器日志文件的方法

1. 概述

本文主要介绍在专有云V3的环境中,清理virtualmaster容器日志文件的方法。

方案总览

类别 内容
国产化
风险等级(方案执行的影响)
操作方式 黑屏
操作复杂度
预估执行时长 20分钟
客户业务的影响
可监控性 支持
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) 临时
数据修订(变更是否涉及增删改操作)
执行灰度策略 请向产品侧咨询,明确灰度策略
首次发布时间 N/A
预计完成时间 N/A

1.1. 适用范围

  • 专有云版本:V3.*  
  • 产品:VPC

1.2. 风险说明

  • 此次操作仅在容器中进行操作,未对镜像执行操作。当容器重拉后,新生成的容器不会存在本方案中涉及的cron软件包和定时任务,需要重新设置定时任务。
  • 当删除相关日志,如果后续virtualmaster出现问题,需要根据日志排查问题时,可能会因为历史日志不存在,而无法及时排查问题。

1.3. 用户告知

以下操作如无特殊说明,请在root用户下执行。

2. 问题描述

VPC集群的virtualmaster容器内,日志文件占用磁盘空间过高,默认此容器内没有设置定时任务,故添加定时任务清理日志文件释放磁盘空间。

3. 解决方案

3.1. 环境检查

参考以下步骤,进行环境检查:

登录virtualmaster容器并确认系统版本

  1. 登录天基控制台,在Project框中搜索vpc,选择集群,单击集群右侧的集群运维中心,进入集群运维中心页面。
  2. 选择vpc-controller服务,选择Virtualmaster#服务角色,单击服务器右侧的Terminal,登录Virtualmaster#服务角色对应的机器。
  3. 执行以下命令,查看virtualmaster容器ID。
    sudo docker ps |grep virtualmaster
  4. 执行以下命令,进入virtualmaster容器。
     sudo docker exec -it [$Container_ID] bash
    说明:[$Container_ID]为上一步获得的virtualmaster容器ID。
  5. 执行以下命令,确认系统版本。
    cat /etc/issue
    系统显示类似如下。
    1.jpg

确认virtualmaster容器内没有添加定时任务。

执行以下命令,确认容器内没有添加定时任务。

crontab -l

确认存在未清理的日志文件

依次执行以下命令,确认存在7天之前未清理的日志文件。

find /home/admin/virtualmaster/logs/virtualmaster/ -name "*.[[:digit:]]*.log.gz" -mtime +7
find /home/admin/virtualmaster/logs -name "*.log.[[:digit:]]*" -o -name "*[[:digit:]]*.log" -mtime +7
find /home/admin/virtualmaster/logs/virtualmaster/detailInfo -name "*[[:digit:]]*.log" -mtime +7

3.2. 实施步骤

参考以下步骤,在virtualmaster容器内添加定时任务:

  1. 登录virtualmaster容器,执行以下命令,确认Crond服务正在运行。
    service crond status
  2. 依次执行以下命令,添加定时任务。
    echo '0 1 * * * find /home/admin/virtualmaster/logs/virtualmaster/ -maxdepth 1 -name "*.[[:digit:]]*.log.gz" -mtime +7 -delete' >> /var/spool/cron/root
    echo '0 1 * * * find /home/admin/virtualmaster/logs/virtualmaster/detailInfo -name "*[[:digit:]]*.log" -mtime +7 -delete' >> /var/spool/cron/root
    echo '0 1 * * * find /home/admin/virtualmaster/logs/ -maxdepth 1 -name "*.log.[[:digit:]]*" -mtime +7 -o -name "*[[:digit:]]*.log" -mtime +7 -delete' >> /var/spool/cron/root
  3. 执行以下命令,确认定时任务添加成功。
    crontab -l

3.3. 结果验证

待定时任务执行成功之后,登录virtualmaster容器,依次执行以下命令,确认已经清理之前的日志文件。

find /home/admin/virtualmaster/logs/virtualmaster/ -name "*.[[:digit:]]*.log.gz" -mtime +8
find /home/admin/virtualmaster/logs -name "*.log.[[:digit:]]*" -o -name "*[[:digit:]]*.log" -mtime +8
find /home/admin/virtualmaster/logs/virtualmaster/detailInfo -name "*[[:digit:]]*.log" -mtime +8

4. 回滚方案

登录virtualmaster容器,删除添加的定时任务。

 

 

首页 通用方案:专有云V3环境中清理virtualmaster容器日志文件的方法