web監視でレスポンスコードとレスポンスタイムで通知先を変える方法について
OS:CentOS7
Zabbix 3.0.16
Web監視で以下のアラートを通知させようとしています。
①レスポンスコードが2回連続で200以外だった場合
②レスポンスタイムが15秒を超える場合
※①と②でメール文面、通知先を変える想定です。
Web監視のステップでは、要求ステータスコード200/タイムアウト15秒としており、トリガーは以下のようにしています。
~~~~~
①レスポンスコードが2回連続で200以外だった場合
{URL:web.test.rspcode[webtest,local].last()}<>200
and
{URL:web.test.rspcode[webtest,local].last(#2)}<>200
②レスポンスタイムが15秒を超える場合
{URL:web.test.time[webtest,local,resp].last()}>15
~~~~~
この条件の場合、試したところタイムアウト(Last error messageがTimeout was reached~)になる場合には、
レスポンスコードとレスポンスタイムの最新の値が取得できないことが分かりました。
値が取得できない為、どちらのトリガーも動作しませんでした。
その為、web.test.failでトリガーを考えたのですが、
これだけだと何が原因でステップが失敗したかが分からないので、
どうしたらそれぞれの条件でアラートが通知できるでしょうか。
良い方法があればご教示いただけませんでしょうか。
yk_taiko - 投稿数: 184
失敗するのであれば、「web.test.error」が更新されるはずです。
タイムアウトした際の文字列で引っ掛けてはいかがですか。
kasugai - 投稿数: 72
yk_taiko様
ご回答いただきありがとうございます。
文字列で引っかけることも考えたのですが、復旧の条件をどうしようかと悩んでしまっています。
※nodataでできそうな気がしますが、まだ検証できていません。
引き続き検討してみます。
yk_taiko - 投稿数: 184
「web.test.fail」と「web.test.error」を組み合わせたらいいんじゃないでしょうか。
ステップが正常になったら復旧するようにできると思います。
kasugai - 投稿数: 72
yk_taiko様
回答いただきありがとうございます。
以下の設定で障害/復旧通知ができたので、これで様子をみてみます。
{URL:web.test.fail[webtest].last()}=1 and {URL:web.test.error[webtest].str(Timeout)}=1