Zabbixトリガー毎にメンテナンスモードっぽく動かす

f:id:tsunokawa:20140513173845p:plain
※画像はイメージです。


Zabbix監視を行っているホストで、
例えばロードアベレージの値がしきい値を増えてしまい、
今現在対処を行っているが、対処完了まで時間がかかってしまう。


これまではZabbixのメンテナンスモードを使って一時的に警告が来ないようにしていました。


が、Zabbixのメンテナンスモードはホストごとに設定するので、
ホスト全体をメンテナンスモードに切り替えてしまうと
ロードアベレージ警告以外の障害が発生した場合でも警告通知が来なくなってしまいます。


このような場面で行った手法が、
トリガー設定に指定日を経過したら警告を出すようにトリガー条件を追加するというものです。

({test01:system.cpu.load[all,avg1].last(0)}>5)&({test01:system.cpu.load[all,avg1].date()}>{$MAINTENANCEDATE})

太字の箇所を追記しました。


ユーザ定義マクロで

マクロ {$MAINTENANCEDATE}
20140531

こんなマクロを用意して日付が20140531より大きくなったら(20140531以降)になったら警告が出るようにした。


dateは現在日付をYYYYMMDD形式で返すトリガー関数です。
これをトリガー関数として設定するには何らかのキーを使って指定する必要がありました。
なので、{test01:system.cpu.load[all,avg1].date()}こんな感じでキーに無理やり付けています。


しかし、無理やりこんな書き方してますがもっといい書き方ないのだろうか。