现象
从 Grafana 监控面板查看到磁盘占满
初步判断是 logrotate 没有正常工作,日志占满磁盘。
首先登录到服务器删除日志,腾出系统空间,保障服务无异常后排查问题。
检查定时任务
查看定时任务是否配置,任务存在
检查定时任务是否启动,也没有问题
service cron status
手动执行
sudo /usr/sbin/logrotate /var/mars03/logrotate.conf
没看到输出,日志也无变化,感觉上还是 logrotate 的问题,检查配置文件内容跟其它运行良好的服务对比没发现不同
翻看了 logrotate 命令行参数,打印详细日志并忽略执行。
sudo /usr/sbin/logrotate -v -f -d /var/mars03/logrotate.conf
发现端倪
提示配置文件用户组不对
修改文件所属组
sudo chown root:root /var/mars03/logrotate.conf
再次运行,logrotate 正常工作,问题修复。
注意事项
多台机器同时需要修改时,需先删除日志文件,再启动 logrotate,如果遗漏会看到 CPU 疯狂工作的现象,解决方式是搜索到 logrotate 进程先杀掉,然后将消耗资源压缩进程也删除掉。