トリガ条件式について
障害の条件式:30秒監視間隔で、"ABC"が含まれるメッセージあれば検知対象としています。
{Template :snmptrap[***-**-MIB::***** type=. value=INTEGER: 3].iregexp("ABC",30)}<>0
復旧条件式:30秒経過後、trapを検知しなければ、自動的に復旧したものとみなすことにしています。
{Template :snmptrap[***-**-MIB::***** type=. value=INTEGER: 3].nodata(30)}=1
今回の事象:
10秒間隔で掲題のアラートを検知するインシデントが発生。
アラーム内容には"ABC"が含まれていないメッセージに関しても障害として検知してしまう(nodataの復旧条件式じゃ間に合っていないのが原因?)。←検知しないようにしたい。
どのような条件式にすれば、今後同様の事象が発生した際に対応できるようになるのか見当がつかず、、、
初歩的な質問で申し訳ありません。
お忙しいところ恐縮ですが、ご教示願います。
TNK - 投稿数: 4742
使用されているZabbixのバージョンがわかりませんが、iregexp()
の2つ目の引数がいらないのではないでしょうか?
MO - 投稿数: 4
ご回答ありがとうございます。
バージョンに関してはZabbix 5.0.16です。
iregexp()の二つ目の引数をなくす方向性でも考えてみますが、
現状、なぜ”ABC”を含んでいないメッセージに対しても障害として検知してしまうのかが不明なため、
復旧条件式を変更して障害として検知しない方向性も検討したいと思っています。
何か考えられる理由や条件式等ございましたら教えて頂けると幸いです。
TNK - 投稿数: 4742
iregexp()の第二引数に30秒を指定しているので、30秒内に該当の
文字列があれば、トリガーの条件を満たすからだと思います。
ただし、復旧条件との組み合わせで設定することが必要なので確
認します。
MO - 投稿数: 4
こちらとしては該当文字列が含まれない(トリガ条件式を満たしていない)ものまで障害として検知してしまうので想定外であるという認識なのですが相違ございませんでしょうか。
お忙しいところ大変申し訳ございません。
ご確認よろしくお願いいたします。
TNK - 投稿数: 4742
上で書いた通り、iregexp()の第二引数に30秒を指定しているので、
30秒の間にABCが含まれる行があれば障害という設定をされている
ので、例えば、
17:30:00 ABCが含まれるトラップが発生
17:30:25 ABCが含まれないトラップが発生
とトラップが発生した場合、17:30:00の時点で障害となることは納
得して頂けると思いますが、17:30:25でも、30秒以内にABCを含む
トラップが発生しているので障害と判定されるでしょう。
iregexp("ABC",30)を使用するということはそういう設定です。
設定されている通り、Zabbixが判定していると思います。
TNK - 投稿数: 4742
iregexp()の第二引数を指定しないと、同じアイテムで条件を満た
さないトラップを受信していないと復旧できないので、第二引数と
して、1を指定するのがとりあえずの対策になると思います。
ただし、1秒内に多数のトラップが発生するような環境だと使い物
になりません。
もうちょっと厳密に検出されられそうな方法もあるのですが、条件
式が長くなるし、私自身でのテストも十分ではないので、書くのは
止めておきます。
MO - 投稿数: 4
ご確認頂きありがとうございます。
大変勉強になりました。上記参考にして条件式を設定しようと思います。
お忙しい中本当にありがとうございました。