誰でも ZABBIX

Zabbixの使い方、役に立つ情報、等々

2. トリガー条件式(復旧条件)

障害の発生と復旧の通知、特に、障害が収束した状態の認識・通知方法は、運用管理の品質や効率化に関わる重要なポイントです。Zabbixのトリガーは、復旧条件も柔軟に設定可能です。

復旧条件

トリガー設定項目のなかに、正常イベントの生成 という設定項目があります。 やや表現が硬い感じはしますが、トリガーを解除する条件の指定方法の設定です。

f:id:Unam:20180211131440p:plain

項目 動作
条件式 トリガー発行時の条件式に合致しなければ、解除。
復旧条件式 トリガー発行とは別に復旧条件を設定し、その条件に一致すれば解除。
なし 一度トリガーが発行されたら自動的に復旧はしない。手動クローズする前提で使用します。

一つの監視アイテムに、上記の各条件を設定したトリガーを別々に設定し、挙動を確認します。

トリガーの設定

アイテムは、Zabbixトラッパーアイテムを使用します。

f:id:Unam:20180211163629p:plain

トリガー設定 その1(解除:条件式)

値が10以上でトリガーONという設定です。解除は、この条件を満たさなくなった時(10未満になった時)です。

f:id:Unam:20180211164129p:plain

トリガー設定 その2(解除:復旧条件式)

値が10以上でトリガーがONになりますが、解除は値が7未満になったら、という復旧条件を別途設定します。

f:id:Unam:20180211165500p:plain

これは、ヒステリシスとか、フラッピング防止といわれる設定で、トリガー条件近辺で値が変化し続けた際に、トリガーのON/OFFを繰り返すような状況を防ぐことができます。以前は、トリガーステータスなどのマクロを使って、やや面倒な条件式を記述する必要がありましたが、V3.2から復旧条件式として独立して記載できるようになり、わかりやすくなりました。

復旧条件式は、あくまでも条件式に合致しなくなった場合にのみ評価されます。そのため、データの存在そのものをチェックするnodata()関数を復旧条件式に記載しても、通常の条件式のように定期的にチェックはしてくれません。気をつけましょう。

トリガー設定 その3(解除:なし)

正常イベントの生成でなしを選択すると、一度トリガーが発行されたあと、値がどのように変化しようが、トリガーはONのままになります。

f:id:Unam:20180211165314p:plain

そのため、手動でトリガーを解除できるよう、手動でのクローズ許可にチェックを入れて設定する前提ではないかと思います。

f:id:Unam:20180211165334p:plain

トリガー発行と解除の動作

まず、トリガー発行される値をzabbix_senderでアイテムに設定します。

$ zabbix_sender -z 192.168.0.9 -s Test001 -k trapper.uint -o 12


3つのトリガーが同時にONになります。

f:id:Unam:20180211170232p:plain

次にトリガー発行条件を下回る、8という値を設定します。

$ zabbix_sender -z 192.168.0.9 -s Test001 -k trapper.uint -o 8


トリガー条件式に合致しなくなったため、1番目のトリガーは解除されましたが、復旧条件を満たしていないため、2番目のトリガーはまだONのままです。

f:id:Unam:20180211170956p:plain

今度は、5を設定します。

$ zabbix_sender -z 192.168.0.9 -s Test001 -k trapper.uint -o 5


f:id:Unam:20180211172407p:plain

2番目のトリガーも解除されました。

3番目のトリガーは、値の変化してもずっとONままです。解除を行いには、対象のトリガーをチェックし、障害対応コメントの一括処理をクリックします。

f:id:Unam:20180211172729p:plain

何かメッセージを入力し(これは必須です)、障害のクローズにチェックを入れ、障害対応コメントをクリックします。

f:id:Unam:20180211172930p:plain

これで、トリガーを解除できました。

f:id:Unam:20180211173101p:plain