Windows イベント ログは、クライアント オペレーティング システムの正常性と Windows マシンのワークロードの最も一般的なソースの一部です。 システムやアプリケーションなどの標準ログのイベントに加えて、監視が必要なアプリケーションによって作成されるカスタム ログも収集できます。 仮想マシンから Windows イベント ログを収集するには、データ収集規則 (DCR) と Windows イベント データ ソースを使用します。
DCR の作成の詳細については、「Azure Monitor を使用して VM クライアントからデータを収集する」を参照してください。 この記事では、Windows イベント データ ソースの種類の詳細について説明します。
注
DCR 定義を直接操作するか、ARM テンプレートなどの他の方法でデプロイするには、 Azure Monitor のデータ収集規則 (DCR) サンプルを参照してください。
Windows イベント データ ソースを構成する
「Azure Monitor を使用して仮想マシン クライアントからデータを収集する」のプロセスを使用して DCR を作成します。 DCR の [収集して配信] タブで、[データ ソースの種類] ドロップダウンから [Windows イベント ログ] を選択します。 一連のログと重大度レベルから選択して収集します。 各ログに対して選択された重大度レベルのログのみが収集されます。
ヒント
DCR で セキュリティ ログを選択すると、イベントは Log Analytics ワークスペースの イベント テーブルに送信され、システムやアプリケーションなどの他のログからのイベントが表示されます。 もう 1 つのオプションは、ワークスペースで Microsoft Sentinel を有効にし、 Microsoft Sentinel の AMA コネクタを介して Windows セキュリティ イベントを有効にすることです。 これにより、同じ Azure Monitor エージェント が使用され、同じイベントが収集されますが、Sentinel で使用される SecurityEvent テーブルに送信されます。
[カスタム] を選択して、XPath クエリを使用してイベントをフィルター処理します。 これにより、 XPath を使用して収集するイベントを指定することで、収集するイベントをより細かく制御できます。 XPath クエリの詳細と例については、 XPath クエリを使用したイベントのフィルター処理 に関するページを参照してください。
宛先を追加する
Windows イベント データは、 イベント テーブルに格納されている Log Analytics ワークスペースにのみ送信できます。 Azure Monitor ログの種類の宛先を追加し、Log Analytics ワークスペースを選択します。 複数のワークスペースを追加できますが、重複するデータが各ワークスペースに送信されるため、追加コストが発生します。
データ収集の確認
データが収集されていることを確認するには、 イベント テーブル内のレコードを確認します。 仮想マシンまたは Azure portal の Log Analytics ワークスペースから、[ ログ ] を選択し、[ テーブル ] ボタンをクリックします。 [仮想マシン] カテゴリで、[イベント] の横にある [実行] をクリックします。
XPath クエリを使用してイベントをフィルター処理する
Azure portal の基本的な構成では、ログと重大度に基づいてイベントをフィルター処理する機能が制限されています。 より細かいフィルター処理を指定するには、カスタム構成を使用し、必要なイベントのみをフィルター処理する XPath を指定します。
XPath エントリは、LogName!XPathQuery
の形式で記述されます。 たとえば、イベント ID が 1035 のイベントのみをアプリケーション イベント ログから返す必要があるとします。 これらのイベントを対象とする XPathQuery
は *[System[EventID=1035]]
になります。 アプリケーション イベント ログからイベントを取得する必要があるため、XPath は Application!*[System[EventID=1035]]
です
注
Azure Monitor エージェントは 、EvtSubscribe システム API を使用して Windows イベント ログをサブスクライブします。 Windows OS では、分析/デバッグ チャネルの種類の Windows イベント ログのサブスクライブが許可されていません。 そのため、分析チャネルとデバッグ チャネルから Log Analytics ワークスペースにデータを収集またはエクスポートすることはできません。
Windows イベント ビューアーから XPath クエリを抽出する
次のスクリーンショットに示すように、Windows のイベント ビューアーを使用して XPath クエリを抽出できます。
XPath クエリを [データ ソースの追加] 画面のフィールドに貼り付ける場合 (手順 5 で表示)、ログの種類のカテゴリの後に '!' を追加する必要があります。
ヒント
Get-WinEvent
パラメーターを指定した PowerShell コマンドレット FilterXPath
を使用し、最初にローカルで、つまり、自分のコンピューターで XPath クエリの有効性をテストできます。 詳細については、「Windows エージェントベースの接続」の手順に記載されているヒントを参照してください。 Get-WinEvent
PowerShell コマンドレットでは、最大 23 個の式がサポートされています。 Azure Monitor のデータ収集ルールでは、最大 20 個がサポートされます。 次のスクリプトは、一例を示しています。
$XPath = '*[System[EventID=1035]]'
Get-WinEvent -LogName 'Application' -FilterXPath $XPath
- 上記のコマンドレットでは、
-LogName
パラメーターの値は、感嘆符 (!) までの XPath クエリの最初の部分です。 XPath クエリの残りの部分は$XPath
パラメーターに入ります。 - スクリプトがイベントを返す場合、クエリは有効です。
- [No events were found that match the specified selection criteria.](指定した選択条件に一致するイベントは見つかりませんでした。) というメッセージが表示された場合は、クエリはおそらく有効ですが、一致するイベントがローカル コンピューターにありません。
- [The specified query is invalid](指定したクエリは無効です) というメッセージが表示された場合は、クエリ構文が無効です。
次の表に、イベントをフィルター処理する XPath クエリの例を示します。
説明 | XPath |
---|---|
イベント ID = 4648 のシステム イベントのみを収集する | System!*[System[EventID=4648]] |
イベント ID = 4648 で、プロセス名が consent.exe であるセキュリティ ログ イベントを収集する | Security!*[System[(EventID=4648)]] and *[EventData[Data[@Name='ProcessName']='C:\Windows\System32\consent.exe']] |
イベント ID = 6 (ドライバーの読み込み) を除くすべての重大、エラー、警告、および情報のイベントをシステム イベント ログから収集する | System!*[System[(Level=1 or Level=2 or Level=3) and (EventID != 6)]] |
イベント ID 4624 (成功したログオン) を除くすべての成功および失敗のセキュリティ イベントを収集する | Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]] |
注
Windows イベント ログでサポートされている XPath の制限事項の一覧については、「XPath 1.0 の制限事項」を参照してください。 たとえば、クエリ内で "position"、"Band"、"timediff" の関数を使用できますが、"starts-with" や "contains" などのその他の関数は現在サポートされていません。
次のステップ
- Azure Monitor エージェントの詳細を理解します。
- データ収集ルールの詳細を確認します。