クイックスタート: Windows Server 2012 および Windows Server 2008 を実行している Amazon EC2 インスタンスでログを CloudWatch Logs に送信できるようにする - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クイックスタート: 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 ログに送信できるようにする

Windows Server 2012 および Windows Server 2008 を実行しているインスタンスでログを CloudWatch ログに送信できるようにするには、次の手順に従います。

サンプル設定ファイルをダウンロードする

サンプル JSON ファイル (AWS.EC2.Windows.CloudWatch.json) をコンピュータにダウンロードします。このファイルは以降のステップで編集します。

の JSON ファイルを設定する CloudWatch

に送信するログを決めるには、JSON 設定ファイルで選択して CloudWatch 指定します。このファイルを作成し、項目を選択して指定するプロセスは、完了までに 30 分以上かかる場合があります。このタスクを 1 回完了したら、すべてのインスタンスで設定ファイルを再利用できます。

ステップ 1: CloudWatch ログを有効にする

JSON ファイルの先頭で、IsEnabled の「false」を「true」に変更します。

"IsEnabled": true,

ステップ 2: の設定を構成する CloudWatch

認証情報、リージョン、ロググループ名、およびログストリーム名前空間を指定します。これにより、インスタンスはログデータを CloudWatch Logs に送信できます。同じログデータを異なる場所に送信するには、一意の IDsCloudWatchLogs「2」と CloudWatchLogs「3」など) と ID ごとに異なるリージョンを持つセクションを追加できます。

CloudWatch Logs にログデータを送信するように設定するには
  1. 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}" } },
  2. [AccessKey] および [SecretKey] フィールドは空白のままにしておきます。IAM ロールを使用して認証情報を設定します。

  3. Region には、ログデータを送信するリージョンを入力します (たとえば、us-east-2)。

  4. LogGroup には、ロググループの名前を入力します。この名前は、 コンソールの [Log Groups CloudWatch] 画面に表示されます。

  5. LogStream には、送信先のログストリームを入力します。この名前は、 CloudWatch コンソールのロググループ > ストリーム画面に表示されます。

    デフォルトの {instance_id} を使用する場合、ログストリーム名はこのインスタンスのインスタンス ID です。

    まだ存在しないログストリーム名を指定すると、 CloudWatch Logs によって自動的に作成されます。リテラル文字列、事前定義された変数 {instance_id}{hostname}{ip_address}、またはこれらの組み合わせを使用してログストリーム名を定義できます。

ステップ 3: 送信するデータを設定する

イベントログデータ、Event Tracing for Windows (ETW) データ、およびその他のログデータを CloudWatch Logs に送信できます。

Windows アプリケーションイベントログデータを CloudWatch Logs に送信するには
  1. JSON ファイルで、ApplicationEventLog セクションを見つけます。

    { "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" } },
  2. Levels には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。

    • 1 - エラーメッセージだけをアップロードします。

    • 2 - 警告メッセージだけをアップロードします。

    • 4 - 情報メッセージだけをアップロードします。

    値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値 3 はエラーメッセージ (1) と警告メッセージ (2) をアップロードします。値 7 は、エラーメッセージ (1)、警告メッセージ (2)、情報メッセージ (4) をアップロードします。

セキュリティログデータを CloudWatch Logs に送信するには
  1. JSON ファイルで、SecurityEventLog セクションを見つけます。

    { "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" } },
  2. Levels には、7 と入力してすべてのメッセージをアップロードします。

システムイベントログデータを CloudWatch Logs に送信するには
  1. JSON ファイルで、SystemEventLog セクションを見つけます。

    { "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" } },
  2. Levels には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。

    • 1 - エラーメッセージだけをアップロードします。

    • 2 - 警告メッセージだけをアップロードします。

    • 4 - 情報メッセージだけをアップロードします。

    値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値 3 はエラーメッセージ (1) と警告メッセージ (2) をアップロードします。値 7 は、エラーメッセージ (1)、警告メッセージ (2)、情報メッセージ (4) をアップロードします。

