【ZABBIX4.0】ログ監視による負荷について

ZABBIXのログ監視の仕様についてご教授ください。

アイテムキーeventlogでのログ監視を検討しています。

Windowsセキュリティログから特定のイベントを検知したいと考えており
下記のように、イベントID指定でログが取得された場合にトリガーするよう設定することを考えています。

{xxx:eventlog[Security,,,,1511,,].nodata(30m)}=0

ここでアイテムキーeventlogでのログ取得の負荷について懸念しているのですが
以前、別アイテムキー log[*] を設定した際に、監視対象のZABBIX AgentのCPU使用率が高騰して監視不可状態になってしまったことがありました。

ある資料(http://www.oss-kanri.org/siryou/study2_MLmiyashita.pdf p6~11)を読み、ZABBIXのログ監視が高負荷になる理由について下記の理解をしたのですが
アイテムキーeventlogについても、仕様は同じなのでしょうか。

‐ ZABBIX Agentはlastlogsize(ログファイルをどこまで読んだかというしおりのようなもの)を自身のメモリ上に保持している
‐ ZABBIX Server側でもlastlogsizeは保持しており、ZABBIX Agentはログアイテムを取得してZABBIX Serverに送信するタイミングでlastlogsizeの情報もZABBIX Serverに同期する
‐ アイテムキーに該当しないログ出力が続くと、lastlogsizeをZABBIX Serverに同期するタイミングが無い
⇒ZABBIX Agentで保持するlastlogsizeとZABBIX Serverで保持するlastlogsizeが乖離する場合がある
‐ ZABBIX Agentは再起動のタイミングでlastlogsizeの情報を失い、ZABBIX Server側のlastlogsizeを取得してログ読み込みを行う
⇒このときにZABBIX Agentで保持するlastlogsizeとZABBIX Serverで保持するlastlogsizeが乖離していると、過去に読み込んだはずのログまでさかのぼって読んでしまいものすごい量になる可能性がある。高負荷の原因となる

検知対象のイベントは滅多に起こるものではないため、上記のパターンに当てはまるのではと懸念しております。
よろしくお願いいたします。

ZABBIX Serverバージョン: 4.0.5

コメント表示オプション

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

理解が誤っています。

参考にされた資料も正確だとは思えません。
これはZabbixエージェントを再起動したときだけです。
Zabbixエージェントが起動したままであれば、L2はメモリ上にある
ので、このことが原因で高負荷になることはありません。

ログ監視でZabbixエージェントが高負荷になるのは、アイテムに設
定した条件に合致したログが大量発生した場合でしょう。
条件に合致するログが大量に発生した際に、処理の負荷を抑える方
法としては、MaxLinesPerSecondで送信する数を抑える方法があり
ます。

追記:
すでに運用を開始していてログがたまっている環境で新規にログ監
視を開始する場合は、過去のログを読み込まないようskipオプショ
ンをつけることをお勧めします。

ユーザー kitayama_y の写真

TNK様
ご回答ありがとうございます。

> これはZabbixエージェントを再起動したときだけです。
> Zabbixエージェントが起動したままであれば、L2はメモリ上にある
> ので、このことが原因で高負荷になることはありません。

再起動したときだけ、というのは理解しているのですが
監視対象のサーバーは日次で再起動することを想定しており、その場合に高負荷が発生するパターンに該当するのではと考えた次第です。

MaxLinesPerSecondのチューニング、Skipオプションについての情報ありがとうございます。
MaxLinesPerSecond(またはアイテムキー中のmaxlinesパラメータ)で、Agentが分析できるログ・ZABBIX Serverに送信できるログともに制御できるということで上記の懸念は解決できそうです。

アイテムキー"eventlog"についても同様のパラメータがあることを確認できました。

ありがとうございました。