監視NG後のリトライ間隔設定について

いつもお世話になっております。

zabbix5.4

下記の様な監視を行いたいのですが、
zabbixの標準機能で実装することは
可能でしょうか?

「10分間隔で監視を行い、
NGが出た場合に1分間隔で監視リトライをして
5回連続でNGがでたらメール通知する」

調べた感じでは、Webシナリオにのみ
実装できる認識でおります。
また、監視間隔の例外設定はありますが、
事前に決めた日時に沿ってのみ
動作する認識でおります。

ご回答いただければ幸いです。
以上、よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

Zabbixの標準機能と設定だけで、障害発生時にアイテムの監視間隔
を変更することはできません。
Web監視でも同様だったはずです。

最初のNGが発生したときに、Zabbix APIなどを使用して監視間隔を
変更するような仕組みを作成すればできるかもしれません。

ユーザー tototo の写真

ご回答いただきありがとうございます。
zabbix_server.conf の下記で同様の設定を
実装することは可能でしょうか?

### Option: UnreachablePeriod
# After how many seconds of unreachability treat a host as unavailable.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnreachablePeriod=45

### Option: UnavailableDelay
# How often host is checked for availability during the unavailability period, in seconds.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnavailableDelay=60

### Option: UnreachableDelay
# How often host is checked for availability during the unreachability period, in seconds.
#
# Mandatory: no
# Range: 1-3600
# Default:
# UnreachableDelay=15

以上、ご回答いただければ幸いです。

ユーザー TNK の写真

できません。
記載された各設定項目は、アイテムの監視間隔を調整する設定項目
ではありません。

ユーザー tototo の写真

ご回答いただきありがとうございます。

下記サイトを参考に情報収集しております。
「Zabbix / MIRACLE ZBX ServerのPollerプロセスのエラー処理」
https://www.cybertrust.co.jp/blog/linux-oss/system-monitoring/tech-loung...

「①10分間隔で監視を行い
 ②NGが出た場合に1分間隔で監視リトライをして
 ③5回連続でNGがでたらメール通知する」

①については、web上でアイテムごとに設定します。
②については、UnreachableDelay=60に設定することで実現できるのではないかと思いました。この時点でweb上に「unavailable」の表示は出ない認識です。
また、アイテムごとに設定することはできない認識です。
③については、回数で指定することはできませんが、UnreachablePeriod=300で、似たようなことができるのではないかと思いました。ただ、UnreachableDelay=60での監視で一時的にエラーが出なくなった場合でも、初回エラーから300秒後にweb上に「unavailable」が表示されてしまう認識です。

認識に誤っている点があれば、ぜひご指摘いただきたく存じます。
お手数をお掛けしますが、よろしくお願いいたします。

ユーザー TNK の写真

tototoさんが「NG」と書かれているのが何を指すのかが不明確です。

アイテムの値が取得できていて、その値がトリガーの条件式で障害
と判定されることを指していますか?
それとも、ZabbixサーバーからZabbixエージェントに接続できない
ことを指していますか?

UnreachablePeriodやUnreachableDelayの設定は、例えば、Zabbix
エージェントへの接続ができない場合に、再度接続を回復するため
に使用されますが、アイテムの値が取得できている場合には関係な
いと思います。

ユーザー tototo の写真

ご回答いただきありがとうございます。
情報が不足しており、申し訳ございません。

NGは、トリガーの条件式で障害と判定されることを指しています。
・Pingが到達しない
・サービスが停止している
・指定したディレクトリが閾値を超える
・ログに指定した文字列が含まれている など

TNKさんのご説明で
UnreachablePeriodやUnreachableDelayの設定について
理解することができました。

上記のような、「値がとれていて、その値に基づいて障害判定する」という場合には、
UnreachablePeriodやUnreachableDelayを設定しても意味がないのですね。。。

以上、よろしくお願いいたします。

ユーザー fripper の写真

>①10分間隔で監視を行い
>②NGが出た場合に1分間隔で監視リトライをして
>③5回連続でNGがでたらメール通知する

NGかどうか、というトリガーの判定は、agent 等のデータ収集段階ではなく
その収集結果値が server へ届いて、過去の収集履歴値や関連アイテム値等を含め、
トリガー条件式で総合評価した結果として判明するものなので
「障害として判定された場合だけ、収集間隔を短くして、さらにその結果を以って「真の障害」とする」
的な動作は難しいかと思います

予め、Weekdayのみ、とかで監視・収集の実施間隔を変更することは、以下の機能にて設定可能ですが‥
https://www.zabbix.com/documentation/5.0/manual/config/items/item/custom...

よって、短い方のデータ収集間隔で常時データを監視・収集したうえで
トリガー評価式のほうでも、「短い方のデータ収集間隔」での収集結果が届くたびに「判定」する前提で
設定するほかないかと思います

常時 1分間隔で収集するようなアイテム設定としておいて
トリガー条件式を、「 host:item.min(#10) > 0 」といった感じの
「過去10件すべてでエラー的な値だった場合は障害として判定」とするような感じでしょうか

このように設定すると、不要な監視データ(と人間が感じるもの)
正常と判定されている値なのに、細かなインターバルとなった分、大量の履歴値が
DB内に残ることによってDB肥大化となったり、監視対象にも、頻繁に収集をする分
負荷を掛けてしまうことになる‥というデメリットがあるのは事実なので
難しいところです‥

ユーザー tototo の写真

返信が遅れてしまい、申し訳ございません。

ご回答いただきありがとうございました。
監視間隔を短くするなどの方法で構築していこうと思います。

ご助力いただきありがとうございました。
また、お世話になるかと思います。
よろしくお願いいたします。