翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クイックスタート: Windows Server 2012 および Windows Server 2008 を実行している Amazon EC2 インスタンスで、CloudWatch Logs へのログの送信を有効にする
ヒント
CloudWatch には、EC2 インスタンスとオンプレミスサーバーからログとメトリクスの両方を収集できる新しい統合エージェントが含まれています。新しい統合 CloudWatch エージェントを使用することをお勧めします。詳細については、「CloudWatch Logs の開始方法」を参照してください。
このセクションの残りの部分では、古い CloudWatch Logs エージェントの使用について説明します。
Windows Server 2012 および Windows Server 2008 を実行している Amazon EC2 インスタンスで、CloudWatch Logs へのログの送信を有効にする
Windows Server 2012 および Windows Server 2008 を実行しているインスタンスで、CloudWatch Logs へのログの送信を有効にするには、以下のステップを実行します。
サンプル設定ファイルをダウンロードする
サンプル JSON ファイル (AWS.EC2.Windows.CloudWatch.json
CloudWatch の JSON ファイルを設定する
CloudWatch に送信するログを決めるには、JSON 設定ファイルで選択して指定します。このファイルを作成し、項目を選択して指定するプロセスは、完了までに 30 分以上かかる場合があります。このタスクを 1 回完了したら、すべてのインスタンスで設定ファイルを再利用できます。
ステップ 1: CloudWatch Logs を有効化する
JSON ファイルの先頭で、IsEnabled
の「false」を「true」に変更します。
"IsEnabled": true,
ステップ 2: CloudWatch 設定を構成する
認証情報、リージョン、ロググループ名、およびログストリーム名前空間を指定します。これにより、インスタンスがログデータを CloudWatch Logs に送信できます。同じログデータを複数の異なる宛先に送信する場合は、一意の ID (たとえば「CloudWatchLogs2」および「CloudWatchLogs3」) および各 ID に異なるリージョンを付加してセクションを追加できます。
ログデータを CloudWatch Logs に送信するように設定するには
-
JSON ファイルで、
CloudWatchLogs
セクションを見つけます。{ "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" } },
-
[
AccessKey
] および [SecretKey
] フィールドは空白のままにしておきます。IAM ロールを使用して認証情報を設定します。 -
Region
には、ログデータを送信するリージョンを入力します (たとえば、us-east-2
)。 -
LogGroup
には、ロググループの名前を入力します。この名前は、CloudWatch コンソールの [Log Groups (ロググループ)] 画面に表示されます。 -
LogStream
には、送信先のログストリームを入力します。この名前は、CloudWatch コンソールの [Log Groups (ロググループ)] > [Streams (ストリーム)] 画面に表示されます。デフォルトの
{instance_id}
を使用する場合、ログストリーム名はこのインスタンスのインスタンス ID です。存在しないログストリーム名を特定すると、CloudWatch Logs によってログストリームが自動的に作成されます。リテラル文字列、事前定義された変数
{instance_id}
、{hostname}
、{ip_address}
、またはこれらの組み合わせを使用してログストリーム名を定義できます。
ステップ 3: 送信するデータを設定する
イベントログデータ、Event Tracing for Windows (ETW) データ、および他のログデータを CloudWatch Logs に送信できます。
Windows アプリケーションイベントログデータを CloudWatch Logs に送信するには
-
JSON ファイルで、
ApplicationEventLog
セクションを見つけます。{ "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
-
Levels
には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。-
1
- エラーメッセージだけをアップロードします。 -
2
- 警告メッセージだけをアップロードします。 -
4
- 情報メッセージだけをアップロードします。
値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値
3
はエラーメッセージ (1
) と警告メッセージ (2
) をアップロードします。値7
は、エラーメッセージ (1
)、警告メッセージ (2
)、情報メッセージ (4
) をアップロードします。 -
セキュリティログデータを CloudWatch Logs に送信するには
-
JSON ファイルで、
SecurityEventLog
セクションを見つけます。{ "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
-
Levels
には、7
と入力してすべてのメッセージをアップロードします。
システムイベントログデータを CloudWatch Logs に送信するには
-
JSON ファイルで、
SystemEventLog
セクションを見つけます。{ "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
-
Levels
には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。-
1
- エラーメッセージだけをアップロードします。 -
2
- 警告メッセージだけをアップロードします。 -
4
- 情報メッセージだけをアップロードします。
値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値
3
はエラーメッセージ (1
) と警告メッセージ (2
) をアップロードします。値7
は、エラーメッセージ (1
)、警告メッセージ (2
)、情報メッセージ (4
) をアップロードします。 -
他の種類のイベントログデータを CloudWatch Logs に送信するには
-
JSON ファイルに、新しいセクションを追加します。各セクションには固有の
Id
が必要です。{ "Id": "
Id-name
", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name
", "Levels": "7" } }, -
Id
には、アップロードするログの名前を入力します (たとえば、WindowsBackup
)。 -
LogName
には、アップロードするログの名前を入力します。ログの名前を次のように確認できます。-
イベントビューワーを開きます。
-
ナビゲーションペインで、[Applications and Services Logs] を選択します。
-
ログに移動し、[Actions]、[Properties] を選択します。
-
-
Levels
には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。-
1
- エラーメッセージだけをアップロードします。 -
2
- 警告メッセージだけをアップロードします。 -
4
- 情報メッセージだけをアップロードします。
値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値
3
はエラーメッセージ (1
) と警告メッセージ (2
) をアップロードします。値7
は、エラーメッセージ (1
)、警告メッセージ (2
)、情報メッセージ (4
) をアップロードします。 -
イベントトレース (Windows) データを CloudWatch Logs に送信するには
ETW (Event Tracing for Windows) には、アプリケーションがログを書き込むことができる効率的できめ細かいログ記録メカニズムが用意されています。各 ETW は、ログ記録セッションを開始および停止できるセッションマネージャにより制御されます。各セッションには、プロバイダーと 1 つ以上のコンシューマーが存在します。
-
JSON ファイルで、
ETW
セクションを見つけます。{ "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
-
LogName
には、アップロードするログの名前を入力します。 -
Levels
には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。-
1
- エラーメッセージだけをアップロードします。 -
2
- 警告メッセージだけをアップロードします。 -
4
- 情報メッセージだけをアップロードします。
値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値
3
はエラーメッセージ (1
) と警告メッセージ (2
) をアップロードします。値7
は、エラーメッセージ (1
)、警告メッセージ (2
)、情報メッセージ (4
) をアップロードします。 -
カスタムログ (テキストベースのログファイル) を CloudWatch Logs に送信するには
-
JSON ファイルで、
CustomLogs
セクションを見つけます。{ "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" } },
-
LogDirectoryPath
には、ログがインスタンスに格納されるパスを入力します。 -
TimestampFormat
には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「カスタムの日付と時刻の書式指定文字列」を参照してください。 重要
ソースログファイルには、各ログ行の先頭にタイムスタンプがあり、タイムスタンプの後にスペースがある必要があります。
-
Encoding
には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の詳細については、MSDN の「Encoding クラス」を参照してください。 注記
表示名ではなく、エンコード名を使用します。
-
(オプション)
Filter
には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN の「FileSystemWatcherFilter プロパティ」を参照してください。 -
(オプション)
CultureName
には、タイムスタンプが記録されているロケールを入力します。CultureName
が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。サポートされる値の詳細については、MSDN の「Product Behavior」トピックの表で、 Language tag
列を参照してください。注記
div
、div-MV
、hu
、およびhu-HU
値は、サポートされていません。 -
(オプション)
TimeZoneKind
には、Local
またはUTC
を入力します。これを設定すると、ログのタイムスタンプにタイムゾーン情報が含まれていない場合にタイムゾーン情報を提供できます。このパラメータが空になっていて、タイムスタンプにタイムゾーン情報が含まれていない場合、CloudWatch Logs ではデフォルトでローカルタイムゾーンが使用されます。タイムスタンプに既にタイムゾーン情報が含まれている場合、このパラメータは無視されます。 -
(オプション)
LineCount
には、ログファイルを識別するためのヘッダーの行数を入力します。たとえば、IIS のログファイルのヘッダーはほぼ同じです。「5
」と入力すると、ログファイルのヘッダーの最初の 3 行が読み取られ、ログファイルを識別できます。IIS ログファイルで、3 番目の行は日時のスタンプですが、タイムスタンプは常にログファイル間で異なるという保証はありません。そのため、ログファイルの一意のフィンガープリントを作成するには、実際のログデータの少なくとも 1 行を含めることをお勧めします。
IIS ログデータを CloudWatch Logs に送信するには
-
JSON ファイルで、
IISLog
セクションを見つけます。{ "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" } },
-
LogDirectoryPath
には、個々のサイト (C:\inetpub\logs\LogFiles\W3SVC
など) の IIS ログが格納されているフォルダを入力します。n
注記
W3C ログ形式のみサポートされます。IIS、NCSA、カスタム形式はサポートされません。
-
TimestampFormat
には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「カスタムの日付と時刻の書式指定文字列」を参照してください。 -
Encoding
には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の詳細については、MSDN の「Encoding クラス」を参照してください。 注記
表示名ではなく、エンコード名を使用します。
-
(オプション)
Filter
には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN の「FileSystemWatcherFilter プロパティ」を参照してください。 -
(オプション)
CultureName
には、タイムスタンプが記録されているロケールを入力します。CultureName
が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。サポートされる値の詳細については、MSDN の「Product Behavior」トピックの表で、 Language tag
列を参照してください。注記
div
、div-MV
、hu
、およびhu-HU
値は、サポートされていません。 -
(オプション)
TimeZoneKind
には、Local
またはUTC
を入力します。これを設定すると、ログのタイムスタンプにタイムゾーン情報が含まれていない場合にタイムゾーン情報を提供できます。このパラメータが空になっていて、タイムスタンプにタイムゾーン情報が含まれていない場合、CloudWatch Logs ではデフォルトでローカルタイムゾーンが使用されます。タイムスタンプに既にタイムゾーン情報が含まれている場合、このパラメータは無視されます。 -
(オプション)
LineCount
には、ログファイルを識別するためのヘッダーの行数を入力します。たとえば、IIS のログファイルのヘッダーはほぼ同じです。「5
」と入力すると、ログファイルのヘッダーの最初の 5 行が読み取られ、ログファイルを識別できます。IIS ログファイルで、3 番目の行は日時のスタンプですが、タイムスタンプは常にログファイル間で異なるという保証はありません。そのため、ログファイルの一意のフィンガープリントを作成するには、実際のログデータの少なくとも 1 行を含めることをお勧めします。
ステップ 4: フロー制御を設定する
各データ型は、Flows
セクションに対応する送信先を持っている必要があります。たとえば、カスタムログ、ETW ログ、およびシステムログを CloudWatch Logs に送信するには、(CustomLogs,ETW,SystemEventLog),CloudWatchLogs
を Flows
セクションに追加します。
警告
無効なブロックを追加すると、フローがブロックされます。たとえば、ディスクメトリクスのステップを追加したが、インスタンスにディスクがない場合は、フローのすべてのステップがブロックされます。
同じログファイルを複数の宛先に送信できます。たとえば、アプリケーションログを CloudWatchLogs
セクションで定義付けた 2 つの送信先に送信するには、ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)
を Flows
セクションに追加します。
フロー制御を設定するには
-
AWS.EC2.Windows.CloudWatch.json
ファイルで、「Flows
」セクションを見つけます。"Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
-
Flows
には、アップロードされる各データ型 (たとえば、ApplicationEventLog
) とその送信先 (たとえば、CloudWatchLogs
) を追加します。
JSON ファイルの編集はこれで完了です。これは、後のステップで使用します。
エージェントを起動する
Windows Server 2012 または Windows Server 2008 を実行している Amazon EC2 インスタンスが、CloudWatch Logs にログを送信できるようにするには、EC2 Config サービス (EC2Config.exe)
) を使用します。インスタンスには EC2Config 4.0 以降が必要であり、この手順を使用できます。
EC2 Config 4.x を使用して CloudWatch を設定するには
-
この手順で前に編集した
AWS.EC2.Windows.CloudWatch.json
ファイルのエンコーディングを確認します。BOM のない UTF-8 エンコーディングのみがサポートされています。次に、Windows Server 2008 - 2012 R2 インスタンスで、C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\
フォルダにファイルを保存します。 -
Windows サービスのコントロールパネルを使用するか、次の PowerShell コマンドを送信して、SSM エージェント (
AmazonSSMAgent.exe
) を開始または再起動します。PS C:\>
Restart-Service AmazonSSMAgent
SSM エージェントは、再起動後に設定ファイルを検出し、CloudWatch 統合のためにインスタンスを設定します。ローカル設定ファイルのパラメータと設定を変更する場合は、変更を反映するために SSM エージェントを再起動する必要があります。インスタンスで CloudWatch 統合を無効にする場合は、IsEnabled
を false
に変更して、設定ファイルで変更を保存します。