トリガー「count」関数につきまして
お世話になっております。
掲題の件につきまして、下記環境・監視テンプレート設定を実施していますが、
想定した結果を得られないことがあります。
知見をお持ち方がいらっしゃれば、ご教授いただきたく思います。
============================================================
OS
RHEL7.6
zabbix
4.4.8
アイテム ※監視間隔:60s
net.tcp.service[tcp,,10050]
トリガー
{テンプレート名:net.tcp.service[tcp,,10050].count(120,0,eq)}>=2 and
{テンプレート名:net.tcp.service[tcp,,10050].last(#1)}=1
============================================================
■事象
・2分以上停止状態(監視データ:0)後、正常(監視データ:1)状態に戻ったがトリガーが起動しない。
※監視データ
180s前 120s前 60s前 最新
0 0 0 1
・複数台のサーバに設定しているが、トリガーが正常に起動するサーバとしないサーバが存在する。
■やりたいこと
・2分以上停止状態からの復旧後にメッセージを出力したい。
自分の予想としては、最新データ取得後のトリガー評価時に120s前のデータが
120s以内のデータとしてカウントされなかったのではないかと考えております。
countを秒数ではなく、回数にしてしまうことで解決はできそうですが、
なぜこのような事象が発生したかを報告する必要があるため、
原因がわかるようであればご教授いただきたく思います。
TNK - 投稿数: 4734
例えば、アイテムの値が以下のような時系列で取得できていたと仮
定します。
10:00:00 値: 0
10:01:00 値: 0
10:02:00 値: 1
最後の10:02にアイテムの値を取得して処理をしているうちに、時
刻が10:02:01になってしたとします。
そうすると、トリガーの条件式を判定しようとした時に、120秒間
ではアイテムの値が0になったのは1回になってしまうので、条件式
を満たさないのではないでしょうか。
多少時間がずれることも考慮した条件式にすることをご検討くださ
い。
ama - 投稿数: 76
TNK様
上記内容を報告したところ、トリガー条件を時間ではなく回数で判定することになりました。
ご回答ありがとうございました。