クイックスタート: Windows Server 2016 を実行している Amazon EC2 インスタンスで Logs エージェントを使用して CloudWatch ログを CloudWatch Logs に送信できるようにする - Amazon CloudWatch Logs

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

クイックスタート: Windows Server 2016 を実行している Amazon EC2 インスタンスで Logs エージェントを使用して CloudWatch ログを CloudWatch Logs に送信できるようにする

ヒント

CloudWatch には、EC2 インスタンスとオンプレミスサーバーからログとメトリクスの両方を収集できる新しい統合エージェントが含まれています。新しい統合 CloudWatch エージェントを使用することをお勧めします。詳細については、「 CloudWatch Logs の開始方法」を参照してください。

このセクションの残りの部分では、古い CloudWatch Logs エージェントの使用について説明します。

Windows Server 2016 を実行している Amazon EC2 インスタンスで、古い CloudWatch Logs エージェントを使用してログを CloudWatch Logs に送信できるようにする

Windows Server 2016 を実行しているインスタンスが CloudWatch ログにログを送信できるようにするには、複数の方法を使用できます。このセクションのステップでは、Systems Manager Run Command を使用します。その他の可能な方法については、「Amazon へのログ、イベント、パフォーマンスカウンターの送信 CloudWatch」を参照してください。

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

サンプルファイル (AWS.EC2.Windows.CloudWatch.json) をコンピュータにダウンロードします。

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

に送信するログを決めるには、設定ファイルで選択 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) を追加します。

ステップ 5: JSON コンテンツを保存する

JSON ファイルの編集はこれで完了です。ファイルを保存し、ファイルコンテンツをテキストエディタ内の別のウィンドウに貼り付けます。ファイルコンテンツは、この手順の後のステップで必要になります。

Systems Manager 用 IAM ロールを作成する

インスタンスの認証情報の IAM ロールは、Systems Manager Run Command の実行時に必要になります。このロールにより、Systems Manager はインスタンス上でアクションを実行できます。詳細については、AWS Systems Manager ユーザーガイドの「Systems Manager セキュリティロールの設定」を参照してください。既存のインスタンスへの IAM ロールのアタッチについては、Windows インスタンス用 Amazon EC2 ユーザーガイドの「IAM ロールをインスタンスにアタッチする」を参照してください。

Systems Manager の前提条件を確認する

Systems Manager Run Command を使用して CloudWatch Logs との統合を設定する前に、インスタンスが最小要件を満たしていることを確認してください。詳細については、AWS Systems Manager ユーザーガイドの「Systems Manager の前提条件」を参照してください。

インターネットアクセスを確認する

にログとイベントデータを送信するには、Amazon EC2 Windows Server インスタンスとマネージドインスタンスにアウトバウンドのインターネットアクセスが必要です CloudWatch。インターネットアクセスの詳しい設定方法については、Amazon VPC ユーザーガイドの「インターネットゲートウェイ」を参照してください。

Systems Manager Run Command を使用して CloudWatch ログを有効にする

Run Command では、インスタンスの設定をオンデマンドで管理できます。Systems Manager ドキュメントを指定してパラメータを指定し、1 つ以上のインスタンスでコマンドを実行します。インスタンスの SSM エージェントは、コマンドを処理し、指定されたとおりにインスタンスを設定します。

Run Command を使用して CloudWatch Logs との統合を設定するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. SSM コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  3. ナビゲーションペインで、[Run Command] を選択します。

  4. [Run a command] を選択します。

  5. コマンドドキュメント でAWS-ConfigureCloudWatch を選択します。

  6. ターゲットインスタンス で、 CloudWatch ログと統合するインスタンスを選択します。このリストに表示されていないインスタンスは、Run Command 用に設定されていない場合があります。詳細については、Windows インスタンス用 Amazon EC2 ユーザーガイドSystems Manager の前提条件を参照してください。

  7. [Status] で、[Enabled] を選択します。

  8. [Properties] で、前のタスクで作成した JSON の内容をコピーして貼り付けます。

  9. 残りのオプションフィールドを入力し、[Run] を選択します。

次の手順を使用して、Amazon EC2 コンソールでコマンドの実行結果を表示します。

コンソールでコマンド出力を表示するには
  1. コマンドを選択します。

  2. [Output] タブを選択します。

  3. [View Output] を選択します。コマンド出力ページには、コマンドの実行結果が表示されます。