他のタイプのイベントログデータを CloudWatch Logs に送信するには
  1. JSON ファイルに、新しいセクションを追加します。各セクションには固有の Id が必要です。

    { "Id": "Id-name", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name", "Levels": "7" } },
  2. Id には、アップロードするログの名前を入力します (たとえば、WindowsBackup)。

  3. LogName には、アップロードするログの名前を入力します。ログの名前を次のように確認できます。

    1. イベントビューワーを開きます。

    2. ナビゲーションペインで、[Applications and Services Logs] を選択します。

    3. ログに移動し、[Actions]、[Properties] を選択します。

  4. Levels には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。

    • 1 - エラーメッセージだけをアップロードします。

    • 2 - 警告メッセージだけをアップロードします。

    • 4 - 情報メッセージだけをアップロードします。

    値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値 3 はエラーメッセージ (1) と警告メッセージ (2) をアップロードします。値 7 は、エラーメッセージ (1)、警告メッセージ (2)、情報メッセージ (4) をアップロードします。

Windows データのイベントトレースを CloudWatch ログに送信するには

ETW (Event Tracing for Windows) には、アプリケーションがログを書き込むことができる効率的できめ細かいログ記録メカニズムが用意されています。各 ETW は、ログ記録セッションを開始および停止できるセッションマネージャにより制御されます。各セッションには、プロバイダーと 1 つ以上のコンシューマーが存在します。

  1. JSON ファイルで、ETW セクションを見つけます。

    { "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" } },
  2. LogName には、アップロードするログの名前を入力します。

  3. Levels には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。

    • 1 - エラーメッセージだけをアップロードします。

    • 2 - 警告メッセージだけをアップロードします。

    • 4 - 情報メッセージだけをアップロードします。

    値を組み合わせて複数のタイプのメッセージを含めることができます。たとえば、値 3 はエラーメッセージ (1) と警告メッセージ (2) をアップロードします。値 7 は、エラーメッセージ (1)、警告メッセージ (2)、情報メッセージ (4) をアップロードします。

カスタムログ (テキストベースのログファイル) を CloudWatch Logs に送信するには
  1. 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" } },
  2. LogDirectoryPath には、ログがインスタンスに格納されるパスを入力します。

  3. TimestampFormat には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「カスタムの日付と時刻の書式指定文字列」を参照してください。

    重要

    ソースログファイルには、各ログ行の先頭にタイムスタンプがあり、タイムスタンプの後にスペースがある必要があります。

  4. Encoding には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の詳細については、MSDN の「Encoding クラス」を参照してください。

    注記

    表示名ではなく、エンコード名を使用します。

  5. (オプション) Filter には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN のFileSystemWatcherFilter 「プロパティ」トピックを参照してください。

  6. (オプション) CultureName には、タイムスタンプが記録されているロケールを入力します。CultureName が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。サポートされる値の詳細については、MSDN の「Product Behavior」トピックの表で、Language tag 列を参照してください。

    注記

    divdiv-MVhu、および hu-HU 値は、サポートされていません。

  7. (オプション) TimeZoneKind には、Local または UTC を入力します。これを設定すると、ログのタイムスタンプにタイムゾーン情報が含まれていない場合にタイムゾーン情報を提供できます。このパラメータを空白のままにし、タイムスタンプにタイムゾーン情報が含まれていない場合、 CloudWatch Logs はデフォルトでローカルタイムゾーンになります。タイムスタンプに既にタイムゾーン情報が含まれている場合、このパラメータは無視されます。

  8. (オプション) LineCount には、ログファイルを識別するためのヘッダーの行数を入力します。たとえば、IIS のログファイルのヘッダーはほぼ同じです。「5」と入力すると、ログファイルのヘッダーの最初の 3 行が読み取られ、ログファイルを識別できます。IIS ログファイルで、3 番目の行は日時のスタンプですが、タイムスタンプは常にログファイル間で異なるという保証はありません。そのため、ログファイルの一意のフィンガープリントを作成するには、実際のログデータの少なくとも 1 行を含めることをお勧めします。

