logrotate 脚本运行后 auditd 进程停止记录

logrotate 脚本运行后 auditd 进程停止记录

我正在尝试使用 logrotate 在一段固定时间内保留审计日志,而不是使用 auditd 的特殊轮换(来自/etc/audit/auditd.conf)。我已将该文件中的更改max_log_file_action为。IGNORE

以下是我的logrotate配置:

/var/log/audit/audit.log {
    daily
    dateext
    rotate 180
    postrotate
        /bin/kill -HUP `cat /var/run/auditd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

日志已成功轮换。但是,审计守护进程不会再次开始记录。/var/log/audit/audit.log在我重新启动 auditd 服务之前,它仍为空。我也尝试过/bin/kill -USR1service auditd reload,但这些选项也不起作用。/bin/kill -USR1实际上使审计守护进程保持运行,但它会创建一个空audit.log.1文件。

有没有办法在 logrotate 之后成功向审计守护进程发送信号以使其保持运行?

谢谢。

答案1

我相信您的 kill 命令实际上无法终止该进程。请尝试以下操作:

/var/log/audit/audit.log {
    daily
    dateext
    rotate 180
    postrotate
        $(/bin/kill `cat /var/run/auditd.pid 2> /dev/null`)
        service auditd restart
    endscript
}

答案2

由于社区冲突,所以回答这个问题...

Auditd 支持通过service auditd rotate命令强制轮换。您可以将其与 cron 结合使用,以根据时间运行它。(每日、每小时、每周二上午 10:00 等)

RPM 中的 /usr/share/doc/audit- 中包含一个示例$版本/auditd.cron。

相关内容