1、刪除 /etc/logrotate.d/rsyslog 文件中 /usr/bin/killall -HUP rsyslogd,避免messages日志對(duì)auth.log的影響
2、另一臺(tái)機(jī)器 ssh 該系統(tǒng),該行為會(huì)觸發(fā)系統(tǒng)內(nèi)auth.log的記錄
3、執(zhí)行命令進(jìn)行手動(dòng)日志輪轉(zhuǎn)
logrotate -vf /etc/logrotate.conf
4、執(zhí)行命令ps -elf | grep rsyslog; lsof -p {PID} | grep var,可見rsyslog一直在操作已刪除的文件。
該問題原因?yàn)?logrotate 操作輪轉(zhuǎn)切割日志 /var/log/auth.log文件后,rsyslog 進(jìn)程打開切割前日志文件 /var/log/auth.log沒有被關(guān)閉,使用lsof 能夠查看到 /var/log/auth.log (deleted)文件被占用狀態(tài),資源沒有被釋放。
解決該問題需要每次日志切割輪轉(zhuǎn)后向 rsyslog.service發(fā)送HUP信號(hào)重新加載配置,命令為 /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true,保證輪轉(zhuǎn)切割日志后,可以及時(shí)釋放資源,避免出現(xiàn)上述問題。
升級(jí)rsyslog軟件包至rsyslog-8.1907.0-5.p02.ky10以上版本
# yum update rsyslog
重新加載服務(wù)配置文件
# systemctl daemon-reload
確認(rèn)服務(wù)狀態(tài)正常
# systemctl status rsyslog