事故現場情況
公司項目演示環境登錄報錯
分析問題
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,系統能正常登錄使用。