在下面找到我正在使用的 logrotate 配置
/usr/local/nagios/var/nagios.log {
copytruncate
daily
rotate 7
compress
missingok
size 100M
}
我可以注意到状态文件/var/lib/logrotate.status
每天都会根据当前日期进行更新,但日志文件不会轮换,并且会以 GB 为单位增长,直到磁盘被填满。
会有什么问题呢?
答案1
问题可能是 Nagios 从未被终止/重新启动,因此它开始记录到新的日志文件。以下是几个示例,展示了您将如何执行该postrotate
操作。
/var/log/nagios/nagios.log {
daily
rotate 180
compress
dateext
missingok
notifempty
sharedscripts
postrotate
/sbin/service nagios reload > /dev/null 2>/dev/null || true
endscript
}
或者更直接的东西:
/var/log/nagios/nagios.log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/nagios.pid 2> /dev/null` 2> /dev/null || true
endscript
}
让 Nagios 来做
然而,在较新版本的 Nagios 中,它实际上会轮换自己的日志文件。包含的 logrotate 配置文件甚至说明了这一点。
在 Fedora 19 上安装 Nagios 版本 3.5.1-1:
$ more /etc/logrotate.d/nagios
# Important! Nagios rotates its own logs. Only enable this logrotate if you
# know what you are doing!
# For more information please see "log_rotate_method" in:
# /etc/nagios/nagios.cfg
# ----- logrotate config -------------
#/var/log/nagios/*.log {
# missingok
# weekly
# notifempty
# nocompress
# create 644 nagios nagios
#}