- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Supported OS
Win32 Event Log チェックは、Windows のイベントログを監視して Datadog に転送します。
このチェックを有効にして、以下のことができます。
詳細については、Windows のイベントログのドキュメントを参照してください。
Windows Event Log チェックは Datadog Agent パッケージに含まれています。追加のインストールは必要ありません。
Windows Event Log の収集方法は、以下のいずれか、または両方があります。
どちらの方法も Agent の構成ディレクトリのルートにある conf.d/
フォルダーの win32_event_log.d/conf.yaml
で構成されます。使用可能なすべての構成オプションの詳細については、サンプル win32_event_log.d/conf.yaml を参照してください。
まず、監視したい Windows Event Log チャンネルを特定します。
収集方法によって、チャンネル名は以下の構成パラメーターに使用することができます。
channel_path
path
log_file
チャンネルの一覧を表示するには、PowerShell で以下のコマンドを実行します。
Get-WinEvent -ListLog *
最もアクティブなチャンネルを表示するには、PowerShell で以下のコマンドを実行します。
Get-WinEvent -ListLog * | sort RecordCount -Descending
このコマンドは、チャンネルを LogMode MaximumSizeInBytes RecordCount LogName
の形式で表示します。
応答例
LogMode MaximumSizeInBytes RecordCount LogName
Circular 134217728 249896 Security
Circular 5242880 2932 <CHANNEL_2>
LogName
列の値は、チャンネルの名前です。上の例では、チャンネル名は Security
です。
Windows Event Viewer で Event Log のチャンネル名を見つけるには、Event Log Properties ウィンドウを開き、Full Name
フィールドを参照します。次の例では、チャンネル名は Microsoft-Windows-Windows Defender/Operational
です。
Windows Event Log を Datadog イベントとして収集するには、win32_event_log.d/conf.yaml
コンフィギュレーションファイルの instances:
セクションでチャンネルを設定します。
Datadog Agent は、Windows Event Log を Datadog イベントとして収集するために、2 つの方法で構成することができます。それぞれの方法には、チャンネルとフィルターの構成構文があります。詳しくは、イベントのフィルタリングを参照してください。
最新の方法は、Event Log API を使用します。Datadog では、以下のレガシーな方法よりもパフォーマンスが良いため、Event Log API を使用することを推奨しています。
Event Log API の収集方法を使用するには、各インスタンスで legacy_mode: false
を設定します。legacy_mode: false
を設定した場合、path
は \win32_event_log.d\conf.yaml
ファイルで設定する必要があります。
この例では、Security
と <CHANNEL_2>
チャンネルのエントリーを示します。
init_config:
instances:
- # Event Log API
path: Security
legacy_mode: false
filters: {}
- path: "<CHANNEL_2>"
legacy_mode: false
filters: {}
レガシーな方法は WMI を使用し、インスタンスのデフォルトモードとなります。
legacy_mode
が設定されていないか true
に設定されている場合、source_name
、event_id
、message_filters
、log_file
、type
のフィルターのうち少なくとも 1 つが設定されている必要があります。
この例では、Security
と <CHANNEL_2>
チャンネルのエントリーを示します。
init_config:
instances:
- # WMI (default)
legacy_mode: true
log_file:
- Security
- legacy_mode: true
log_file:
- "<CHANNEL_2>"
詳しくは、イベントログファイルを Win32_NTLogEvent
WMI クラスに追加するを参照してください。
Agent バージョン 6.0 以降で利用可能
Datadog Agent では、ログ収集はデフォルトで無効になっています。Windows Event Log を Datadog ログとして収集するには、datadog.yaml
ファイルで logs_enabled: true
を設定してログ収集を有効化します。
Windows Event Log を Datadog ログとして収集するには、win32_event_log.d/conf.yaml
コンフィギュレーションファイルの logs:
セクションの下にチャンネルを設定します。この例では、Security
と <CHANNEL_2>
チャンネルのエントリーを示しています。
logs:
- type: windows_event
channel_path: Security
source: windows.events
service: Windows
- type: windows_event
channel_path: "<CHANNEL_2>"
source: windows.events
service: myservice
対応する source
パラメーターに windows.events
を設定すると、インテグレーション自動処理パイプラインの恩恵を受けることができます。
<CHANNEL_2>
パラメーターに、イベントを収集したい Windows チャンネル名を入力します。
最後に、Agent を再起動します。
注: Security ログチャンネルの場合は、Datadog Agent ユーザーを Event Log Readers
ユーザーグループに追加してください。
イベントログに 1 つ以上のフィルターを構成します。フィルターを使用すると、Datadog に取り込むログイベントを選択できます。
Windows イベントビューア GUI を使用して、このインテグレーションを使用してキャプチャできるすべてのイベントログをリストします。
正確な値を決定するには、次の PowerShell コマンドを使用してフィルターを設定します。
Get-WmiObject -Class Win32_NTLogEvent
たとえば、Security
ログファイルに記録された最新のイベントを表示するには、次のコマンドを使用します。
Get-WmiObject -Class Win32_NTLogEvent -Filter "LogFile='Security'" | select -First 1
コマンドの出力にリストされる値を win32_event_log.d/conf.yaml
で設定して、同種のイベントをキャプチャできます。
Get-EventLog
PowerShell コマンドまたは Windows イベントビューア GUI から提供される情報が、Get-WmiObject
から提供される情報とは多少異なる場合があります。Get-WmiObject
を使用してフィルターの値をダブルチェックしてください。Datadog Agent は、Windows Event Log を Datadog イベントとして収集するために、2 つの方法で構成することができます。それぞれの方法には、フィルターの構成構文があります。各モードで使用可能なフィルターオプションについては、サンプル win32_event_log.d/conf.yaml を参照してください。
Datadog では、フィルターに最新の方法を使用することを推奨しています。
最新の方法には、以下のフィルターが含まれています。
path
: Application
、System
、Setup
、Security
type
: Critical
、Error
、Warning
、Information
、Success Audit
、Failure Audit
source
: 使用可能な任意のソース名id
: event_id: Windows EventLog IDこのフィルター例では、最新の方法を使用しています。
instances:
- legacy_mode: false
path: System
filters:
source:
- Microsoft-Windows-Ntfs
- Service Control Manager
type:
- Error
- Warning
- Information
- Success Audit
- Failure Audit
id:
- 7036
query
オプションを使用して、XPATH または構造化 XML クエリでイベントをフィルターすることができます。Datadog は、Event Viewer に表示されるイベントが Datadog Agent に収集させたいものと一致するまで、Event Viewer のフィルターエディタでクエリを作成することを推奨します。filters
オプションは query
オプションを使用すると無視されます。
init_config:
instances:
# Critical、Warning、Error イベントを収集します
- path: Application
legacy_mode: false
query: '*[System[(Level=1 or Level=2 or Level=3)]]'
- path: Application
legacy_mode: false
query: |
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(Level=1 or Level=2 or Level=3)]]</Select>
</Query>
</QueryList>
レガシーな方法には、以下のフィルターが含まれています。
log_file
: Application
、System
、Setup
、Security
type
: Critical
、Error
、Warning
、Information
、Audit Success
、Audit Failure
source_name
: 使用可能な任意のソース名event_id
: Windows EventLog IDレガシーメソッドは query
オプションをサポートしていません。最新のメソッド (legacy_mode: false
を設定) と Logs Tailer だけが query
オプションをサポートしています。
このフィルター例では、レガシーな方法を使用しています。
instances:
# Legacy
# The following captures errors and warnings from SQL Server which
# puts all events under the MSSQLSERVER source and tag them with #sqlserver.
- tags:
- sqlserver
type:
- Warning
- Error
log_file:
- Application
source_name:
- MSSQLSERVER
# This instance captures all system errors and tags them with #system.
- tags:
- system
type:
- Error
log_file:
- System
イベントログのフィルターには、 log_processing_rules
正規表現オプションと同様に query
を使用することができます。Datadog では、Windows Event Log の生成速度が速く、CPU とメモリの使用量が log_processing_rules
フィルターよりも少ない query
オプションの使用を推奨しています。log_processing_rules
フィルターを使用すると、Agent は各イベントを処理し、正規表現で除外されてもフォーマットするように強制されます。query
オプションを使用すると、これらのイベントは Agent に報告されません。
query
オプションを使用すると、XPATH または構造化 XML クエリでイベントをフィルターすることができます。query
オプションは log_processing_rules
によって処理されるイベントの数を減らし、パフォーマンスを向上させることができます。XPath や XML クエリの構文には式の制限があります。フィルターを追加するには、log_processing_rules
フィルターを使用してください。
Datadog は、Event Viewer に表示されるイベントが Agent に収集させたいものと一致するまで、Event Viewer のフィルターエディタでクエリを作成してテストすることを推奨します。
次に、Agent 構成にクエリをコピーアンドペーストします。
# Critical、Warning、Error イベントを収集します
- type: windows_event
channel_path: Application
source: windows.events
service: Windows
query: '*[System[(Level=1 or Level=2 or Level=3)]]'
- type: windows_event
channel_path: Application
source: windows.events
service: Windows
query: |
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(Level=1 or Level=2 or Level=3)]]</Select>
</Query>
</QueryList>
query
オプションに加えて、ログ処理ルールでイベントをさらにフィルターすることができます。
フィルターの例としては、以下のようなものがあります。
- type: windows_event
channel_path: Security
source: windows.events
service: Windows
log_processing_rules:
- type: include_at_match
name: relevant_security_events
pattern: '"EventID":(?:{"value":)?"(1102|4624|4625|4634|4648|4728|4732|4735|4737|4740|4755|4756)"'
- type: windows_event
channel_path: Security
source: windows.events
service: Windows
log_processing_rules:
- type: exclude_at_match
name: relevant_security_events
pattern: '"EventID":(?:{"value":)?"(1102|4624)"'
- type: windows_event
channel_path: System
source: windows.events
service: Windows
log_processing_rules:
- type: include_at_match
name: system_errors_and_warnings
pattern: '"level":"((?i)warning|error)"'
- type: windows_event
channel_path: Application
source: windows.events
service: Windows
log_processing_rules:
- type: include_at_match
name: application_errors_and_warnings
pattern: '"level":"((?i)warning|error)"'
以下は、特定の EventID から Windows イベントログを収集するための正規表現パターンの例です。
logs:
- type: windows_event
channel_path: Security
source: windows.event
service: Windows
log_processing_rules:
- type: include_at_match
name: include_x01
pattern: '"EventID":(?:{"value":)?"(101|201|301)"'
注: このパターンはログの形式によって異なる場合があります。Agent stream-logs
サブコマンドを使用すると、この形式を表示することができます。
ログをフィルタリングする例については、高度なログ収集のドキュメントを参照してください。
Agent バージョン 7.41 未満に適用されます
Legacy Provider EventID は、Windows Event Schema で見られるように、ログの形式を変更する Qualifiers
属性を持っています。これらのイベントは、Windows イベントビューアで見ることができる、次のような XML 形式を持っています。
<EventID Qualifiers="16384">3</EventID>
これらの EventID にマッチするように、以下の正規表現を使用する必要があります。
logs:
- type: windows_event
channel_path: Security
source: windows.event
service: Windows
log_processing_rules:
- type: include_at_match
name: include_legacy_x01
pattern: '"EventID":{"value":"(101|201|301)"'
Agent バージョン 7.41 以降では、EventID フィールドが正規化されます。このため、レガシーパターンから部分文字列 (?:{"value":)?
が不要になりました。バージョン 7.41 以降では、以下のような短い正規表現パターンを使用することができます。
logs:
- type: windows_event
channel_path: Security
source: windows.event
service: Windows
log_processing_rules:
- type: include_at_match
name: include_x01
pattern: '"EventID":"(101|201|301)"'
フィルターの設定が終わったら、Agent Manager を使用して Agent の再起動を行います (またはサービスを再起動します)。
Datadog Agent Manager の情報ページを確認するか、Agent の status
サブコマンドを実行し、Checks セクションで win32_event_log
を探します。
以下のようなセクションが表示されるはずです。
Checks
======
[...]
win32_event_log
---------------
- instance #0 [OK]
- Collected 0 metrics, 2 events & 1 service check
Datadog Agent Manager の情報ページを確認するか、Agent の status
サブコマンドを実行し、Logs Agent セクションで win32_event_log
を探します。
以下のようなセクションが表示されるはずです。
Logs Agent
==========
[...]
win32_event_log
---------------
- Type: windows_event
ChannelPath: System
Status: OK
Win32 Event log チェックには、メトリクスは含まれません。
すべての Windows イベントが Datadog に転送されます。
Win32 Event log チェックには、サービスのチェック機能は含まれません。
ヘルプが必要ですか?Datadog サポートに Agent Flare でお問い合わせください。
ログ処理ルールを使用してログをフィルターする場合、生のログが構成した正規表現 (regex) パターンに一致することを確認してください。以下の構成では、ログレベルは warning
または error
のいずれかでなければなりません。それ以外の値は除外されます。
- type: windows_event
channel_path: System
source: windows.events
service: Windows
log_processing_rules:
- type: include_at_match
name: system_errors_and_warnings
pattern: '"level":"((?i)warning|error)"'
ログ処理ルールをトラブルシューティングするには
log_processing_rules
スタンザを削除するかコメントアウトします。お役に立つドキュメント、リンクや記事: