【ZABBIX3.4】監視除外時間の設定をする


技術営業部の中川です。

毎日のバックアップ・集計処理などで決まった時間にサーバの負荷が上がってアラートが発報されることがありますよね。
処理を止めるわけにもいかず、しかし無駄なアラートも削減したい…
そんなときに監視除外時間の設定を行うことで発報する必要のないアラートを削減することができます。

監視除外時間の設定

特定の時間で除外設定を行うには、time関数を使用します。
設定 > ホスト > 対象ホストを選択 > トリガー > 監視除外時間の設定をしたいトリガーを選択

元の条件式 + and(除外を開始する時間 or 除外を終了する時間)

{ホスト名:icmpping[<target>,<packets>,<interval>,<size>,<timeout>].max({$PING.RETRY.TH})}=0 and 
(({ホスト名:icmpping[<target>,<packets>,<interval>,<size>,<timeout>].time(0)} < 030000) or 
({ホスト名:icmpping[<target>,<packets>,<interval>,<size>,<timeout>].time(0)} > 033000))

⇒上記の設定では、 ping 疎通に失敗した時間帯が、3:00 ~ 3:30 の場合だけ、アラートが発生しないようになっています。

条件式ビルダーについて

条件式ビルダー > テスト
条件式ビルダーは、作成した条件式で複数パターンのテストを行うことができます。


入力項目は次のようになっています
※数値 (整数) の項目は監視の種類により異なります

数値 (整数) ping疎通 【0 = 失敗  1 = 成功】
HHMMSS 時、分、秒

ABCそれぞれの条件式は次のようになっています。

A の条件は ping疎通が失敗の時に TRUE 返します。
B の条件は 00:00:00 ~ 02:59:59 の間 TRUE を返します。
C の条件は 03:30:01 ~ 23:59:59 の間 TRUE を返します。

 

最終結果(一番下の項目)が TRUE もしくは FALSE になる条件

【A = TRUE    B or C = TRUE】

2つの結果がどちらも TRUE となっていれば、一番下の際最終結果は TRUE になります。

【A = TRUE    B or C = FALSE】

片方のみ TRUE のため、最終結果は FALSE になります。

【A = FALSE    B or C = TRUE】

片方のみ TRUE のため、最終結果は FALSE になります。

【A = FALSE    B or C = FALSE】

どちらも FALSE のため、最終結果は FALSE になります。

条件式の最終結果が TRUE であればアラートを通知します。
最終結果が FALSE であればアラートは通知されません。
これらをふまえて動作テストを実施します。

条件式ビルダーを使用して動作テスト

条件式ビルダーを使用して、監視除外時間の設定に間違いがないか確認をします。

=======================================================

例1(02:59:59 ping疎通に失敗)

⇒A = TRUE (ping疎通に失敗)
B = TRUE (00:00:00 ~ 02:59:59 に該当する)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = TRUE になるためアラートが発報される。

例2(03:30:01 ping疎通に失敗)

⇒A = TRUE (ping疎通に失敗)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = TRUE (03:30:01 ~ 23:59:59 に該当する)
最終結果 = TRUE になるためアラートが発報される。

例3(03:00:00 ping疎通に失敗)

⇒A = TRUE (ping疎通に失敗)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = FALSE になるためアラートが発報されない。

例4(03:30:00 ping疎通に失敗)

⇒A = TRUE (ping疎通に失敗)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = FALSE になるためアラートが発報されない。

例5(02:59:59 ping疎通に成功)

⇒A = FALSE (ping疎通に成功)
B = TRUE (00:00:00 ~ 02:59:59 に該当する)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = FALSE になるためアラートが発報されない。

例6(03:30:01 ping疎通に成功)

⇒A = FALSE (ping疎通に成功)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = TRUE (03:30:01 ~ 23:59:59 に該当する)
最終結果 = FALSE になるためアラートが発報されない。

例7(03:00:00 ping疎通に成功)

⇒A = FALSE (ping疎通に成功)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = FALSE になるためアラートが発報されない。

例8(03:30:00 ping疎通に成功)

⇒A = FALSE (ping疎通に成功)
B = FALSE (00:00:00 ~ 02:59:59 に該当しない)
C = FALSE (03:30:01 ~ 23:59:59 に該当しない)
最終結果 = FALSE になるためアラートが発報されない。

例で書いている8パターンを確認して、想定している動作であれば、問題ないかと思います。
ご参考になれば幸いです。

まとめ

今回はZABBIXの「監視除外時間の設定」を実施、「条件式ビルダー」を使って、簡単にテストを行ってみました。
テストで問題ないことを確認しても、設定を変更した後は必ずグラフ上でも想定している動きであることを確認しておきましょう!


この記事をかいた人

About the author