zabbixはサーバリソースの監視以外でログ監視が利用出来ます。
特定の文字列に絞り込んだログ監視は得意ですが、集めたログ情報からアクション(メールを発報する等)を行う際に引っかかってしまう事があります。
例えば「/var/log/message」に対してログ監視を行う場合「error」をzabbixがアイテムで収集する設定をします。
log[/var/log/messages,error|Error|ERROR]
こんな感じでしょうか。勿論正規表現で書きだしても良いと思います。
その後、トリガーの条件式で
"error"が含まれている行で"test","hoge"が入っているアイテムはトリガーの条件式としない
を設定します。
{log[/var/log/messages,error|Error|ERROR].iregexp(test|hoge)}#1
こんな設定を適用するとします。
次にアクションにてこのトリガーを登録して、条件に引っかかったアイテムがあるとします。
すると
"error"が含まれている行で"test","hoge"が入っていない」
行が存在する場合、以下の表題でメールが受信出来ます。
PROBLEM: ログ監視(/var/log/messages) on {ログ監視対象サーバ}
ただ、この場合そのメールが来た後、以下の条件
「"error"が含まれている行で"test","hoge"が入っている」行が存在する場合
が当てはまる場合、次のメールが届いてしまいます。
OK: ログ監視(/var/log/messages) on {ログ監視対象サーバ}
これは「条件にあてはまればPROBLEMとして、そうでなければOK」という条件に当てはまるものによります。
これを回避したい場合以下の事を設定すれば「PROBLEM」のメールのみ発報されます。
設定内容としてはアクションの設定で
「アクションの実行条件」タブで
1.アクションの実行条件にて
→「トリガーの値」を「=」と「障害」で設定
2.計算のタイプ
→「AND/OR」に変更
以上を行うだけです。
ログ監視の設定に悩まされてる方は参考にしてみては如何でしょうか。