使用 rsyslogd 轮换并连续写入大型日志文件

使用 rsyslogd 轮换并连续写入大型日志文件

我有一个非常繁忙的日志文件(我们称之为/var/log/service.log),出于故障排除的原因,它也经常被搜索。它的输出几乎是连续的,而且是 24/7。它每天大概输出 1-2 GB,但我们需要全部。

由于fgrep大型日志文件的速度不切实际,因此需要频繁轮换。我已logrotate设置为在 中运行/etc/cron.hourly,使用指令和左右hourly的大小限制。512M

这按预期工作:文件从 旋转/var/log/service.log/var/log/service.log-20150810或诸如此类。问题是,重命名只是对 inode/目录条目进行外观更改,因此现在rsyslogd会继续写入/var/log/service.log-20150810一段时间,而新创建的条目/var/log/service.log则为空。在某个时候,rsyslogd确实决定开始写入新的条目,但我不清楚这样做的韵律或原因。

无论如何,我需要某种方式来“启动”rsyslogd它,告诉它开始/var/log/service.log在日志轮换后写入新的、原始的日志。向它发送 SIGHUP 似乎不起作用。任何不涉及丢失大量日志条目(即重新启动rsyslogd)的想法都将不胜感激!

(旁注:我知道logrotate命名方案会导致/var/log/service.log.1诸如此类的事情,所以,我有点困惑/var/log/service.log-20150810。它rsyslogd内部也会进行自己的旋转吗?这会有什么不利影响吗?)

提前谢谢了!

相关内容