我尝试了一些东西,但仍然无法有效地旋转haproxy日志。 当日志文件跨越500 MB大小时,我需要旋转日志。 考虑到haproxy服务很大没有。 的静态TCP连接,我不能重新启动haproxy进程,虽然重新加载是可行的。 每日haproxy日志文件大小通常在我的机器上超过3 GB。 以下是日志文件大小超出限制设置的较新机器的示例:
ubuntu@server:/mnt/log/haproxy$ ls -lsh total 4.3G 85M -rw-r----- 1 syslog adm 85M Jun 2 07:13 haproxy.log 2.9G -rw-r----- 1 syslog adm 2.9G Jun 2 06:37 haproxy.log.1 460M -rw-r----- 1 syslog adm 460M Jun 1 06:32 haproxy.log.2.gz 469M -rw-r----- 1 syslog adm 469M May 31 06:42 haproxy.log.3.gz 384M -rw-r----- 1 syslog adm 384M May 30 06:49 haproxy.log.4.gz ubuntu@server:/mnt/log/haproxy$ cat /etc/logrotate.d/haproxy /mnt/log/haproxy/haproxy.log { missingok copytruncate notifempty rotate 50 size 500M compress delaycompress }
Logrotate不会持续监视您的日志文件。 通常,logrotate是作为/etc/crontab指定的日常cron作业的一部分运行的,它在/etc/cron.daily运行脚本。 因此,它正在按照预期的方式运行,如果文件大于500M并且它们被旋转。
如果你想抓取更接近500M的日志文件,你需要更频繁地运行logrotate。 您可以通过将/etc/cron.daily/logrotate脚本复制到/etc/cron.daily/logrotate来执行此操作。
这也意味着其他日志文件也可能会提前旋转。