Windowsイベントログの監視、トリガー方法について
Windowsのイベントログを監視、トリガーを設定したいのですが、うまくトリガーが動作しません。
以下の条件でトリガーを動作させるにはどうすればよいかご教授ください。
~やりたいこと~
・5分ごとに監視対象サーバ(Windows)のイベントログ「Application」に
イベントID”123”、かつ、ソース(イベントソース)"Test_Resource"(※)のイベントログが出力されていないか監視する。
・上記条件のイベントログが出力されている場合、トリガーを動作させる。(メールを送信する)
※値は仮のものとなります。
また、複数の特定イベントIDでもトリガーを動作させるようにしたいです。
例)イベントIDが”123”または"000"または"999"のときにトリガーを動作させる
~今設定しているアイテム情報~
タイプ:Zabbixエージェント(アクティブ)
キー:eventlog[Application]
データ型:ログ
監視間隔:5m (5分)
~今設定しているトリガー情報~
※:HOSTNAMEはサーバ名が設定されている。
条件式:
logsource(/HOSTNAME/eventlog[Application],,"Test_Resource")=1
and
logeventid(/HOSTNAME/eventlog[Application],,"123")=1
~サーバ情報~
Zabbix Server OS:RHEL8.5
Zabbix Server バージョン:6.2.6
監視対象OS:Windows Server2019
~実際の挙動~
トリガーを発生させたいイベントが発生してもトリガーが実行されない。
→対象のイベントログではなく、一番最後のイベントログ(関係ないイベントログ)のみが処理されているため?
他に必要な情報があれば教えてください。
お手数おかけし申し訳ございませんがよろしくお願いいたします。
batica - 投稿数: 26
ご認識の通り、「logeventid」も「logsource」も最後(直近)に収集されたアイテムを評価します。
参考
4 History functions - Zabbix Documentation 6.2
sysrqyuu1231 - 投稿数: 4
回答ありがとうございます。
前回の取得時から今回の取得までの5分間で発生したすべてのイベントを対象に
トリガーを発生させるためのベストプラクティスはありますか?
batica - 投稿数: 26
アイテム、トリガーをどういった挙動にしたいかによるかと存じます。
例えば、以下のような方法にすれば、関係の無いイベントログが出力された場合でも、
トリガーは発報されたままになるかと思います。
・アイテムキーで123”または"000"または"999"、および回復とする場合のIDを収集する
・トリガーで、それぞれイベントID123”または"000"または"999"の場合、障害とする条件式を設定
・トリガーで、それぞれ回復とする場合のIDを回復条件とする回復条件式を設定
しかし、アイテムで全てのイベントログを収集したい、という要件があるのだとすると、
上記の方法では満たさないことになってしまいます。
また、回復とする場合のイベントIDが特に無い場合も、他の復旧方法を考える必要があります。
(○分後に自動回復とするのであれば条件式にnodata関数追加、手動クローズするのであればトリガーで「手動クローズを許可」にチェックを入れる等)
そのため、細かい要件を整理することをお勧めいたします。
sysrqyuu1231 - 投稿数: 4
ご回答ありがとうございます。大変参考になります。
アイテムについてはすべてのイベントログは収集する必要はなく、
「特定のイベントID"123"が発生しているか」が確認できれば問題ありません。
(まずは特定の1つのイベントIDが発生しているかを確認したいと考えています)
また、この特定イベントが発生している場合、障害として扱えればよいです。
~やりたいことの再整理~
・アイテム 5分ごとにイベントID"123"かつイベントソース"Test_Resource"のイベントログを収集する
・トリガー イベントID"123”のイベントが発生していた場合、障害とする → 【確認】
(障害時の処理としては、メールを発報する)
・トリガー 回復(復旧)条件は不要。復旧の処理は手動でクローズする。
~設定を見直したアイテム情報~
タイプ:Zabbixエージェント(アクティブ)
★キー:eventlog[Application,,,Test_Resource,123,,]
データ型:ログ
監視間隔:5m (5分)
★…変更点
このキーで必要なイベントログだけ取得できていることを確認済み。
~【確認】~
この場合に5分間でイベントID"123"のイベントが1回でも発生していた場合、トリガーを発生させるようにしたいです。
このときの条件式についてご教授いただけないでしょうか。
countを使うのかと思っていろいろ試しているのですがトリガーが動作せず想定動作を実現できておりません。
度々お手数おかけして申し訳ございませんが、ご教授いただけますと幸いです。
ama - 投稿数: 76
> ★キー:eventlog[Application,,,Test_Resource,123,,]
上記で監視データが取得できているようであれば、findで障害検知できないでしょうか?
◆トリガー条件式
find(/ホスト名/アイテム名,,"regexp",".*")=1
sysrqyuu1231 - 投稿数: 4
>>◆トリガー条件式
>>find(/ホスト名/アイテム名,,"regexp",".*")=1
ありがとうございます。
こちらのトリガー条件式で障害検知できることを確認しました。
こちらの条件式をもとに障害系の動作確認を進めてみたいと思います。
情報のアップデートがあればこちらのトピックで状況共有させていただきます。