Zabbix Ver : 2.2です。
現在あるURLのレスポンスタイムの監視実装に向けてZabbixの設定をしています。
6秒以上の遅延が5回で障害 という条件を下記で設定しています。 ({response.time.count(#10,6,gt)})>4)
6秒以上27秒未満の遅延が5回で障害 という条件に変更したいのですが、 その設定方法がわからずアドバイス頂けないでしょうか。
トリガー条件の範囲指定方法について
上記サイトを見たのですが、うまく範囲指定できず困っております。
AND 条件で .count(#10,27,lt)})>4 を並べても想定通りにならないのでしょうか。
27 秒以上の場合のトリガー条件は別途作成する必要があり、 その条件とも被らないように考慮がいる気がします。
※ 「以上」の条件は "gt" ではなく "ge" ですかね https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E6%BC%94%E7%AE%97%E5%AD%90
特定の範囲内に収まる件数を count で単純に条件付けするのは厄介ですね‥
yk_taiko 氏の言う方法では ({response.time.count(#10,6,gt)})>4) and ({response.time.count(#10,27,lt)})>4) 3,7,7,7,7,32,32,32,32,32 といったデータ構成だった場合に誤検知となってしまうかと思います
そこで、逆説的な発想で 6秒以上、かつ、27秒未満の範囲に5件以上あれば障害 ↓ 6秒未満の範囲もしくは27秒以上の範囲に、計6件以上あれば正常 →6秒以上・27秒未満の範囲に5件以上となることは無くなる
{HOST:response.time.count(#10,6,lt)}+{HOST:response.time.count(#10,27,ge)}<6
といった条件式はどうでしょうか?
fripperさん、ありがとうございます。
試してみたのですが、28秒以上が5回で障害判定されてしまいます。。 他に方法があったらアドバイス頂けないでしょうか?
fripperさん、正しく設定できました! 私の条件式に誤りがありました。すみませんでした。 大変助かりました。
x<6, 6<=x<27, 27<=x の各々の範囲に、収集結果値がそれぞれ 何件ずつ来ることが有り得るか‥を書き出してみました さらに、パターン表に「6秒以上27秒未満の遅延が5回で障害 という条件」から どう判定してほしいか‥を示す OK,NG を追記してみました
先の書き込みでの「検知されてしまった時点」での「#10」にあたるデータ列は どのような組み合わせとなっていたでしょうか?
「27<=x」の部分に5件来る場合(★)で障害判定されてしまうのは 「6<=x<27」の部分に残りの5件が来ている場合(☆)となるはずなのですが‥
判定結果, x<6, 6<=x<27, 27<=x OK,10,0,0 OK,9,1,0 OK,9,0,1 OK,8,2,0 OK,8,1,1 OK,8,0,2 OK,7,3,0 OK,7,2,1 OK,7,1,2 OK,7,0,3 OK,6,4,0 OK,6,3,1 OK,6,2,2 OK,6,1,3 OK,6,0,4 NG,5,5,0 OK,5,4,1 OK,5,3,2 OK,5,2,3 OK,5,1,4 OK,5,0,5,★ NG,4,6,0 NG,4,5,1 OK,4,4,2 OK,4,3,3 OK,4,2,4 OK,4,1,5,★ OK,4,0,6 NG,3,7,0 NG,3,6,1 NG,3,5,2 OK,3,4,3 OK,3,3,4 OK,3,2,5,★ OK,3,1,6 OK,3,0,7 NG,2,8,0 NG,2,7,1 NG,2,6,2 NG,2,5,3 OK,2,4,4 OK,2,3,5,★ OK,2,2,6 OK,2,1,7 OK,2,0,8 NG,1,9,0 NG,1,8,1 NG,1,7,2 NG,1,6,3 NG,1,5,4 OK,1,4,5,★ OK,1,3,6 OK,1,2,7 OK,1,1,8 OK,1,0,9 NG,0,10,0 NG,0,9,1 NG,0,8,2 NG,0,7,3 NG,0,6,4 NG,0,5,5,★☆ OK,0,4,6 OK,0,3,7 OK,0,2,8 OK,0,1,9 OK,0,0,10
あ、入れ違いになってしまいました 申し訳ありません
うまく設定できたようで、よかったです‥
アカウント名 Yuuki
本名 新井 裕樹
Zabbix関連
yk_taiko - 投稿数: 184
AND 条件で .count(#10,27,lt)})>4 を並べても想定通りにならないのでしょうか。
27 秒以上の場合のトリガー条件は別途作成する必要があり、
その条件とも被らないように考慮がいる気がします。
※ 「以上」の条件は "gt" ではなく "ge" ですかね
https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E6%BC%94%E7%AE%97%E5%AD%90
fripper - 投稿数: 495
特定の範囲内に収まる件数を count で単純に条件付けするのは厄介ですね‥
yk_taiko 氏の言う方法では
({response.time.count(#10,6,gt)})>4) and ({response.time.count(#10,27,lt)})>4)
3,7,7,7,7,32,32,32,32,32 といったデータ構成だった場合に誤検知となってしまうかと思います
そこで、逆説的な発想で
6秒以上、かつ、27秒未満の範囲に5件以上あれば障害
↓
6秒未満の範囲もしくは27秒以上の範囲に、計6件以上あれば正常
→6秒以上・27秒未満の範囲に5件以上となることは無くなる
{HOST:response.time.count(#10,6,lt)}+{HOST:response.time.count(#10,27,ge)}<6
といった条件式はどうでしょうか?
Yuuki - 投稿数: 3
fripperさん、ありがとうございます。
試してみたのですが、28秒以上が5回で障害判定されてしまいます。。
他に方法があったらアドバイス頂けないでしょうか?
Yuuki - 投稿数: 3
fripperさん、正しく設定できました!
私の条件式に誤りがありました。すみませんでした。
大変助かりました。
fripper - 投稿数: 495
x<6, 6<=x<27, 27<=x の各々の範囲に、収集結果値がそれぞれ
何件ずつ来ることが有り得るか‥を書き出してみました
さらに、パターン表に「6秒以上27秒未満の遅延が5回で障害 という条件」から
どう判定してほしいか‥を示す OK,NG を追記してみました
先の書き込みでの「検知されてしまった時点」での「#10」にあたるデータ列は
どのような組み合わせとなっていたでしょうか?
「27<=x」の部分に5件来る場合(★)で障害判定されてしまうのは
「6<=x<27」の部分に残りの5件が来ている場合(☆)となるはずなのですが‥
判定結果, x<6, 6<=x<27, 27<=x
OK,10,0,0
OK,9,1,0
OK,9,0,1
OK,8,2,0
OK,8,1,1
OK,8,0,2
OK,7,3,0
OK,7,2,1
OK,7,1,2
OK,7,0,3
OK,6,4,0
OK,6,3,1
OK,6,2,2
OK,6,1,3
OK,6,0,4
NG,5,5,0
OK,5,4,1
OK,5,3,2
OK,5,2,3
OK,5,1,4
OK,5,0,5,★
NG,4,6,0
NG,4,5,1
OK,4,4,2
OK,4,3,3
OK,4,2,4
OK,4,1,5,★
OK,4,0,6
NG,3,7,0
NG,3,6,1
NG,3,5,2
OK,3,4,3
OK,3,3,4
OK,3,2,5,★
OK,3,1,6
OK,3,0,7
NG,2,8,0
NG,2,7,1
NG,2,6,2
NG,2,5,3
OK,2,4,4
OK,2,3,5,★
OK,2,2,6
OK,2,1,7
OK,2,0,8
NG,1,9,0
NG,1,8,1
NG,1,7,2
NG,1,6,3
NG,1,5,4
OK,1,4,5,★
OK,1,3,6
OK,1,2,7
OK,1,1,8
OK,1,0,9
NG,0,10,0
NG,0,9,1
NG,0,8,2
NG,0,7,3
NG,0,6,4
NG,0,5,5,★☆
OK,0,4,6
OK,0,3,7
OK,0,2,8
OK,0,1,9
OK,0,0,10
fripper - 投稿数: 495
あ、入れ違いになってしまいました
申し訳ありません
うまく設定できたようで、よかったです‥