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