ZabbixでWindowsのイベントログを監視する方法(ログオン検知を例に設定方法を確認)
ZabbixでWindows Serverのイベントログを監視する場合の手順です。
Windows Serverへのログオンに関するイベントログを例として、Zabbixでイベントログを収集するためのアイテム作成、イベントログのフィルタリング設定、トリガー設定など、一連の手順を確認しています。
イベントログに関する、アイテムキーやトリガーの概要も紹介しています。
※手順確認には、Zabbixのバージョンは7.0LTS(7.0.17)を使用しています。
※手順確認には、Windows Server 2025 Datacenter Azure Editionを使用しています。
※今回は、Zabbix エージェント2を利用した場合の手順を中心に確認しています。
※リモートデスクトップ接続時のイベントログを検知する方法について確認しています。
- 1. WindowsのイベントログをZabbixで収集するためのアイテム設定手順
- 2. 収集したイベントログを監視するための設定手順(Windowsへのログオンを例に確認)
- 2.1. アイテムで収集するWindowsへのログオンに関するイベントログ
- 2.2. ログオンイベントのみを収集するためにイベントIDで絞り込んだアイテムを作成
- 2.3. イベントログに関するトリガー関数
- 2.4. Windows Serverへのログオンを監視するトリガーを作成
- 2.5. 対象となるイベントログを発生させて障害検知を確認
- 2.6. ログオンエラーのイベントログを監視するトリガーを作成
- 2.7. ログオンエラーの検知を確認
- 2.8. 正常性イベントについて
- 2.9. 手動クローズについて
- 2.10. 障害イベント生成モードについて
- 2.11. 障害イベント生成モードを複数に設定して連続して障害を検知できるかを確認
- 3. 最後に
WindowsのイベントログをZabbixで収集するためのアイテム設定手順
イベントログ用のアイテムが用意されている
Zabbixには、Windows専用のアイテムがいくつか用意されています。
その中の1つに、イベントログを監視するためのキーがあります。
eventlogキーは、指定した条件に一致するイベントの内容を取得します。
主にイベントログの内容を監視するために使用します。
eventlog.countキーは、指定した条件に一致するイベントログの件数(行数)を取得します。
今回は、eventlogキーを使用してWindowsイベントログを監視する手順について確認します。
eventlogのアイテムキーの設定内容
eventlogのアイテムキーでは、イベントログ名やイベントレベルなどの条件を指定します。
イベントログ名は必須項目で必ず指定する必要があります。
eventlogのアイテムキーの設定内容 | ||
|
||
name | イベントログ名を指定します。 System、Application、Securityなどのログ名を指定します。 |
|
regexp | ログフィルタリング用の文字列です。 イベントログメッセージ本文に対してフィルタをかける場合に指定します。 正規表現も利用可能です。 |
|
severity | イベントレベルを指定します。 Information、Warning、Error、Criticalなどの重要度が設定できます。 大文字と小文字は区別されません。 |
|
source | イベントソースを指定します。 正規表現も利用可能です。 |
|
eventid | イベントIDを指定します。 正規表現も利用可能です。 |
|
maxlines | 1秒間に送信するログの行数を指定します。 この値はzabbix_agent2.confの設定値を上書きします。 |
|
mode | アイテム登録時に過去のログを含めてすべてチェックするかどうかを指定します。 allまたはskipから選択できます。 skipを指定すると、アイテム登録時点以前のログはスキップされます。 |
※アイテムキーのフォーマットの説明については、こちらに記載されています。
イベントログを取得するアイテムの作成手順
アイテムを新規作成する場合は、ホストのアイテム作成から開始します。
Systemのログをすべて取得する設定としています。
今回は、アイテム名をEventlog(System)としています。
※比較のためskipを指定していません。この場合、アイテム登録以前の過去ログも取得されるため注意が必要です。
アイテムで取得したイベントログを確認
作成したアイテムで、イベントログが収集されているかを確認します。
監視データのメニューにある、最新データから確認しています。
収集したイベントログを確認 | |
最新データで作成したアイテムのヒストリを表示します。 modeにskipが設定されていないため、過去のイベントログの情報も取得されていることが確認できます。 |
![]() |
![]() |
※最新データの表示は、他のメニューからも可能です。
※ローカル時間はWindowsイベントログの日時です。タイムスタンプはZabbixエージェントがイベントログを読み込んだ時間です。
eventlogのアイテムキーのmodeにskipを設定して確認
eventlogのアイテムキーのmodeにskipを設定した場合のログ収集状況を確認します。
収集したイベントログを確認 | |
eventlogのアイテムキーのmodeにskipを設定します。 | ![]() |
|
|
最新データで収集されたイベントログを確認します。 アイテム作成後のイベントログのみが収集されていることを確認できます。 |
![]() |
ログ監視間隔は短くする
手順では監視間隔を1分にしていますが、Zabbixエージェントによるログ監視では監視間隔を短くすることが推奨されています。
ログ監視では、Zabbixエージェント側でログをチェックし、Zabbixサーバー側にログを送信しています。
そのため、短い間隔でチェックした方が1回のチェック件数が少なくなり、処理負荷を平準化できます。
※Zabbixサーバー側の負荷なども確認しながら、監視間隔は設定します。
収集するログは件数は減らす
アイテムキーの設定に合致したログをZabbixエージェント側でチェックし、Zabbixサーバー側に送信します。
Zabbixサーバー側では、受信したログがトリガー条件に合致するか評価したり、データベースに書き込みを行います。
そのため、送信されるログが少ないほど、Zabbixサーバーの負荷を軽減できます。
—広告—
収集したイベントログを監視するための設定手順(Windowsへのログオンを例に確認)
アイテムで収集するWindowsへのログオンに関するイベントログ
収集対象となるイベントログです。
Windowsのログオンやログオン失敗のイベントログを収集する設定としています。
監視対象のイベントログ | |
イベントログチャネル | Security |
イベントソース | Microsoft-Windows-Security-Auditing |
イベントレベル | 指定しない |
イベントID | 4624(正常なログオン) 4625(ログオンエラー) |
対象のイベントログにフィルターした場合の例です。 | ![]() |
Windows Serverへのログオンに関するイベントログについては、こちらで紹介しています。
ログオンイベントのみを収集するためにイベントIDで絞り込んだアイテムを作成
イベントログを収集するアイテムキーを作成します。
eventlogのアイテムキーではソースとイベントIDで絞り込みを行っています。
データ型はログ、監視間隔は1sとしています。
アイテム名はEventlog(Logon)としています。
イベントログを収集するアイテムを作成 | ||
キーにeventlogを設定したアイテムを作成します。 イベントIDとソースを指定しています。 |
![]() |
|
キーの設定値
|
||
作成したアイテムで、イベントログが収集されていることを確認できます。 指定したソースやイベントIDで絞り込みされていることも確認できます。 |
![]() |
|
![]() |
イベントログに関するトリガー関数
イベントログに関するトリガー関数も用意されています。
イベントログメッセージ本文の内容を利用する場合は、他のログ監視と同様にfind関数を利用します。
イベントログに関するトリガー関数 | |
logeventid | イベントIDを指定します。 数値または正規表現で指定します。 一致する場合は1、一致しない場合は0が返ります。 |
logseverity | イベントログのイベントレベルを指定します。 文字列または正規表現で指定します。 一致する場合は1、一致しない場合は0が返ります。 |
logsource | イベントログのソースを指定します。 文字列または正規表現で指定します。 一致する場合は1、一致しない場合は0が返ります。 |
Windows Serverへのログオンを監視するトリガーを作成
ホストのトリガー作成から開始します。
作成したアイテムを利用して、トリガーを作成します。
今回は、2つのトリガー条件式をand条件で設定しています。
-
- find関数を利用して、イベントログメッセージ本文に"ログオン タイプ: 10″が含まれる場合
- logeventid関数を利用してイベントIDが4624に一致する場合
トリガー名はEventlog(Logon)(Success)としています。
※ログオン タイプ: 10は、ユーザーがリモートデスクトップでログオンした場合を示します。
ログオンを監視するトリガーを作成 | ||
対象ホストのトリガーを選択します。 | ![]() |
|
トリガーの作成を選択します。 | ![]() |
|
新規トリガー作成画面が表示されます。 トリガー名を設定します。 条件式の追加を選択します。 |
![]() |
|
トリガー条件式の設定画面が表示されます。 作成したイベントログのアイテムを選択します。 |
![]() |
|
![]() |
||
関数には文字列関数のfind()を選択します。 | ![]() |
|
最新の1カウントを指定します。 ※合致条件likeは部分一致を意味します。 |
![]() |
|
条件式を追加します。 | ![]() |
|
設定したトリガー条件式
|
||
条件式が追加されていることを確認します。 変更を選択して、2つ目の条件式を設定します。 |
![]() |
|
トリガー条件式の設定画面が表示されます。 ※結果1は合致した場合を意味します。 |
![]() |
|
![]() |
||
条件式をand条件で追加します。 | ![]() |
|
追加したトリガー条件式
|
||
今回は、正常性イベントの生成はなしを選択し、手動クローズを許可にチェックを入れています。 ※障害イベント生成モードの設定については、後ほど確認します。 |
![]() |
|
設定したトリガー条件式
|
||
トリガーが追加されたことが確認できます。 | ![]() |
対象となるイベントログを発生させて障害検知を確認
監視対象のWindowsホストでログオンのイベントログを発生させ、Zabbixで障害検知できるかを確認します。
障害検知を確認 | |
ログオンに関する障害が検知されていることを確認できます。 | ![]() |
![]() |
|
イベントログを確認します。 Zabbixに収集されたイベントログに基づき、検知されていることが確認できます。 |
![]() |
![]() |
※イベントログが発生したローカル時間ではなく、Zabbixに収集されたログのタイムスタンプが障害検知時間となります。
ログオンエラーのイベントログを監視するトリガーを作成
Windows Serverへのログオン時のエラーを検知するトリガーを作成します。
logeventidのトリガー関数を利用して、イベントIDが4625のログを収集した場合に障害として検知するように設定しています。
ログオンエラーのイベントログを監視するトリガーを作成 | ||
logeventidのトリガー関数を利用し、イベントIDが4625のログを収集した場合に検知するように条件式を設定します。 | ![]() |
|
設定したトリガー条件式
|
||
トリガーが作成されていることを確認できます。 | ![]() |
ログオンエラーの検知を確認
監視対象のWindowsホストでログオンエラーのイベントログを発生させ、Zabbixで障害検知できるかを確認します。
ログオンエラーの検知を確認 | |
イベントログが収集されていること、障害が検知できていることを確認できます。 | ![]() |
![]() |
正常性イベントについて
正常性イベントの生成は、障害が復旧したと判断する条件です。
ログ監視の場合は、復旧とみなすログの条件式を指定します。
条件式を指定した場合は、検知対象外のログを収集した際に、自動的に障害が復旧します。
今回はログオンを監視するため、復旧に該当するログが存在しないため、正常性イベントはなしを選択しています。
※ログアウトに関するログを収集して復旧させる方法もあります。
手動クローズについて
通常は、障害状態から復旧したと判断された場合、イベントは自動的にクローズされます。
クローズの条件式が複雑な場合などは、手動でクローズする設定を利用します。
今回のように、正常性イベントの生成をなしに設定した場合は、自動的にクローズされません。
そのため、手動クローズを許可する必要があります。
障害イベント生成モードについて
障害イベントの生成モードには単一と複数があります。
障害イベント生成モード | |
単一 | 最初の障害を検知した場合のみ、イベントを生成します。 連続して障害となるログを収集した場合は、最初の1件だけが障害イベントとして生成されます。 |
複数 | 障害となるログを収集するたびにイベントを生成します。 連続して障害となるログを収集した場合は、その都度障害イベントが生成されます。 |
障害イベント生成モードを複数に設定して連続して障害を検知できるかを確認
今回のように、連続して検知したい場合は、障害イベント生成モードを複数に設定しないと、連続した障害が発生した際に見過ごされる可能性があります。
また、手動で障害をクローズする場合は、クローズするまで次の障害が検知されません。
障害イベント生成モードを複数に設定し、連続した障害イベントが生成されることを確認します。
障害イベント生成モードを複数にして確認 | |
トリガーの障害イベント生成モードを複数に変更します。 | ![]() |
障害が復旧する前に、次の障害が検知されていることを確認できます。 | ![]() |
—広告—
最後に
今回は、Windows Serverへのログオンに関するイベントログを例として、Zabbixでイベントログを監視する手順を確認しました。
イベントログに関連するアイテムキーやトリガーも用意されており、簡単に設定できるようになっていることが確認できました。
引き続き、いろいろ試してみたいと思います。
ZabbixでLinuxのログを監視するための手順については、こちらで紹介しています。
自動登録アクションを利用したホストの自動登録手順については、こちらで紹介しています。
Zabbix エージェントのインストールや暗号化通信の有効化手順については、こちらで紹介しています。
Zabbixのアクションのメール送信でSendGridを使う方法は、こちらで紹介しています。
Azure Monitorを利用してWindows Serverのイベントログを監視する手順については、こちらで紹介しています。