Zabbix3.2 トリガー復旧条件について
いつもお世話になっております。
Zabbix3.2でトリガーの条件式以外に復旧の条件式を分けられるということで検証をしているのですが
nodata関数を利用した際に、望む動作をしなかったためお知恵をお借りできればと思います。
アイテムタイプ:Zabbix トラッパー
トリガー条件式:{template:アイテムA.iregexp(warning)}<>0
復旧条件式:{template:アイテムA.nodata(60)}=0
障害イベントを継続して生成:チェックする
上記のようなトリガーを作成し、Zabbixトラッパーにてログ監視をしております。
今までのトリガー条件であれば、トリガー条件式にandとして復旧条件のnodataを入れステータスを正常に戻すことが出来ましたし、
3.2でも復旧条件ではなくトリガー条件式にandでnodataの式を入れると、nodataで指定した時間を過ぎるとステータスは正常に戻ります。
ただ今回復旧条件にnodataを入れたところ、指定した時間を過ぎてもステータスは異常のままとなり
nodataによる復旧はしませんでした。
障害イベントを継続して生成にチェックを入れていても過去のバージョンの条件式ではnodataによって正常に戻っておりました。
復旧条件式には今までと違い、記述法が異なるのでしょうか。
動作についてお教えいただけると助かります。
よろしくお願いいたします。
TNK - 投稿数: 4663
トリガーの条件式にはその条件を満たしたときにそのトリガーのイ
ベントが発生します。
条件式にnodata()を使用する場合は、最後に値を取得して指定した
時間を経過していない間はトリガーの状態を障害のままとするとい
うことで、nodata()の値が0であったら障害としていたと思います。
それぞれの条件式には、その条件式を満たしたときに「障害」もし
くは「復旧」の動作を行うので、指定した時間以上ログが出力され
なかったときに復旧させたいのであれば、復旧のnodata()の値は1
になったときになるのではないでしょうか?
ご確認ください。
ultim - 投稿数: 12
TNKさん
ご返信ありがとうございます。
復旧条件式にご指摘のあったnodata(秒数)=1にて試しましたが、結果は変わりませんでした。
アクションが複数回実行されるのは、度外視して「正常イベントの生成」を「条件式」に変更し
トリガー条件式を
{template:アイテムA.iregexp(warning)}<>0 and {template:アイテムA.nodata(60)}=0
に変更すると60s経った段階で正常に切り替わります。
条件式ではnodataは正常に動作しているようですが
条件式と復旧条件式で分けるとnodataの条件に合わないというのがちょっとまだ理解不足です。。
TNK - 投稿数: 4663
実際に3.2.1の環境を構築して試してみましたが、復旧条件にnodata()
を指定する方法は機能しませんでした。
通常の数値の大小などは復旧条件として機能します。
既に報告されている問題であるのかは探してみますが、現時点では、
復旧条件にnodata()を使用する方法は使えなさそうです。
ultim - 投稿数: 12
TNKさん
ご確認ありがとうございます。
nodataは復旧条件に使えないんですね・・・
こちらでも他のfunctionを使用してなんとかならないかを試しましたが、期待する動作はしませんでした。
バージョンアップ後に対応してくれるか、他の方法を考えたいと思います。