webシナリオを用いて、webの監視を行いたい
識者の皆様
いつも勉強をさせていただきております
私の環境はAWSでzabbixじゃ2.4.7を利用しています
今回、webシナリオでwebに監視を行いたいと考えています
シナリオをしては
web health check
で、stepとして、3個、別々のURLを設定しています
この状態でstep1からの応答コードを404に変更するとzabbix自体が重度の障害を発報してくれます
しかし、step2の応答コードを404に変更してもzabbix自体が重度の障害を発報してくれません
これは、webシナリオを設定しているhostのトリガーが、下記の様な設定をしているために発生をしている事象でしょうか?
【トリガー】
{ホスト名:web.test.fail[web health check].count(#3,1)}=3
個人的にはstepの1個でもエラーが発生した場合は、webシナリオ自体がエラーになり、上記のトリガーがキックされると考えています
設定の過不足、もしくはそもそもの勘違いがあればご指導いただければ幸いです
どうぞよろしくお願いします
kaeru - 投稿数: 263
>>TETSUYA Saito様
意図と違っていたら申し訳ありませんが、
内容として以下の設定を行ってると想定されます。
シナリオ名 :web health check
STEP1 :URL1
STEP2 :URL2
STEP3 :URL3
※STEP1~STEP3に設定されたいずれかがステータスコードが200以外(例えば404など)になった場合、障害として発報。
web.test.failは、失敗したSTEP数を表示し、全て成功した場合は0となります。
記載頂いたトリガーでは、
「web.test.fail[web health check]の直近3回の値の中で1と等しい数を集計し、3と等しければ障害」となっています。
この場合、web.test.failの値が1となる、STEP1が失敗した時のみしか障害になりません。
→count関数の仕様は以下をご確認ください。
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions
単純に書くのであれば以下で良いかと思います。
{ホスト名:web.test.fail[web health check].last()}<>0
→「web.test.fail[web health check]の最新の値が0(全て成功)以外であれば障害」
TETSUYA Saito - 投稿数: 42
kaeruさん
ご指導ありがとう御座います
ご指導を頂いた内容でwebシナリオのstep2で404を設定した時にalertを発報することができました
あと、できればなのですが、webのcheckですので、過負荷の折にはアクセスがしづらい状況の考えられるかと考えています
その場合は404が返されたりすることもかるのではと考えています
その場合は各ステップで連続して404が3回応答されたら、alertが発報するようにトリガーを設定したいのですが
どのようなトリガーを作成すればよいか苦慮しています
ご教授賜われれば幸いです
よろしくお願いします
kaeru - 投稿数: 263
トリガーだけで対応するのであれば以下でいかがでしょう。
{ホスト名:web.test.fail[web health check].min(#3)}<>0
→web.test.failの直近3回の値の中で、最小値が0(全て成功)以外であれば障害
ただし、この設定ですと以下のケースでも障害となるため認識があっているか確認してください。
・1回目でSTEP1が失敗(web.test.failは1)
・2回目でSTEP1は成功したがSTEP2が失敗(web.test.failは2)
・3回目でSTEP1~2は成功したがSTEP3が失敗(web.test.failは3)
→web.test.failの直近3回の値の中で最小値は1で、0以外となるため障害
例えばSTEP1で3回失敗したら、STEP2で3回失敗したら
といったような条件にしたい場合、Webシナリオを分けた方が良いかと思います。
TETSUYA Saito - 投稿数: 42
kaeruさん
ご指導ありがとうございます
今の小生として一番近い設定ごご教授くださいました
>{ホスト名:web.test.fail[web health check].min(#3)}<>0
> →web.test.failの直近3回の値の中で、最小値が0(全て成功)以外であれば障害
上記の設定でしばらく運用をしてみたいと思います
また、より詳細にするのであればwebシナリオを分ける必要があることも理解いたしました
色々とご教授いただき、誠にありがとうございます
今後共よろしくお願いします