我正在尝试使用 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 -USR1
和service 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。