大量アラート抑止のためのトリガー設定
ログ監視について、お力添えをいただけるとありがたいです
▲やりたい設定
あるログファイルでAかBという文字列があると1回目、2回目では障害として検知するが、5分で3回を超えるとそれ以上新たな障害として検知されないような設定にしたいです。そのために以下のような設定にしましたがトリガーが働きませんでした。正規表現を使用するとcountの関数は機能しないのでしょうか??(検知対象に文字列Aだけを指定した場合には想定通りにトリガーが働きましたが、A|Bのような正規表現を使用した形式だとトリガーが働きませんでした。)
▲障害条件式
"{Test_template:logrt[“/infra/script/xxxlog”].regexp(A|B)}=1
and
{Test_template:logrt[“/infra/script/xxxlog”].count(5m,A|B)}<3"
▲障害イベント生成モード:複数
▲復旧条件式(勝手に復旧しないように絶対に起こらない条件を設定)
{Test_template:logrt[“/infra/script/logs/xxxlog”].last()}=9999
▲環境
OS: RHEL/7.5
Zabbix Server :5.0.4
Zabbix Agent :1.8(Updateは出来ないです)
▲確認済みの事項
・アイテムタイプはZabbix Agent(アクティブ)
・Zabbix Agent/Zabbix Serverログはチェック済みで本件に関するエラーなし
・Zabbix Webインターフェイス上での検知対象を含むログも届いているのを確認済み(ログファイル自体は監視出来ている)
お忙しいところ恐縮ですが、よろしくお願い致します。
batica - 投稿数: 17
以下フォーラムの記事にそれらしきものがありました。
こちらでいかがでしょうか?
正規表現を使用するときは第3パラメータに「regexp」 or 「iregexp」を指定するようです。
デフォルト値が「eq」のようなので、正規表現を使用せず文字列Aだけ指定した時はトリガーが働いたのではないかと推測いたします。
Q.正規表現を使い、検知したい文字列が連続で3回出たときにアラートを発報させたい。
公式ドキュメントも念のため記載します。
1 Supported trigger functions
Kana.K - 投稿数: 2
>baticaさん
ありがとうございます、おかげ様で以下の設定で希望通りの挙動にできました。
"{Test_template:logrt[“/infra/script/xxxlog”].regexp(A|B)}=1
and
{Test_template:logrt[“/infra/script/xxxlog”].count(5m,A|B,"regexp")}<3"
お時間いただいてありがとうございました!