VM Insightsを利用してWindowsのイベントログをLog Analyticsに収集、検索
Windows ServerのイベントログをLog Analyticsワークスペース(Azure Monitorログ)で収集するための設定手順です。
収集したイベントログをLog AnalyticsでKQLクエリ検索する手順もまとめています。
-
- 実施した手順
- 分析情報(VM insights)有効化
- データ収集ルールを作成してイベントログを収集
- データ収集ルールにリソースを追加
- Log Analyticsで収集したイベントログをKQL検索
- parse_xml()を使ってイベントログの内容を取得
- 実施した手順
※仮想マシン(Azure VM)を利用しています。
※Windows Server 2022 Datacenter Azure Editionを利用しています。
※Log Analyticsワークスペースはlog-test-01、仮想マシン(Azure VM)はtest-vm-01、02のリソースを利用しています。
分析情報(VM insights)のデータ収集ルールを使ってイベントログをLog Analyticsワークスペースに収集
イベントログの収集設定はMS Learnに記載があります。
こちらの内容を参照しながら設定を進めます。
Azure Monitor を使用して Azure 仮想マシンを監視する
分析情報(VM insights)を有効化
分析情報(VM insights)を有効化します。
ログ収集の設定自体はデータ収集ルールで行います。
どのデータ収集ルールを利用するかは、分析情報(VM insights)で設定します。
そのためログ収集を行う為には、分析情報(VM insights)を有効化しておく必要があります。
分析情報(VM insights)の有効化手順についてはこちらで紹介しています。
Windowsのイベントログを収集するデータ収集ルールを作成
イベントログを収集する為にはデータ収集ルールを追加します。
※今回はエンドポイントは有効化していません。
※データ収集ルール対象となる仮想マシン(Azure VM)には拡張機能がインストールされる為起動状態である必要があります。
データ収集ルールで仮想マシンを追加
同じデータ収集ルールを複数の仮想マシン(Azure VM)に適用出来ます。
イベントログの収集ルールを設定した場合はAzureMonitorWindowsAgentの拡張機能のみインストールされます。
データ収集ルールにリソースを追加 | |
左側のメニューでリソースを選択します。 追加を選択します。 追加対象の仮想マシン(Azure VM)を選択します。 |
|
追加したリソースには拡張機能がインストールされます。 | |
システム割り当て済みのマネージドIDも有効化されます。 |
収集対象のログを制限
収集対象のログをXPathクエリを利用して制限する事が出来ます。
Windows イベント ビューアーから XPath クエリを抽出する
基本で設定したログ収集の設定はXPathとして設定されています。
収集対象のログを制限 | |
基本でイベントログ収集設定がXPathとして表示されています。 | |
イベントIDを4624と4625を収集する場合の設定です。 指定したイベントログの条件はor条件として動作します。 既存の設定を削除後に収集対象のXPathのクエリを追加しています。 |
※XPathのクエリにはand条件やor条件も利用出来ます。
—広告—
イベントログをLog Analyticsワークスペースで確認
ログイン(RDP接続時)時のイベントログ
RDP(リモートデスクトップ)接続時のログを例に確認しています。
こちらに纏めていますので併せて見て頂けると有難いです。
イベントログをKQLクエリを使って検索
Log AnalyticsワークスペースのEventのテーブルにイベントログは保管されます。
イベントID4624のイベントログを検索します。 EventDataにXML形式でイベントログのデータが含まれている事が確認出来ます。 |
|
|
parse_xml使ってEventDataをJSON形式に変換
EventDataはXML形式で1つの項目にデータが保管されています。
parse_xml()を利用すると値をJSON形式に変換して要素単位にする事が出来ます。
EventDataをparse_xml()で変換したデータをEventData_xmlとして定義します。
parse_xml()を使う | |
|
|
EventData_xmlを確認すると要素ごとに分解されている事が確認出来ます。 |
イベントログの値を抽出
parse_xml()を利用してJSON形式に変換した値からデータを取得します。
イベントログ(SecurityのイベントID4624)のワークステーション名、ソースネットワークアドレス、ログオンタイプの値を取得してみます。
EventData_xml>DataItem>EventData>Dataの階層に値が含まれています。
今回はDataとして新しい列を定義したしたのちに各項目を取得します。
※例えば検索条件にwhere EventLog contains “Security"を追加するとセキュリティのイベントログのみに絞り込み出来ます。
※2つ目のKQLでは検索結果をログオンタイプ10のみに絞り込みしています。
※新しく追加した列をDataとしちゃってますが大目に見てください。
Azure Monitorでイベントログを監視
Log Analyticsワークスペースに収集したイベントログはAzure Monitorの監視設定に利用出来ます。
手順についてはこちらに纏めています。
—広告—
最後に
今回はWindows ServerのイベントログをLog Analyticsワークスペース(Azure Monitorログ)へ取り込んで検索する手順についてまとめてみました。
イベントログのデータ本文の項目取得には少し手間がかかりますが、各サーバーから取り込んだデータKQLで一括して検索する事が出来るので非常に便利かと思います。
引き続き色々試してみたいと思います。
RDP(リモートデスクトップ)接続元IPを例にイベントログについてはこちらにまとめています。
併せて見て頂けると有難いです。
仮想マシン(Azure VM)の接続状況についてはこちらにまとめています。
ログを利用する方法、メトリックを利用する方法について確認しています。