読者です 読者をやめる 読者になる 読者になる

Ruby on Rails と歩む我が人生

Railsプログラマを目指す漢のRailsとの歩みの記録

Zabbixで特定の曜日、時間帯に特定のトリガーを抑止する方法

Zabbix インフラ

はじめに

特定の曜日、時間帯だけ特定のトリガーが実行されないようにしたいという事を言われて、調べて見たら結構面倒くさかったのでメモです。

環境

  • Zabbix server v2.0.8 (revision 38017) (21 August 2013)

要件

  • 以下の監視条件を満たしたい
    1. 日曜の2:00~6:00まで特定のトリガーの監視を抑制
    2. 日曜以外の2:00~4:00まで特定のトリガーの監視を抑制

実現するには

使う関数

Zabbixに用意されている以下の関数を使用

  • dayofweek
  • time

条件式

元の条件式

{Template_name:proc.num[pop3d,,sleep].count(#2,0,eq)}=2

日曜の2:00~6:00まで特定のトリガーの監視を抑制する条件式

(({Template_name:proc.num[pop3d,,sleep].dayofweek(0)}=7) and
({Tmplate_name:proc.num[pop3d,,sleep].time(0)}>020000 and
{Tmplate_name:proc.num[pop3d,,sleep].time(0)}<060000)=0)

日曜以外の2:00~4:00まで特定のトリガーの監視を抑制する条件式

(({Template_name:proc.num[pop3d,,sleep].dayofweek(0)}<7) and
({Tmplate_name:proc.num[pop3d,,sleep].time(0)}>020000 and
{Tmplate_name:proc.num[pop3d,,sleep].time(0)}<040000)=0)

最終的な条件式

{Template_name:proc.num[pop3d,,sleep].count(#2,0,eq)}=2 and

((({Template_name:proc.num[pop3d,,sleep].dayofweek(0)}=7) and
({Tmplate_name:proc.num[pop3d,,sleep].time(0)}>020000 and
{Tmplate_name:proc.num[pop3d,,sleep].time(0)}<060000)=0) or

(({Template_name:proc.num[pop3d,,sleep].dayofweek(0)}=7) and
({Tmplate_name:proc.num[pop3d,,sleep].time(0)}>020000 and
{Tmplate_name:proc.num[pop3d,,sleep].time(0)}<040000)=0))

おわりに

このぐらいの複雑度になるとZabbixで条件式書くのが辛くなってきますね・・・(^_^;)

参考

トリガーの曜日・時間指定での検知除外設定 | ZABBIX-JP

dev.blog.fairway.ne.jp

qiita.com