メンテナンス期間終了後のイベント発生について
いつもお世話になっております。
現在Zabbix2.2.11-1を使用して監視を行っているシステムがあるのですが、
Zabbixのメンテナンス機能を使用してアラームの発生を抑制しようと思っているのですが
ログ、SNMPTrapの監視の場合メンテナンス終了時間と共にイベントが生成されアクションされてしまいます。
事象としましては、
【メンテナンス設定】
メンテナンス期間:2017/09/07 10:00 ~ 11:00
データ収集:あり
【アクション設定】
トリガーステータスが「障害」となった時のみアクション
と設定すると。
10:05 警告のイベントー発生(トリガーステータスは障害) → イベントは生成されるがアクションはされない
10:30 重度の障害のイベントー発生(トリガーステータスは障害) → イベントは生成されるがアクションはされない
10:30 警告のイベントー発生(トリガーステータスは正常) → イベントは生成されるがアクションはされない
とメンテナンス期間中はどのイベントが発生してもアクションはされません。
11:00 警告のイベント発生(トリガーステータスは正常) → 上記アクション設定のためアクションはされない
11:00 重度の障害のイベントー発生(トリガーステータスは障害) → アクションされる
この11:00に発生しているイベントにはWEBUI上のヒストリログは何も表示されず
10:30の重度の障害が再度評価されているように見えます。
こちらはメンテナンス期間の仕様として
メンテナンス期間中にトリガーが別のステータスに変化した場合、メンテナンス期間終了と同時に再評価されるという仕様なのでしょうか?
また、これをアクションしないようにするための回避方法はあるのでしょうか?
以上、よろしくお願い致します。
TNK - 投稿数: 4671
アクションの実行条件内に、
メンテナンスの状態 期間外 メンテナンス
も設定されているということでよろしいでしょうか。
そうであるならば、トリガーの状態が障害のままであれば、メンテ
ナンス期間終了後にアクションが実行されます。
上記の「メンテナンスの状態 期間外 メンテナンス」の設定によっ
てメンテナンスの期間内では、アクションの実行を保留するので送
られず、メンテナンス期間が終了してもトリガーの状態が障害のま
まであったので、アクションが実行されたのだと思われます。
あと、使用されているバージョンが2.2.11とのことですので、
・メンテナンス期間の終了までにトリガーの状態を正常にする
・メンテナンス期間内では値を取得しない
のどちらかにすることになると思います。
普段、そのトリガーの状態の正常化はどのように行われているので
すか?
時間経過であるならば、メンテナンス期間の終了までに、トリガー
の状態が正常になるよう、作業終了からメンテナンス期間終了まで
の時間の余裕を持たせることで対応できるかもしれません。
hajime - 投稿数: 57
TNK様
返信ありがとうございます。
>アクションの実行条件内に、
>メンテナンスの状態 期間外 メンテナンス
>も設定されているということでよろしいでしょうか。
こちらは設定しております。
メンテナンス期間内では値を取得しないとなると
ログのlastlogsizeが変わらないのでメンテナンス終了後に
メンテナンス期間中に出力されたログを読み込んでしまう。
というのを回避していたつもりなのですが。。。
TNK様がおっしゃっている通りメンテナンス期間内の
アクションはただ「保留」されるだけであって、
メンテナンス期間中に出力されたログ等の遷移に関しても
保留され、メンテナンス期間直後にイベント出力される。
という機能として考えたほうがよろしいのでしょうか。
ログのトリガー状態の正常化は基本的に
regexp("文字列")=1
として障害を検知していますので、この文字列以外のレコードが
ログに出力されるとそのトリガーが正常ステータスとなり、
この正常ステータスはアクション対象外になります。
以上、よろしくお願い致します。
kaeru - 投稿数: 263
>>hajime様
文章から読み取れなかったのですが、
以下の状況ではないでしょうか?
---------------------------------------------------------------
10:00 トリガー正常でメンテナンスモード開始
10:30 トリガー異常(メンテナンスモードのためアクション未動作)
11:00 メンテナンスモード解除されるがトリガー異常のためアクション動作
---------------------------------------------------------------
上記であれば、TNK様が記載の通り、
>・メンテナンス期間の終了までにトリガーの状態を正常にする
を行えばよいと思います。
具体的な復旧条件として以下を挙げられています。
>ログのトリガー状態の正常化は基本的に
>regexp("文字列")=1
>として障害を検知していますので、この文字列以外のレコードが
> ログに出力されるとそのトリガーが正常ステータスとなり、
>この正常ステータスはアクション対象外になります。
従って、メンテナンスモードを抜ける前に"文字列以外のレコード"を追記し、
トリガーを正常にすれば良いと思います。