ステータス状態が障害から正常に戻らない

zabbixバージョン:1.8.16
zabbixインストールOS:CentOS 6.3

zabbixサーバーの /var/log/messages に監視対象サーバーからsnmptrapを飛ばすように
しています。その後、アクションにてメールを飛ばす設定にしています。
同じトラップがその後30秒間飛んで来なければ、zabbixのWebUI上のダッシュボードの
システムステータスを正常に、ホストステータスを障害なしに戻したいと
思っていますが、うまく戻りません。
snmptrap受信時、メールを飛ばすところまではうまくいってます。

以下トリガーの設定です。

-------------------------------------------------------------------------------------------
トリガー 1つ目
名前:A-ALERT
条件式:(({Zabbix Server:log[/var/log/messages].regexp(snmptrapd)})#0 & ({Zabbix Server:log[/var/log/messages].regexp(A001)})#0)
依存トリガーなし
イベント生成:ノーマル
深刻度:致命的な障害

トリガー 2つ目
名前:正常復帰_A
条件式:(({Zabbix Server:log[/var/log/messages].nodata(30)})#0)
次のトリガーに依存:A-ALERT
イベント生成:ノーマル+障害イベントを継続して生成
深刻度:情報

トリガー 3つ目
名前:B-ALERT
トリガーA-ALERTの条件式がA001からE001に変わったもの
その他はA-ALERTと同じ設定。

トリガー 4つ目
名前:正常復帰_B
依存先をB-ALERTに設定
その他はトリガー2つ目の正常復帰と同じ設定。
-------------------------------------------------------------------------------------------
この設定でsnmptrapを受信してA001の文字列が入ったものが
発生すると、監視データのイベントには、
トリガーA-ALERT 「障害」 アクション「正常」
トリガーB-ALERT 「正常」 継続時間がずっと続いてる
トリガー正常復帰_A 「正常」 継続時間がずっと続いてる
トリガー正常復帰_B 「正常」 51sで一度終了して、
 その後、30sおきに「障害」を放ち続けてる。

依存先の設定をしていれば、依存先のトリガーが
発砲されていなければ動作しないと思っていましたが、
認識違いでしょうか。
何か設定が間違っている点などあればご指摘頂ければと思います。

宜しくお願いします。

コメント表示オプション

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

nodata()を利用しているトリガーは、Zabbixサーバ内部で30秒毎に評価されるようになっています。そのため、トリガーのイベント生成の設定で「ノーマル+障害イベントを継続して生成」を利用していて、かつnodata(30)#0のトリガー設定があると、直近30秒以内に受信データが存在しないと、30秒ごとに障害イベントを生成します。

Zabbixではログ/トラップ監視の場合に自動的に正常状態に戻す処理を行うのは難しく、「障害対応コメント」の機能とダッシュボードのフィルタ設定(右上にあるスパナのアイコンから設定できます)を利用して、障害対応コメント入力済みの障害をダッシュボードに表示しない設定にすることをおすすめします。

ユーザー umappis の写真

返信ありがとうございます。

ダッシュボードの表示はフィルタ設定の障害対応コメントで運用カバーする点は理解しました。

しかし、トラップが一度だけでなく連続して /var/log/messages に上がってくるので、
最初の一発目だけメールを飛ばしたくA-ALERT、B-ALERTのイベント生成をノーマルに現在しております。
この場合、最初のトラップから一定時間経過後、もう一度同じトラップが発生すると
トリガーが実行されません。
監視対象機器を「障害」の状態から「正常」の状態へ戻す必要があるとの認識ですが、
どのようにしたら「障害」から「正常」に戻るのでしょうか。

ユーザー umappis の写真

正常復帰のトリガーをなくし、各ALERTトリガーに({Zabbix Server:log[/var/log/messages].nodata(30)})=0の条件を
付加することで思い通りの動作が出来ました。

しかし、障害発生時のダッシュボードは「障害あり」となっているのに対し、
30秒時間が経過すると正常に戻す処理を追加したため、
30秒経過するとダッシュボードには障害情報が残りません。

ダッシュボード上に障害があった情報を残すにはどのようにしたら宜しいでしょうか。

ユーザー matt の写真

私はダッシュボードでは、一旦正常に戻ってしまった情報は消えてしまうものと言う認識でいます。(方法があるのなら私も知りたいです)
ですから、一旦メール送信やパトライトで検知され、その後ダッシュボードを見た時に既に情報が無い場合(正常に戻っていると想定)はトリガーメニューに行き、
「Show trigger with unacknowledged events」でフィルターをかけて見つける、というルールにしています。
対処後は「障害対応コメント」を入れ、次回のフィルター検索時に検索されないようにもしています。

上記追記:トリガーメニューで'障害のみ表示'(S_SHOW_ONLY_PROBLEMS)でフィルタした場合に、異常から正常に戻ってからも30分(デフォルト設定)は表示されます。
http://old.zabbix.jp/modules/newbb/viewtopic.php?topic_id=408&forum=6
ダッシュボードから正常になって消えた後はこれでの確認が一般的なのかと思います。
但し、未対応(コメント未記入)のままでも30分以降は見えなくなるので、未対応を時間経過後も見落とさないようにしたい場合は上記のフィルターが有効と思います。

ユーザー umappis の写真

mattさん

返信ありがとうございます。

ダッシュボードでは、たった今の状態を見る際に利用するもので、
少し時間が経過してしまった場合は、トリガーメニューで確認するのが一般的ということですね。

運用の仕方にもよると思いますが、紹介頂いた方法で運用者に報告します。
ありがとうございました。