Linux /var/log的journal 和 messages 日志过大,导致系统目录磁盘不足


事故现场情况

公司项目演示环境登录报错

分析问题

cnetos 7系统,项目使用 k8s集群部署
排查业务系统问题,查看集群kube-system的pod状态
`kubectl get pod -n kube-system`
发现网络组件 calico-node 的 READY 为 0/1 (有种情况是,当磁盘资源不足20%的情况 calico-node会起不来)
`du -h --max-depth=1` (发现跟系统盘超过80%,系统盘只有40G)
发现 /var/log 的磁盘空间占用达到30G左右
`du -sh * | sort -rn`   (发现journal和messages每个文件基本都是5G左右)

journal日志问题解决

检查当前journal使用磁盘量     
journalctl --disk-usage
清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志,最大500M
journalctl --vacuum-time=2d
journalctl --vacuum-size=500M
如果要手工删除日志文件,则在删除前需要先轮转一次journal日志
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

要启用日志限制持久化配置,可以修改   /etc/systemd/journald.conf
SystemMaxUse=16M
ForwardToSyslog=no

重启
systemctl restart systemd-journald.service
检查journal是否运行正常以及日志文件是否完整无损坏
journalctl --verify

messages日志问题解决

修改配置文件  /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
大约配置文件的54行 ,修改为
*.none                /var/log/messages
重启 
systemctl restart rsyslog

清除已有的messages日志
cat /dev/null > messages-xxxxxx  (指定对于的日志文件)

解决系统问题

重启kube-system的calico-node的pod以及 业务系统 的pod,系统能正常登录使用。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM