nodata使用時におけるトリガー障害検知タイミングについて
皆様お世話になっております。
また皆様よりご支援を頂きたいと思いこちらに書き込まさせて頂きます。
宜しくお願いいたします。
【Zabbixサーバー】Zabbix 2.2.8
【Zabbixエージェント】Zabbix 2.2.5
【Zabbixエージェント導入先】Windows Server2008
サーバー上のログファイル(ファイル名日付)内に随時ログが書き込まれている環境において、
ある文字列を含むログが15分間書き込まれなければ障害として扱う監視項目を以下のように作成しております。
【アイテム】logrt[(ファイルパス),(文字列),SHIFT_JIS,,skip]
更新間隔:300秒
【トリガー】{(ホスト名):logrt[(ファイルパス),(文字列),SHIFT_JIS,,skip].nodata(900)}=1
障害イベントを継続して作成:ON
上記のように設定することにより、ある文字列を含むログが15分間書き込まれなければ障害の検知はします。
しかし、nodataを使用していることと、障害イベントを継続して作成がONに設定しているため、
障害と検知し始めてから(ある文字列が15分間書き込まれなくなってから)ある文字列が書き込まれ正常と判断されるまで
30秒おきに障害と検知されてしまいます。
nodata等の時間に関するトリガーを使用しているため、30秒おきに評価されてしまうことは把握しております。
監視条件を満たしつつ、30秒おきに検知せず任意の間隔(15分毎など)で障害とする方法はございますでしょうか。
TNK - 投稿数: 4731
障害イベントを継続して作成を有効にされているのはなぜですか?
15分書き込まれなければ障害とみなすだけであれば、継続して有効
にしなければ、ログが出力されていればトリガーは発生しませんし、
15分書き込まれない状態になったら、その時にだけトリガーが発生
すると思います。
ログ監視で、ログが出力されるたびにその行に対してトリガーを発
生させてメール通知するなど処理させるためには、「障害イベント
を継続して作成」を有効する必要がありますが、今回の目的のため
には不要なのではないでしょうか?
E231 - 投稿数: 5
TNK様
>障害イベントを継続して作成を有効にされているのはなぜですか?
継続して障害が発生しているという状態を表現させたいからです。
OFFにしても、障害の発生と回復の時点でトリガーが動作するため、
ONにする必要がないのも承知しています。
(むしろ、それが普通の流れなのかもしれません)
しかし、15分間に特定の文字列が出力されていなければ障害として扱うという判断を
15分毎に実施して欲しいのが希望です。
やはり、30秒毎に評価してしまうnodataやtime関数の仕様で
実現は難しいのでしょうか。
TNK - 投稿数: 4731
nodata()を利用するなら30秒ごとに評価されてしまいます。
15分以上経過してもログが出力されない状態が継続するのであれば、
定期的に警告メールを送信するという方法であれば、
・「障害イベントを継続して作成」をoff
・エスカレーションの設定を行って障害の状態のままであれば
定期的にメールを送信するように設定する
という方法でも要求に近い動作はできるのではないでしょうか。
ただし、他の障害とは別のタイミングでメール送信させたいのであ
れば、アクションも別のアクションに分ける必要があります。
トリガー名に判別できるような文字列を追加し、アクションの実行
条件にトリガー名にその判別するための文字列の有無の条件を追加
させれば、トリガーの種別でアクションを分けることができます。
ご参考:
3 エスカレーション
https://www.zabbix.com/documentation/2.2/jp/manual/config/notifications/...