一定回数または時間の間の障害・復旧繰り返し中は通知しないようにする方法について
お世話になります。いつも参考にさせていただいております。
以下のように、一定回数または時間の間の障害・復旧繰り返し中はトリガー起動しない、またはアクション通知しないようにする方法がないでしょうか?
意図としては、障害発生して回復と復旧を繰り返している間は通知せず、回復状態が続いたら安定したと見なして回復通知する、という監視を実現したいということです。
例)
ロードアベレージ閾値:4
時間 ロードアベレージ
0:01 3
0:02 5 ー>障害発生したのでトリガー起動、通知
-------------------------------------------------
0:03 3 ー>この間は、障害と
0:04 5 ー>復旧を繰り返しているので
0:05 3 ー>トリガー起動しない、または通知しない
-------------------------------------------------
0:06 2
0:07 2
0:08 2 ー>復旧したと見なして回復通知する。
fripper - 投稿数: 495
「障害の発生」として判断する条件と、「障害からの復旧」を判断する条件を
別の条件にするようなトリガー式を設定するのが1つの方法かと思います
({TRIGGER.VALUE}=0 & {host:system.cpu.load[percpu,avg1].min(#4)} > 4 ) |({TRIGGER.VALUE}=1 & {host:system.cpu.load[percpu,avg1].max(#12)} < 4)
現在の状況が「正常」で、なおかつ、ここ4回分の取得結果が、いずれも、閾値の「4」を上回っている場合
→「障害発生」としてトリガー発動
現在の状況が「障害発生中」で、なおかつ、ここ12回分の取得結果が、いずれも、閾値の「4」を下回っている場合
→「障害復旧」としてトリガー復帰
min/max を利用したうえで、(#XX)で、「発生として判断される猶予」「復帰として判断される猶予」を判定させるような形になっています
「発生」の検知そのものが、瞬間的なピークにぶつかったが故の「誤検知」となるパターンや
検知した障害が、一時的に落ち着いただけだと「復旧」にしたくない、というパターンで使えるかと思います
#利用されている zabbix のバージョンによって、トリガー式の演算記号が異なる場合があります
#マニュアル等でご確認をお願いします
edoshimafukurou - 投稿数: 10
fripper さん、早速ご教示いただき、ありがとうございます。
ご提示いただいたトリガー式を設定して、検証してみます!
edoshimafukurou - 投稿数: 10
fripper さん、実機で検証してみたのですが、
({TRIGGER.VALUE}=0 & {host:system.cpu.load[percpu,avg1].min(#4)} > 4 ) |
({TRIGGER.VALUE}=1 & {host:system.cpu.load[percpu,avg1].max(#12)}< 4)
ですと、ロードアベレージがどんな値であっても、トリガーが正常・障害を繰り返す動作となってしまいました。
以下の通りに修正することで、想定通りの動作となりました(汗)
({TRIGGER.VALUE}=0 & {host:system.cpu.load[percpu,avg1].min(#4)} > 4 ) |
({TRIGGER.VALUE}=1 & {host:system.cpu.load[percpu,avg1].max(#12)}> 4) ★ここを修正
{TRIGGER.VALUE}=0、1の使い方や複数条件の指定の仕方、大変勉強になりました。
ありがとうございました。
fripper - 投稿数: 495
転記誤りをしていたようです。申し訳ありません。
意図どおり動作したとのこと。良かったです