sugimotoです。
ZABBIX agent をWindowsにいれて、Windowsサーバーの監視をしているんですが、イベントログのエラー監視をしたくなりました。
ログ監視によるフィルタリングはうまくできそうになかったので次のような UserParameter を zabbix_agentd.conf で設定するとエラー数がカウントできました。
UserParameter=eventlog.count[*],c:\windows\system32\cscript c:\windows\system32\eventquery.vbs /FI "type eq $1" /L application /FO csv /NH | find /c ","
eventquery の各パラメーターは以下の通りです。
- /FI : イベントログをフィルタします – type er xxx でログタイプを指定
- /L : イベントログの種類を指定します – 今回はアプリケーションログでした(system|security)など指定
- /FO : アウトプットの形式 – 余計な行をフィルタしたいのでCSVを指定しました
- /NH : ヘッダを表示しない – カウントするのでヘッダはいらないですね
すべてのオプションを確認するには、コマンドプロンプトで以下のコマンドを実行します
c:\windows\system32\cscript c:\windows\system32\eventquery.vbs /?
あとはWebインターフェイスで item に eventlog.count[error] とか指定するとエラーをカウントします。eventlog.count[warn] とかも指定可能
ただし、期間を指定してないので、itemのほうでDiffをとるように設定しましょう。