障害の復旧メールを復旧時点から 65秒後に送信したい
いつも有益な情報のご提供、ありがとうございます。
困ったときはよくこちらを参照させていただいております。
現在、困っていることがあり、なかなか解決できる情報を見つけることが
できなかったのでこちらに投稿させていただきます。
やりたいことは、タイトル通りで、
「障害の復旧メールを復旧時点から 65秒後に送信したい」
という単純なことなのですが、Zabbix 4.0(3.2以降) で実現する
方法についてよいアイデアはないでしょうか?
現在手元の検証中バージョンは zabbix 4.0.2 です。
------------
もう少し詳しく説明しますと、
Zabbix 3.2 から? アクションの「復旧時の実行内容」機能の追加や
実行条件の仕様変更で実行条件の「トリガーの値」を使うことが
できなくなりました。
これにより ver.3.0 までできていたことができなくなり困っています。
元々は ver 2.2.8環境で以下のようなアクションを設定していました。
アクション名: Action001
[アクションの実行条件]
トリガーの値 = 障害
トリガーの深刻度 <> 情報
[アクションタブ]
メッセージ内容: ... 省略 ...
リカバリーメッセージ: [有]
リカバリーメッセージ内容: ... 省略 ...
[アクションの実行内容]
step 1 : メッセージ送信
このアクションで処理する障害について、トラッパー系アイテムの
一部で障害発生直後に復旧が発生し、障害発生メールよりも
障害復旧メールが先に届いてしまうことが稀にあり、
その場合、後の対応(処理)に不都合が出ていました。
zabbixサーバー側では障害、復旧の順で送信していても
中継しているであろう複数のMTAやメールキュー等の関係で
このような状況がまれに発生することは避けられないのですが、
発生頻度を減らすために以下のように障害発生と障害復旧を別アクションで
設定することで、ほぼ上記の問題を解決できていたのです...が...
------------
以下、3.0以前でうまくいくやり方の概要
アクション名: Action001-障害発生
[アクションの実行条件]
トリガーの値 = 障害
トリガーの深刻度 <> 情報
ホストグループ = test001
[アクションタブ]
メッセージ内容: 障害発生時用 ... 省略 ...
リカバリーメッセージ: [なし]
リカバリーメッセージ内容: なし
[アクションの実行内容]
step間隔: 65秒
step 1 : メッセージ送信
----
アクション名: Action001-障害復旧
[アクションの実行条件]
トリガーの値 = 正常
トリガーの深刻度 <> 情報
ホストグループ = test001
[アクションタブ]
メッセージ内容: 障害復旧時用 ... 省略 ...
リカバリーメッセージ: [なし]
リカバリーメッセージ内容: なし
[アクションの実行内容]
step間隔: 65秒
step 2 : メッセージ送信
------------
要は、復旧専用のアクションをつくり、そのアクションの実行内容を
step 2 にすることで 1 step 分遅延させることができていたのですが、
3.2以降でこの手法を使うことができなくなってしまい困っているということです。
※
ちなみに 2.2.8 の database で 4.0.2 にアップグレードした環境で、
上記の設定内容を確認すると conditions テーブルの
conditiontype カラムが 5 (これがトリガーの値と思われる) のレコードが
削除されていました。
TNK - 投稿数: 4717
復旧時に実行するアクションについて、現時点のZabbixでは処理を
遅延させて実行する機能は見当たりませんでした。
別途、何らかの仕組みに蓄えておいて、別途、その仕組みから送信
するようなものを用意する必要がありそうです。
yj-nso - 投稿数: 2
TNK様
レスありがとうございます。
やはり、現時点での機能としては無いようですね。
リモートコマンドでメール通知生成も含めて遅延させるスクリプトを用意する方向で対応を進めてみます。
復旧時の実行内容でステップ値をつけて設定できるようになればよいのですけど...
将来のバージョンに期待です。