使用rsyslogd旋转和连续写入大型日志文件

我有一个非常繁忙的日志文件(我们称之为/var/log/service.log ),这也是经常search故障排除的原因。 输出到它几乎连续和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一段时间,而新创build的/var/log/service.log坐着空着。 在某些时候, rsyslogd决定开始写新的,但我不清楚它的韵律或理由。

无论如何,我需要的是“踢” rsyslogd告诉它开始写入一个新的,原始的/var/log/service.log跟随日志的旋转。 发送它SIGHUP似乎没有办法。 任何不涉及可能会失去大量日志条目(即重新启动rsyslogd )的想法,将不胜感激!

(注意:我知道logrotate命名scheme会导致/var/log/service.log.1以及其他情况,所以,我有点困惑地看到/var/log/service.log-20150810rsyslogd是否rsyslogd内部进行自己的轮换?是否会对此产生不利影响?)

提前谢谢了!