トリガーにnodata()と障害イベントを継続して生成を利用した場合に生成されるイベント個数の不一致について
お世話になります。
イベント連続生成を有効にした上で、nodata(15)としたトリガーで監視しているアイテムを設定しているのですが、
検出したキーワード文字列の個数と、生成されたイベントの個数が合わないケースがありましたので質問します。
今、サーバのテストを行っているのですが、障害を発生させた際に、監視対象ログファイルにキーワードが複数回出力されます。
これを個別の障害イベントとして検知したいため、「障害イベントを継続して生成」を有効にしています。
例えば、障害テストを行ったとき、キーワードが4回出現したとします。
これをzabbixは4つの障害イベントとして検知してくれるのですが、たまに5回イベントを生成することがあります。
これは以下のようなロジックであると理解していますが、正しい認識でしょうか ?
例)
- 10:30:20秒にzabbixに検知されたトリガーは、nodata(15)に従い、10:30:35には正常ステータスになることができるが実際は、
10:30:30のnodata()評価タイミングをまたいで、障害ステータスとなっているため、更に障害のイベントが生成される。
- 10:30:15秒にzabbixに検知されたトリガーは、nodata(15)に従い、10:30:30には正常ステータスになることができる。
10:30:30のnodata()評価タイミングで、正常ステータスに戻るイベントが生成される。
つまり、対象のアイテムが、nodata()の評価タイミングである、毎時刻00秒と30秒をまたいで障害ステータスを維持しているとzabbixは、新に障害イベントを生成する。
補足
※ Zabbixのバージョンは、2.2.11 (CentOS6.4) となります
※ フォーラムでの過去のやりとりより、nodata()の評価タイミングが30秒間隔ということは理解しました。
http://www.zabbix.jp/node/3281
※ 実機のイベントより、nodata()の評価タイミングおそらく時刻で毎00秒と毎30秒に評価されていると認識しています。
TNK - 投稿数: 4671
どのようなアイテムで、トリガーにどのような設定を行っているか
わかりませんが、トリガーの条件式にnodata()を利用する場合
は、アイテムの取得タイミングだけではなくnodata()の再評価の
タイミングでもトリガーのイベントが発生します。
例えば、ログ監視などで利用していた場合、ログ内でのパターン一
致以外にもnodata()の評価タイミングでもイベントが発生するので、
ログファイル内のエラーの件数とイベントの発生個数が一致しない
場合があります。
それを理解されたうえでnodata()をご利用ください。
tjun1 - 投稿数: 3
ご返信ありがとうございます。
nodata()の仕様を理解して利用していきたいと思います。
もう一点、お教えいただきたいのですが、
> ※ 実機のイベントより、nodata()の評価タイミングおそらく時刻で毎00秒と毎30秒に評価されていると認識しています。
nodata()の再評価タイミングというのは絶対的に、この時間 (時刻?) でしかないのでしょうか。
Zabbixサーバプロセスの起動時間などに影響されるものではないという理解でよろしいでしょうか。
TNK - 投稿数: 4671
ソースでは確認していませんが、2.2.11、3.0.1でnodata()だけを
利用したトリガーを仕掛けてみたところ、00秒と30秒でイベントが
記録されました。
他の処理の影響も受けることも考えられますので、だいたい00秒と
30秒あたりでチェックされると思います。
「必ず」とか「ちょうど」という保証はないでしょう。
tjun1 - 投稿数: 3
ご返信ありがとうございました。
承知いたしました。