メンテナンス期間終了後のアクション実行について
お世話になってます。
メンテナンス期間中に発生した障害がメンテナンス期間終了後も継続していた場合は、
イベントが評価されアクションが実行されると認識しています。
ですが、メンテナンス期間終了後にもアクションが実行されません。
イベントはメンテナンス期間中に発生しアクションが実行されないことは確認しています。
また、メンテナンス期間外だとアクションが実行されることも確認しています。
下記の場合ですと、 21:55か22:00を過ぎたらアクションが実行されると考えていたのですが、
50分程度待ってもアクションが実行されずメッセージが送信されません。
ご教示のほどお願いします。
Zabbixサーバーは最新の3.4.5です
【アクション設定】
【アクション実行条件】
メンテナンスの状態 期間外 メンテナンス
アプリケーション 含まれない ログ監視
アプリケーション 含まれない Zabbix agent
トリガーの深刻度 >= 警告
【アクション内容】
アクション実行ステップの間隔 1h
実行内容の詳細
ステップ1=ユーザーにメッセージを送信: ユーザー
ユーザーグループにメッセージを送信: ユーザーグループ
ステップ= 1 - 1
ステップの間隔= 0
実行内容のタイプ=メッセージ送信
【メンテナンス期間設定】
【メンテナンス】
データ収集あり 開始=2018/01/08 00:00 終了=2018/01/08 22:00
【期間】
期間のタイプ=一度限り
スケジュール=2018/01/08 21:40
期間=15m
TNK - 投稿数: 4720
アイテムやトリガーはどのように設定されていますか?
あと、イベントが発生した時刻はどのように記録されていますか?
ramble - 投稿数: 10
お返事ありがとうございます。
アイテム、トリガー、イベント発生時間は下記の通りです。
トリガーで使用率を10%や5%としているのは、
イベントを発生させるために小さな値にしています。
1.手順としてメンテナンス期間を設定
2.対象ホストがメンテナンス中になったことを確認
3.トリガーの使用率を10%、5%に変更
4.イベントが発生したことを確認
5.メンテナンス期間が切れるまで放置しアラートメールが送信されるか確認。
また、メンテナンス期間を過ぎてからトリガーの使用率を90%や80%など、
実際の使用率より多く再設定し復旧させた場合もリカバリーのメールは送信されてきませんでした。
【アイテム】
vfs.fs.size[C:,pused]
更新間隔 5m
【トリガー】
深刻度:重度の障害:{ホスト名:vfs.fs.size[C:,pused].last(0)}>5
正常イベントの生成:条件式
障害イベント生成モード:単一
正常時のイベントクローズ:すべての障害
深刻度:警告 :{ホスト名:vfs.fs.size[C:,pused].last(0)}>10
正常イベントの生成:条件式
障害イベント生成モード:単一
正常時のイベントクローズ:すべての障害
【発生させたイベント】
深刻度 ステータス 時間
重度の障害 障害 2018/01/08 21:48:42 {ホスト名:vfs.fs.size[C:,pused].last(0)}>5
警告 障害 2018/01/08 21:48:42 {ホスト名:vfs.fs.size[C:,pused].last(0)}>10
【復旧させたイベント】
深刻度 ステータス 時間
重度の障害 正常 2018/01/10 20:53:42 {ホスト名:vfs.fs.size[C:,pused].last(0)}>90
警告 正常 2018/01/10 20:53:42 {ホスト名:vfs.fs.size[C:,pused].last(0)}>80
ramble - 投稿数: 10
ちなみに設定したホストを一旦削除し、再度登録したうえで、
同じことを行いましたが、メンテナンス終了後もイベントは発生せずアクションは実行されませんでした。
また、これは当然だとおもうのですが、トリガー設定で「障害イベント生成モード」を「複数」にすると、
メンテナンス期間終了後の最初の更新間隔でイベントが発生しアクションは実行されます。
ただ、この場合はメンテナンス期間外にイベントが更新間隔の都度発生しアクションが実行されますので、
実運用には向いていないです。
何が悪いのかさっぱりわかりません。
ramble - 投稿数: 10
自己解決しました。
お騒がせしました。
TNK - 投稿数: 4720
ここは、コミュニティのサイトです。
皆様が情報を提供しあうことで成り立っています。
今後同様の問題にぶつかってしまった方の為にも、
どのようにして解決されたのか、情報をご提供いた
だけませんでしょうか?
よろしくお願いいたします。
ramble - 投稿数: 10
少々、お待ちを。
今、まとめてますので。
ramble - 投稿数: 10
【解決までの経緯】
テスト機で3.4.2 → 3.4.4 → 3.4.2 → 3.4.4 → 3.4.5などバージョンを上げたり下げたりしていたので、
その際にDBの内容がおかしくなった?と思い、ホストを一旦削除し再度監視登録するが変化なし。
仮想マシンから再作成し新規に3.4.2をインストール。同じホストを監視登録するが変化なし。
これによりDBの内容でも、3.4.2、3.4.4、3.4.5と言うバージョンによる差異ではなく設定の問題と判断。
3.4のドキュメントを再度見直したところリリースノートに「Zabbixサーバーの改善」として、
「アクションの設定で新しいメンテナンス期間のためのオプション設定によりホストがメンテナンス中の障害通知を停止することができます。 」の一文を発見。
アクション設定のアクション内容の箇所の「メンテナンス期間内の実行内容保留」が上記に該当するものと判断。
ドキュメント上、どう変わったのか見つけることが出来なかったので次のパターンでテスト。
パターン1
【アクション実行条件】
メンテナンスの状態 期間外 メンテナンス
アプリケーション 含まれない ログ監視
アプリケーション 含まれない Zabbix agent
トリガーの深刻度 >= 警告
アクション内容の「メンテナンス期間内の実行内容保留」をオン
結果:変化なし
パターン2
【アクション実行条件】
メンテナンスの状態 期間外 メンテナンス
アプリケーション 含まれない ログ監視
アプリケーション 含まれない Zabbix agent
トリガーの深刻度 >= 警告
アクション内容の「メンテナンス期間内の実行内容保留」をオフ
結果:変化なし
パターン3
【アクション実行条件】
メンテナンスの状態 期間外 メンテナンス ← 削除した状態
アプリケーション 含まれない ログ監視
アプリケーション 含まれない Zabbix agent
トリガーの深刻度 >= 警告
アクション内容の「メンテナンス期間内の実行内容保留」をオン
結果:メンテナンス期間中に発生した障害が期間後も継続していた場合はアクションが実行
このことから、3.4以降ではメンテナンス期間中のイベントは再処理しなくなった。
変わりにアクション内容の「メンテナンス期間内の実行内容保留」をオンにすることで、
メンテナンス期間中のイベントを期間後に遅れて処理するようになったと判断し解決としました。