IIS ログデータを CloudWatch Logs に送信するには
  1. 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" } },
  2. LogDirectoryPath には、個々のサイト (C:\inetpub\logs\LogFiles\W3SVCn など) の IIS ログが格納されているフォルダを入力します。

    注記

    W3C ログ形式のみサポートされます。IIS、NCSA、カスタム形式はサポートされません。

  3. TimestampFormat には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「カスタムの日付と時刻の書式指定文字列」を参照してください。

  4. Encoding には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の詳細については、MSDN の「Encoding クラス」を参照してください。

    注記

    表示名ではなく、エンコード名を使用します。

  5. (オプション) Filter には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN のFileSystemWatcherFilter 「プロパティ」トピックを参照してください。

  6. (オプション) CultureName には、タイムスタンプが記録されているロケールを入力します。CultureName が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。サポートされる値の詳細については、MSDN の「Product Behavior」トピックの表で、Language tag 列を参照してください。

    注記

    divdiv-MVhu、および hu-HU 値は、サポートされていません。

  7. (オプション) TimeZoneKind には、Local または UTC を入力します。これを設定すると、ログのタイムスタンプにタイムゾーン情報が含まれていない場合にタイムゾーン情報を提供できます。このパラメータを空白のままにし、タイムスタンプにタイムゾーン情報が含まれていない場合、 CloudWatch Logs はデフォルトでローカルタイムゾーンになります。タイムスタンプに既にタイムゾーン情報が含まれている場合、このパラメータは無視されます。

  8. (オプション) LineCount には、ログファイルを識別するためのヘッダーの行数を入力します。たとえば、IIS のログファイルのヘッダーはほぼ同じです。「5」と入力すると、ログファイルのヘッダーの最初の 5 行が読み取られ、ログファイルを識別できます。IIS ログファイルで、3 番目の行は日時のスタンプですが、タイムスタンプは常にログファイル間で異なるという保証はありません。そのため、ログファイルの一意のフィンガープリントを作成するには、実際のログデータの少なくとも 1 行を含めることをお勧めします。

ステップ 4: フロー制御を設定する

各データ型は、Flows セクションに対応する送信先を持っている必要があります。例えば、カスタムログ、ETW ログ、およびシステムログを CloudWatch Logs に送信するには、 Flowsセクション(CustomLogs,ETW,SystemEventLog),CloudWatchLogsに を追加します。

警告

無効なブロックを追加すると、フローがブロックされます。たとえば、ディスクメトリクスのステップを追加したが、インスタンスにディスクがない場合は、フローのすべてのステップがブロックされます。

同じログファイルを複数の宛先に送信できます。たとえば、アプリケーションログを CloudWatchLogs セクションで定義付けた 2 つの送信先に送信するには、ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)Flows セクションに追加します。

フロー制御を設定するには
  1. AWS.EC2.Windows.CloudWatch.json ファイルで、「Flows」セクションを見つけます。

    "Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ] }
  2. Flows には、アップロードされる各データ型 (たとえば、ApplicationEventLog) とその送信先 (たとえば、CloudWatchLogs) を追加します。

JSON ファイルの編集はこれで完了です。これは、後のステップで使用します。

エージェントを起動する

Windows Server 2012 または Windows Server 2008 を実行している Amazon EC2 インスタンスでログを CloudWatch Logs に送信できるようにするには、EC2Config サービス () を使用しますEC2Config.exe)。インスタンスには EC2Config 4.0 以降が必要であり、この手順を使用できます。以前のバージョンの EC2Config の使用の詳細については、Windows インスタンス用 Amazon EC2 ユーザーガイドの「EC2Config 3.x 以前を使用して を設定する CloudWatch」を参照してください。 Amazon EC2

EC2Config 4.x CloudWatch を使用して を設定するには
  1. この手順で前に編集した AWS.EC2.Windows.CloudWatch.json ファイルのエンコーディングを確認します。BOM のない UTF-8 エンコーディングのみがサポートされています。次に、Windows Server 2008 - 2012 R2 インスタンスで、C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\ フォルダにファイルを保存します。

  2. Windows サービスのコントロールパネルまたは次の PowerShell コマンドを使用して、SSM エージェント (AmazonSSMAgent.exe) を起動または再起動します。

    PS C:\> Restart-Service AmazonSSMAgent

SSM エージェントが再起動すると、設定ファイルを検出し、 CloudWatch 統合するインスタンスを設定します。ローカル設定ファイルのパラメータと設定を変更する場合は、変更を反映するために SSM エージェントを再起動する必要があります。インスタンスで CloudWatch 統合を無効にするには、 IsEnabledを に変更falseし、変更を設定ファイルに保存します。