『メンテナンス期間』機能の仕様について

Version 1.8.5
OS RHEL5.6

掲題の件について伺いたく投稿させて頂きます。

10数時間のメンテナンス期間設定の解除後(つまり、有効期限切れ後)に、当方の
意図に反してイベントが発生しました。

メンテナンス期間後は、新規の障害イベント以外は発生しない想定でしたが、実
際にはメンテナンス期間中に発生したイベントが再度発生したようにみえます。
# このことは「継続期間」からも伺えます。

動作を検証してみたところ、以下のような振る舞いをするようなのですが、この
理解は正しいでしょうか?
------------------------------------------------------------------------
・メンテナンス期間中にステータスの変更(正常⇒障害)があったトリガーはチェッ
ク対象としてマークされ、期限切れを向かえたとき、マークしたトリガーに対し、
現在時のトリガー値でイベントを再生成する。
・SNMPトラップについては、メンテナンス期間中に受信したことのないトラップ
 を受信した場合、ステータスの変更(無⇒障害)と認識し、期限切れ後に再度内
 部生成する。(再度トラップを受信するはずはないので)
------------------------------------------------------------------------

上記について、理解の正誤に加え、より正しい仕様について分かっていることが
あれば、ご教示頂けると幸いです。

ご協力のほど宜しくお願い致します。

コメント表示オプション

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

> 鈴木様、kodai様
コメントありがとうございました。

おかげさまで、仕様等を踏まえ、運用に即した検討ができそうです。

どうもありがとうございます。

ユーザー TNK の写真

トリガーにどのように設定されているか、その対象のアイテムがど
のような間隔でチェックされているかにも依存すると思います。

設定されているトリガーの内容と、関連するアイテムの内容をお教
え頂くことは可能でしょうか?

ユーザー otokam の写真

早速のご確認ありがとうございます。

先に記載した振る舞いをとったものはいくつかありますが、
以下に一例を記載致します。

トリガー
-----------------
名前:cpu
条件式:{Zabbix_Server:system.cpu.util[,idle].last(0)}<20
イベント生成:ノーマル
深刻度:重度の障害
-----------------
-----------------
名前:snmptrap
条件式:{Zabbix_Server:snmptrap.regexp(.*)}=1
イベント生成:ノーマル+障害イベントを継続して生成
深刻度:重度の障害
-----------------

アイテム
-----------------
説明:cpu
キー:system.cpu.util[,idle]
更新間隔:60秒
タイプ:zabbixエージェント
-----------------
-----------------
説明:snmptrap
キー:snmptrap
更新間隔: −
タイプ:zabbixトラッパー
-----------------

お手数ですが、ご確認のほどよろしくお願いします。

ユーザー tsuzuki の写真

鈴木です。

・メンテナンス期間中にステータスの変更(正常⇒障害)があったトリガーはチェック対象としてマークされ、期限切れを向かえたとき、マークしたトリガーに対し、現在時のトリガー値でイベントを再生成する。

2つあるうちの下の方はどういう状況か理解できませんでしたが、上記はこの動作で問題ありません。
これが仕様になります。

メンテナンス期間終了時には、状態のチェックが行われるので、正常だったものが障害になっていればイベントを生成してメール送信などのアクションが実行されます。
以下のバグ報告の絵が理解しやすいかもしれません。
https://support.zabbix.com/browse/ZBX-3023

なお、上記バグの修正に伴って少し仕様が変更され(1.8.4以降)、期間前、期間中に限らず、正常->障害 の状態変化が発生してそのまま期間終了した場合にイベントが発生するようになりました。

ユーザー otokam の写真

> 鈴木様
ご回答ありがとうございます。
仕様ということで承知しました。

バグ報告のイメージ図を拝見しましたが、これによればメンテナンス期間前から「障害」であったものは、
期間終了時点でイベント生成はされないものと理解しました。

SNMPトラップについては、少し補足させて下さい。

当方の環境では、SNMPトラップについては「正常」と判断させる条件は設定していないため、SNMPトラップ
を受信する度に「障害」状態のイベントが生成されます。
この条件において、期間中にSNMPトラップを受信した場合に、期間終了後の挙動を把握したい、というのが主旨になります。

分かりづらいかも知れませんが、ご確認を頂けると幸いです。

ユーザー tsuzuki の写真

鈴木です。

バグ報告のイメージ図を拝見しましたが、これによればメンテナンス期間前から「障害」であったものは、
期間終了時点でイベント生成はされないものと理解しました。

はい、理解されてる通りです。

SNMPに関してはトリガーで「障害イベントを継続して生成」に設定しているという理解で大丈夫でしょうか。
この場合は、障害->障害 であっても期間中に障害が発生したら、期間終了時に障害イベントが発生します。
なので、書かれている通りの動作が仕様ということになります。

ユーザー otokam の写真

> 鈴木様
ご確認ならびにご回答ありがとうございました。
基本的な仕様について理解することができました。

メンテナンス期間設定時のこの仕様を考慮するようにします。

2点、追加でご見解を頂けますでしょうか?

①メンテナンス期間が終了した際に、イベントが再生成されるタイミングについて。
# この質問の意図は、メンテナンス期間終了後に、どのくらい時間(数分後、数十分後、1時間後)でイベントが再生成
# されるのかを把握したいためです。メンテナンス期間が長期間であるほど、終了後に再生成されるのには時間がか
# かる、など。

②メンテナンス期間の終了の仕方でイベント再生成の有無に違いがあるか。
# メンテナンス期間を設定し、「時間が経って自然に期日が満了する」のと「期間中に満了日時を設定変更で短縮し期
# 日満了とさせる」とで挙動に違いがあるか。

当方でも検証をしたのですが、判然としなかったため、分かっていることがあれば共有頂けると幸いです。

ユーザー kodai の写真

①メンテナンス期間が終了した際に、イベントが再生成されるタイミングについて。
# この質問の意図は、メンテナンス期間終了後に、どのくらい時間(数分後、数十分後、1時間後)でイベントが再生成
# されるのかを把握したいためです。メンテナンス期間が長期間であるほど、終了後に再生成されるのには時間がか
# かる、など。

ちゃんとソースは読んでいないですが、メンテナンス期間が終了して、次回のデータ取得時にトリガーが更新されるんじゃないかと思います。

②メンテナンス期間の終了の仕方でイベント再生成の有無に違いがあるか。
# メンテナンス期間を設定し、「時間が経って自然に期日が満了する」のと「期間中に満了日時を設定変更で短縮し期
# 日満了とさせる」とで挙動に違いがあるか。

おそらく、メンテナンス期間の終了の仕方による差異はないと思います。