トリガー単位でのメンテナンス実施

はじめまして。
yumiguruiと申します。

表題の件ですが、特定のホストに設定しているトリガー(一部)を
メンテナンスのように、特定の期間は検知しないように出来ないか考えています。
#できればメンテナンスの期間指定のように、指定の時間から監視停止して指定時間経過後に監視再開したい

メンテナンスの設定では、ホストもしくはホストグループ単位でしか
設定ができなかったのですが、何か良い方法などありますでしょうか。

お手数をお掛けしますが、宜しくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

以前も同様の質問がありましたのでそちらをご覧ください。

毎日決められた時間に監視停止時間を設定したい
http://www.zabbix.jp/node/3087

使用されているZabbixのバージョンもアイテムやトリガーとしてど
のように設定されているかもわかりませんが、上記例のようにトリ
ガーの条件式で時刻の範囲を指定する方法が考えられます。

もしかしたら、別の方法として、特定の時間帯にアイテムの値を取
得しないようにすることで対応する方法も考えられるかもしれませ
ん。

早々にご回答頂きありがとうございます。
現在利用しているzabbixのバージョンは2.8.4となります。

言葉足らずで要件が伝わりにくかったのですが、
用件は毎日決まった時間でトリガーを停止するのではなく、
メンテナンス作業の時間に限って抑止をしたいという事になります。

簡単に要件をまとめると以下の通りです。

•トリガー単位で指定の作業1回分の時間で検知を抑止したい
•設定を変更するのはメンテナンス開始前の1回としたい(抑止の再開漏れを防ぐため)

外部スクリプトを使ってzabbixAPIからトリガーを取得して
指定トリガーを無効化して時間経過後に戻すなども検討したのですが、
そもそも現在のバージョンではトリガー一覧が上手く取得できず要件の
処理を実装できませんでした。

お手数ですが、ご検討願います。

ユーザー TNK の写真

Zabbixに2.8.4というバージョンはありません。
正確な情報をお教えいただけなければ回答することができません。
ご自身で何を使用しているのか再度ご確認ください。

失礼いたしました。
確認したところv2.4.8でした。

# zabbix_server -V
Zabbix server v2.4.8 (revision 59539) (20 April 2016)
Compilation time: May 4 2016 05:39:23

ユーザー TNK の写真

定期的にではなく、任意の時間帯で特定のトリガーのみということ
であれば、ZabbixのAPIを使用するのが一番目的に合致していると
思われます。

APIをどのように使用してできなかったのかわかりませんが、2.4.8
あたりであれば、それなりにAPIも動いたはずです。
具体的に、何をどのようにして取得しようとされたのでしょうか?

とはいえ、2.4.8はすでにサポートが終了(2016年3月)していますの
で、バージョンアップを検討されたほうが良いかもしれません。

ご回答ありがとうございます。
改めてAPIの処理を見直したところAPIからトリガーの取得について自己解決しました。

具体的にはこちらのフォーラムを参考にさせて頂きました。
http://www.zabbix.jp/node/3874

●ハマっていたポイント
{
 "jsonrpc": "2.0",
 "method": "trigger.get",
 "params":
 {
  "host": "Zabbix server", ★ここを[ホスト名]ではなく[表示名]をキーに検索しようとしていた。
  "output": "extend",
  "expandExpression": "true"
 },
 "auth": "f851f69c054fbcd57dcbe596886b48dc",
 "id": 1
}

本要件を実装するに使用するZabbixAPIは以下を想定していますが
問題ないかご指摘頂ければ幸いです。

1.ログイン処理 ("method": "user.login",)
2.トリガーID取得 ("method": "trigger.get")
3.トリガー停止 ("method": "trigger.update", "params": {"triggerid": "$TRIGGERID","status": 1})
4.トリガー再開 ("method": "trigger.update", "params": {"triggerid": "$TRIGGERID","status": 0})