zabbixで特定時間帯のトリガーを無効にする

  • 15
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

問題

バックアップやバッチの処理中にどうしてもアラートが通知してしまう場合、処理の時間帯だけロードアベレージなどのアラートを停止したいということがあると思います。ホストの「メンテナンス」やアイテムの「例外の更新間隔」を使ってもいいのですが、その場合はすべてのトリガーが対象になったり、該当時間のデータが取得できなかったりするので、データを取得した上で特定のトリガーだけを停止したいという場合にはうまく設定できませんでした。

解決

そこでtime関数を使うと時間をトリガーの発動条件に用いることができました。

({HOSTNAME:system.cpu.load[percpu,avg1].min(#10)}>1) and 
(({HOSTNAME:system.cpu.load[percpu,avg1].time(0)}<040000) or 
({HOSTNAME:system.cpu.load[percpu,avg1].time(0)}>050000))

(トリガーの条件) and ( (4時より前) or (5時より後) )
というトリガーになるので、4時から5時の間にはトリガーは発動しません。

ちなみに以下の書き方でも大丈夫でした!

{HOSTNAME:system.cpu.load[percpu,avg1].min(#10)}>1 and 
({HOSTNAME:system.cpu.load[percpu,avg1].time(0)}<040000 and 
{HOSTNAME:system.cpu.load[percpu,avg1].time(0)}>050000)=0

(トリガーの条件) and ( (4時より後) and (5時より前) = 0 )
で、0とすることで条件が否定されます。

どちらでもわかりやすい方を使うといいと思います。

注意

zabbix2.4以降では、条件判定の文字列が「&」や「|」から「and」や「or」に変更になっていますのでご注意ください!(<-もちろんこれで数時間はまりました...)

参考

http://www.zabbix.jp/node/2582
http://d.hatena.ne.jp/rougeref/20140414
http://blog.serverworks.co.jp/tech/2014/09/12/zabbix2-4-0release/