Linuxのシスログ監視を行っております。
アイテムはシスログのerrorを収集する設定で、
収集した全ログをアラート発報対象にし、
特定のログ(既知の無視して良いエラー)はアラート発報対象外という設定にしたいです。
この場合、Linuxはエラーの文言でアラート対象から除外していくしかないでしょうか。
その場合テンプレートマクロを使用して、「|」で区切りながら文言を追記していこうと思っていますが、
長くなってしまうので、いい方法があればご教示頂きたいです。
他により良い方法があればそちらもお願いいたします。
環境
zabbix:6.4
ama - 投稿数: 76
下記リンクのグローバルな正規表現の機能を使うことで、
「|」で区切りながら~については回避できるのではないでしょうか?
https://www.zabbix.com/documentation/current/jp/manual/regular_expressions
グローバルな正規表現で除外条件を設定し、トリガーの除外条件に設定したグローバルな正規表現名で指定することで、
除外条件が増えた時には、トリガー条件式で「|」を使って追加するのではなく、グローバルな正規表現の設定で追加することができるかと思います。
hiro3333 - 投稿数: 4
ご返信ありがとうございます。
こちらの確認不足でしたら申し訳ないのですが、
グローバルな正規表現を使用すると、
除外したい文言が複数ある場合に、
条件式を追加していくと条件をANDで見られてしまい、
全文言に合致した場合に除外処理となってしまわないでしょうか?
ama - 投稿数: 76
以下条件で検証してみました。
■アイテム
アイテムキー :log[/xxx/xxx/test.log,,,,skip]
■トリガー
トリガー条件式 :find(/hostname/log[/xxx/xxx/test.log,,,,skip],,"regexp","@test")=1
■グローバルな正規表現
名前 :test
条件式
条件式の形式:文字列が含まれない
条件式 :test
条件式の形式:文字列が含まれない
条件式 :info
■ログ出力メッセージ
①message_test
②message_info
③message_warn
結果として、③のみトリガーが発動して障害として通知されました。
上記のような設定については「or」条件で判定されていると思われます。
そのほかの条件式の形式での検証は行っていないのでわかりませんが、
今回やりたいことは実現できるのではないでしょうか?