Azure Monitor エージェントを使用して Windows イベントを収集する
Windows イベントは、データ収集ルール (DCR) で使用されるデータ ソースの 1 つです。 DCR の作成の詳細については、「Azure Monitor エージェントを使用してデータを収集する」を参照してください。 この記事では、Windows イベントのデータ ソースの種類について詳しく説明します。
Windows イベント ログは、Azure Monitor Agent を使用する Windows マシンの最も一般的なデータ ソースの 1 つであり、Windows オペレーティング システムとその上で実行されているアプリケーションの正常性と情報の一般的なソースとなっています。 システムやアプリケーションなどの標準ログのイベントに加えて、監視が必要なアプリケーションによって作成されるカスタム ログも収集できます。
前提条件
- 共同作成者の権限以上がある Log Analytics ワークスペース。 Windows イベントは、[イベント] テーブルに送信されます。
- 「Azure Monitor エージェントを使用してデータを収集する」で説明されている新規または既存の DCR。
Windows イベント データ ソースを構成する
DCR の [収集と配信] ステップで、[データ ソースの種類] ドロップダウンから [Windows イベント ログ] を選択します。 一連のログと重大度レベルから選択して収集します。
[カスタム] を選択して、XPath クエリを使用してイベントをフィルター処理します。 次に、[XPath] を指定して、特定の値を収集できます。
セキュリティ イベント
Azure Monitor エージェントでセキュリティ イベントを収集する方法として、以下の 2 つを使用できます。
- システム ログとアプリケーション ログと同様に、DCR のセキュリティ イベント ログを選択します。 これらのイベントは、他のイベントと共に Log Analytics ワークスペースの イベント テーブルに送信されます。
- Azure Monitor エージェントを使用してイベントを収集するワークスペースで Microsoft Sentinel を有効にします。 セキュリティ イベントは、SecurityEvent に送信されます。
XPath クエリを使用してイベントをフィルター処理する
Log Analytics ワークスペースに収集されるすべてのデータに対して課金されます。 そのため、必要なイベント データのみを収集する必要があります。 Azure portal の基本的な構成では、イベントをフィルター処理する機能が制限されています。 さらにフィルターを指定するには、カスタム構成を使用して、不要なイベントを除外する XPath を指定します。
XPath エントリは、LogName!XPathQuery
の形式で記述されます。 たとえば、イベント ID が 1035 のイベントのみをアプリケーション イベント ログから返す必要があるとします。 これらのイベントを対象とする XPathQuery
は *[System[EventID=1035]]
になります。 アプリケーション イベント ログからイベントを取得する必要があるため、XPath は Application!*[System[EventID=1035]]
です
ヒント
Azure Monitor のコストを削減するための戦略については、「コストの最適化と Azure Monitor」を参照してください。
Windows イベント ビューアーから XPath クエリを抽出する
Windows では、次のスクリーンショットで示すように、イベント ビューアーを使用して XPath クエリを抽出できます。
XPath クエリを [データ ソースの追加] 画面のフィールドに貼り付ける場合 (手順 5 で表示)、ログの種類のカテゴリの後に '!' を追加する必要があります。
ヒント
FilterXPath
パラメーターを指定した PowerShell コマンドレット Get-WinEvent
を使用し、最初にローカルで、つまり、自分のコンピューターで 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" などのその他の関数は現在サポートされていません。
Destinations
Windows イベント データは次の場所に送信できます。
宛先 | テーブル / 名前空間 |
---|---|
Log Analytics ワークスペース | イベント |
次のステップ
- Azure Monitor エージェントを使用してテキスト ログを収集します。
- Azure Monitor エージェントの詳細を理解します。
- データ収集ルールの詳細を確認します。