【Zabbix3.4】トリガーで特定の曜日のアラートの発生を抑える


こんにちは。

システムソリューション部運用管理課の宮崎です。

本日はZABBIX3.4で、特定の曜日にアラートが発生するのを抑えるトリガーを紹介したいと思います。
技術営業部の中川が「【ZABBIX3.4】監視除外時間の設定をする」という記事も書いていますのでこちらもよければ見ていってください。

特定の曜日を指定するトリガー関数

特定の曜日を指定するトリガー関数は「dayofweek」です。

以下、Zabbix Documentation 2.2 に記載されていました。
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions

1~7まであり
1 – 月曜日
2 – 火曜日


7 – 日曜日
といった具合です。

以下にトリガー条件式の例を記載します。

トリガーの条件式が以下のようになっています。
{test-wd01:agent.ping.nodata(5m)}=1 and
({test-wd01:agent.ping.dayofweek(0)}=7)=0

上側の条件式が「test-wd01」というホストの「agent.ping」というデータがnodata関数で5分間応答がないかどうかをチェックしています。
下側の条件式が「test-wd01」というホストの「agent.ping」というデータがdayofweek関数で何曜日かをチェックしています。
これをandでつないでいる式です。

実際に条件式ビルダーでテストしてみましょう。
条件式ビルダーを選択してテストをクリック。

月曜日に5分間応答がない場合
{test-wd01:agent.ping.nodata(5m)}=1
1を返して、5分間応答がないことにします。
({test-wd01:agent.ping.dayofweek(0)}=7)=0
1を選んで月曜日ということにします。

andで条件を繋いでおり、どちらもTRUEとなったので、アラートが発生します。

日曜日に5分間応答がない場合
{test-wd01:agent.ping.nodata(5m)}=1
1を返して、5分間応答がないことにします。
({test-wd01:agent.ping.dayofweek(0)}=7)=0
7を選んで日曜日ということにします。

dayofweekの方の条件式がFALSEとなりました。
andで条件を繋いでいるため、どちらもTRUEにならなければアラートは発生しません。

トリガーの解説

{test-wd01:agent.ping.dayofweek(0)}=7
上記の場合、dayofweekに入る値が7(日曜日)であれば、TRUEとなります。

({test-wd01:agent.ping.dayofweek(0)}=7)=0
しかし、()で括って最後に=0とした場合は()で括った中を否定する意味になります。
こうすることでdayofweekに入る値が7(日曜日)であれば、FALSEとなります。

まとめ

途中のリンクで紹介したようにトリガー関数はたくさんあるので、複雑な条件も書くことができそうです。
また、面白い条件がわかったら紹介したいと思います。

以上です。


この記事をかいた人

About the author

宮崎健太

文系新卒でビヨンドに入社して3年目。
システムソリューション部に3年所属していて、現在は運用管理課という運用メインのチームに所属しています。
今年こそLPIC000をまずはLPIC101、年末にはLPIC202まで引き上げたいなと思ってます。
関西で海釣りばっかりしてます。