snmptrapのトリガー設定

snmptrapを受信した際に常にトリガーでアクションを発生させるため、
trapに必ず含まれる文字列を条件としてトリガー設定をしています。

この場合だと1度受信するとトリガーのステータスが障害となり、
その障害の状態が続くため、以降のトリガーが作動しなくなります。
(ステータスが正常な状態に戻らないため)

何か、回避する方法などありますでしょうか。
Zabbixは1.8.10を使用しています。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

トリガーの設定で、「イベントの生成」を「ノーマル+障害イベントを継続して生成」に設定してみてください。

ユーザー cloret の写真

ご回答ありがとうございます。
記載いただいた設定で検知できるようになりました。

この場合であれば、トリガーのステータスは常時 異常となるのですが、
ステータスを正常に戻したい場合であれば、一定期間データが見取得であれば
正常に戻すなどのトリガー設定が追加で必要になるのでしょうか。

広瀬です。

ログ監視にしても、snmptrapに関しても似通った点がありますが、総じて言えることは以下の通りだと認識しています。

・ログ監視の場合

 トリガー条件対象とする文字列が「error」だったとします。

 →正常に戻すにはそのerrorに対して「正常になったor戻った」ということを示す文字列を別に定義する必要があります。
   しかし、一般的にログファイルにはエラーを出したら出しっ放しでありますし、どれが正常を示す文字列かという複雑
   なロジックが存在すると思います。

 →戻す場合
   過去のFORUMの履歴にもありますが、nodata関数を使用して強制的に一定時間(最小値30秒間)、同一エラー文字
   列の検知がなければ、トリガー値(TRIGGER.VALUE)を正常に戻すという処理を、トリガー条件式に組み込む方法です。

・SNMPTRAPの場合

 SNMTPRAPで投げた値が、仮に異常が「linkdown」だったとします。

 →SNMPTRAPの場合、linkdownに対をなすように正常時にはlinkupを飛ばしてくれるはずですので、
   正常に戻したい場合は、linkupをキーワードにTRIGGER.VALUE値を正常に戻す式を組み込むと
   理想に近い動きをするかと思います。
 
   {SNMPTRAP:snmptraps.str(linkDown)}=1
   {SNMPTRAP:snmptraps.str(linkUp)}=1
   {TRIGGER.VALUE}=0
   {TRIGGER.VALUE}=1

  この辺、組み合わせると良いのではないかと思います。

※ただし複数の全く違うネットワーク機器等のSNMPTrapを1つのシステムに投げている場合、
  同時に複数のポートダウン・アップ が同じ場合、若干検討する必要がありますので、ご注意ください。

ユーザー cloret の写真

分かりやすい丁寧な説明ありがとうございました。
理解する事ができました。

複数の同様のトラップが同時に投げられてくる状況なので、
nodata関数の方向で検討いたします。