我正在尝试使用logrotate将审计日志保留一段时间,而不是使用auditd的特殊轮询(从/etc/audit/auditd.conf )。 我已经将该文件中的max_log_file_action更改为IGNORE 。
以下是我的logrotateconfiguration:
/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 }
日志成功旋转。 但是,审计守护进程不会再次开始logging。 /var/log/audit/audit.log保持为空,直到我重新启动审计服务。 我也试过/bin/kill -USR1和service auditd reload /bin/kill -USR1 service auditd reload ,但是这些选项也不能正常工作。 /bin/kill -USR1实际上保持了审计守护进程的运行,但它创build了一个空的audit.log.1文件。
有没有办法成功地发送信号到审计守护进程,以保持它在logrotate之后运行?
谢谢。
回答这个由于社区颠簸…
Auditd支持通过service auditd rotate命令强制轮换。 你可以把它和一个cron结合起来,根据时间来运行它。 (每天,每小时,每个星期二上午10点等)
RPM中包含一个示例,位于/ usr / share / doc / audit- $ version /auditd.cron。
我相信你的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 }