auditd.conf
に以下を入力すると、ディスクの空き容量が50MB以下になると、auditd
はログ記録を一時停止します。
admin_space_left = 50
admin_space_left_action = SUSPEND
外部プログラムはどのようにできますか?モニットチェック、auditd
がこの一時停止状態に達したかどうかを知っていますか?
(EXEC
がロギングを一時停止したときに、auditd
アクションを使用して何かを実行することもできますが、それは私の目的には適していません。)
CentOSシステムでは、さまざまなディスク容量の制限が満たされたときに何をすべきかが構造化されています...
space_left = 75
space_left_action = SYSLOG
admin_space_left = 74
admin_space_left_action = SUSPEND
これにより、監査ログを格納するパーティションの空き領域が75MBを下回ると、このメッセージがsyslogに発行されます。
5月21日08:53:01c6test auditd [5851]:監査デーモンのログ用ディスク容量が不足しています
同様に、スペースが74MBを下回ると、このメッセージがsyslogに発行されます。
5月21日08:54:01c6test auditd [5851]:ディスク容量が少ないため、監査デーモンがロギングを一時停止しています。
したがって、あなたの質問に答えるために、syslogにメッセージを書き込み、syslogがシステムログへの道を見つけて、monitがそれを探すように構成できるようにします。
実際のメッセージとは何か、どのログファイルに書き込まれるかは、OSやディストリビューションに依存する可能性があります。
ソースコード(バージョン2.6.7)を見ると、デバッガーをプロセスに接続してlogging_suspended
内部変数の値をダンプする以外に、現在の「一時停止」状態を取得する方法はありません。
テストメッセージを送信して、ログに記録されることを確認できます。そうすれば、suspended条件だけでなく、ロギングの発生を妨げるものもチェックします。つまり、それがずっと正しく機能することを検証します。
msg="audit test $(uuidgen)" || exit # generate unique message
auditctl -m "$msg" || exit # send the unique message
sleep 1 # enough time for the message to be logged
ausearch -ts recent -m USER | grep -Fqe "$msg" && echo OK