icmppingが正常(1)にもかかわらず、アクションが実行される。
タイトル通りの現象が発生しており、悩んでおります。
ご存知のかたがおられましたら、解決方法をご教授いただけないでしょうか?
環境:zabbix 2.0.2
【トリガー】
名前 : ping statu no response on {HOSTNAME}
条件式: {Template_ping:icmpping.last(0)}=0
【メンテナンス】
タイプ:データ収集あり
期間 :毎日 開始時刻 2時 期間:2h
【アクション】
期間 期間外 "1-7,02:00-03:40"
トリガーの値 = "障害"
トリガー名 含まれる "ping statu no response on"
アクションの実行内容 メール送信
【届いたメールの内容】
{ITEM.LASTVALUE} = 1
{STATUS} = PROBLEM
【メールが送られ始めた時刻】
4:00~
【実際の機器の動作】
3:00頃 電源OFF (通常運用)
3:50頃 電源ON (通常運用)
【実際に収集された値】
03:00:02 1
03:01:02 1
03:02:02 0
03:03:02 0
(中略)
03:50:02 0
03:51:02 0
03:52:02 0
03:53:02 0
03:54:02 0
03:55:02 0
03:56:02 0
03:57:02 0
03:58:02 0
03:59:02 0
04:00:02 1
04:01:02 1
04:02:02 1
04:03:02 1
疑問点1:
{STATUS}が"PROBLEM"のであるから、アクションが実行されると思いますが・・・
そもそも、{ITEM.LASTVALUE}が"1"であるからトリガーが障害(PROBLEM)にならないと思います。
なぜ、アクションが実行されてしまうのでしょうか?
⇒ この時『ダッシュボード』では”障害”になっていなかったように思います。
疑問点2:
なぜメールが4時から送られるのでしょうか?
この設定では3:40~3:50頃だけメールが送られると思っていましたが・・・
どこか設定がおかしいのでしょうか?
TNK - 投稿数: 4768
疑問点1については、疑問点2とも関係してくると思いますが、値
を取得して判断した時点とメンテナンス期間などの時間帯の設定の
境界で一時的に障害と判定されたのだと思われます。
記載して頂いていませんが、設定されているメンテナンス期間のメ
ンテナンス中のホスト、またはホストグループに今回障害と判断さ
れた機器が含まれていませんか?
そして、アクションのコンディションに
メンテナンスの状態 期間外 "メンテナンス"
が含まれていませんか?
その場合、取得された値も、3:59:02まで0になっていますので、値
の取得と判定から、判定後のアクションの実行までの時間差によっ
て今回のような現象が発生する可能性があります。
もう少し、具体的に書いてみると、
03:59:02に値を取得して0が取得された。
↓
トリガーの判定で障害とみなされた。
↓
アクションを実行しようとした際、4:00:00を過ぎていたのでメ
ンテナンス期間外なのでアクションを実行。
↓
アクションの本文内にあるマクロ{ITEM.LASTVALUE}を展開するた
めにそのアイテムの最新値を改めて取得したら4:00:02を過ぎて
いたのでメール本文内には"1"が入っていた。
のようなことがおきていた可能性が考えられます。
メンテナンス期間終了ぎりぎりの時間まで作業がかかるのであれば、
もう少しメンテナンス期間を延長して設定されることをお勧めしま
す。
疑問点2については、4時から送られるのは、メンテナンス期間を
2時から2時間と設定されているからではないでしょうか?
上にも書かせていただいたとおり、メンテナンス期間の対象となっ
ているか、メンテナンス期間の設定とアクションの設定をご確認く
ださい。
woodpecker - 投稿数: 24
TNKさん コメントありがとうございます。
情報が不足している点がありますので、
補足しながらコメントさせて頂きます。
・該当機器は記載したメンテナンスの「対象ホスト」として指定しています。
・アクションの実行条件は先に記した内容だけを設定しています。
・メールが送信されたのは4:00~7:40頃までです。(3分間隔)
(8:00頃該当ホストを無効にしたのでメール送信が止まりました。)
(アクションのDefault operation step durationは180を指定しています。)
(アクションの実行ステップは『1-0(無限)』に設定しています。)
該当のアクションの「アクションの実行条件」にメンテナンスの状態を設定していません。
そういう状態も起こりうるのですね・・・
しかし、仮にその状態だったとしても、
3:59:02 0 ⇒ アクション実行の対象
4:00:02 1 ⇒ アクション実行の対象外
4:01:02 1 ⇒ アクション実行の対象外
(以降同じ動作)
となるのではないでしょうか?
認識が違っていたら申し訳ありません。
一つ疑問に思ったのですが・・・
対象ホストが、メンテナンス状態(データ収集あり)にある場合ですが、
通常時と何か動作が違うのでしょうか?
別の機器ですが、
メンテナンス期間中にsnmptrapで受信したデータをzabbixで確認できませんでした。
今回の機器もこのような状態にあるのでしょうか?
というのも、この機器電源ONから2~3分後には疎通可能になるのです・・・
3:50に電源ONして3:59:02の監視が0と言うことは考えにくいのですが・・・
以上 ご確認ください。
TNK - 投稿数: 4768
説明不足であったようです。
ですから、「3:59:02 0 ⇒ アクション実行の対象」でアクション
が実行されたのだと予想しています。
{ITEM.LASTVALUE}は、そのマクロを展開したときの「最新値」を取
得して展開しますのでトリガーで検知してからアクションが実行さ
れるまでに時間がかかった場合に、値がずれる可能性があります。
トリガーが発生したときのアイテムの値をメッセージ内に入れたい
場合は、{ITEM.VALUE}を利用してみてください。
アクションのコンディションに「メンテナンスの状態 期間外 "メ
ンテナンス" 」を追加してあり、そのメンテナンス期間の設定によ
って「メンテナンス期間内」と判定されれば、アクションは実行さ
れません。
fpingのデフォルトのタイムアウト時間内に応答が帰ってきていな
い可能性も考えられますので、タイムアウト値を伸ばしてみてくだ
さい。
icmppingsec[]も利用してどのくらいの時間で応答が返却されてい
るかも確認してみるとよいかもしれません。
woodpecker - 投稿数: 24
TNKさん、コメントありがとうございます。
LASTVALUEを見ていたため、私の方で誤った判断をしていたのかもしれません。
アクションで実行されるメールに、LASTVALUEとVALUEの2つを記載し、
次回発生時に備えたいと思います。
次回発生時に再度お聞きするかもしれませんが、
その際にご意見いただければと思います。