(/etc/audit/auditd.conf
からの)auditdの特別なローテーションを使用するのではなく、logrotateを使用して監査ログを一定期間保持しようとしています。そのファイルの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
ファイルを作成します。
ログローテーション後も監査デーモンを実行し続けるために、監査デーモンにシグナルを正常に送信する方法はありますか?
ありがとう。
コミュニティのバンプのためにこれに答える...
Auditdは、service auditd rotate
コマンドによる強制ローテーションをサポートしています。これをcronと組み合わせて、時間に基づいて実行できます。 (毎日、毎時、毎週火曜日の午前10時など)
/usr/share/doc/audit-$version/auditd.cronにあるRPMに例が含まれています。
あなたのkillコマンドは実際にはプロセスの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
}