

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

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

**ヒント**  
CloudWatch には、EC2 インスタンスとオンプレミスサーバーからログとメトリクスの両方を収集できる新しい統合エージェントが含まれています。新しい統合 CloudWatch エージェントを使用することをお勧めします。詳細については、「[CloudWatch Logs の開始方法](CWL_GettingStarted.md)」を参照してください。  
このセクションの残りの部分では、古い CloudWatch Logs エージェントの使用について説明します。

## Windows Server 2016 を実行している Amazon EC2 インスタンスで、古い CloudWatch Logs エージェントを使用して CloudWatch Logs にログを送信できるようにする
<a name="QuickStartWindows2016-olderagent"></a>

Windows Server 2016 を実行しているインスタンスで CloudWatch Logs にログを送信するには、複数の方法を使用できます。このセクションのステップでは、Systems Manager Run Command を使用します。他の可能な方法の詳細については、「[Amazon CloudWatch へのログ、イベント、パフォーマンスカウンターの送信](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/send_logs_to_cwl.html)」を参照してください。

**Topics**
+ [サンプル設定ファイルをダウンロードする](#configure_cwl_download)
+ [CloudWatch の JSON ファイルを設定する](#send_logs_to_cwl_json)
+ [Systems Manager 用 IAM ロールを作成する](#iam_permissions)
+ [Systems Manager の前提条件を確認する](#send_logs_cwl_syspre)
+ [インターネットアクセスを確認する](#send_logs_cwl_internet)
+ [Systems Manager Run Command を使用して CloudWatch Logs を有効化する](#remote-commands-cloudwatch)

### サンプル設定ファイルをダウンロードする
<a name="configure_cwl_download"></a>

サンプルファイル ([https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json](https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json)) をコンピュータにダウンロードします。

### CloudWatch の JSON ファイルを設定する
<a name="send_logs_to_cwl_json"></a>

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

**Topics**
+ [ステップ 1: CloudWatch Logs を有効化する](#enable-CloudWatchLogs-in-JSON-file)
+ [ステップ 2: CloudWatch 設定を構成する](#configure_cwl_credentials)
+ [ステップ 3: 送信するデータを設定する](#configure_logs)
+ [ステップ 4: フロー制御を設定する](#configure_log_flow)
+ [ステップ 5: JSON コンテンツを保存する](#save_json_content)

#### ステップ 1: CloudWatch Logs を有効化する
<a name="enable-CloudWatchLogs-in-JSON-file"></a>

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

```
"IsEnabled": true,
```

#### ステップ 2: CloudWatch 設定を構成する
<a name="configure_cwl_credentials"></a>

認証情報、リージョン、ロググループ名、およびログストリーム名前空間を指定します。これにより、インスタンスがログデータを CloudWatch Logs に送信できます。同じログデータを複数の異なる宛先に送信する場合は、一意の ID (たとえば「CloudWatchLogs2」および「CloudWatchLogs3」) および各 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}"
       }
   },
   ```

1.  [`AccessKey`] および [`SecretKey`] フィールドは空白のままにしておきます。IAM ロールを使用して認証情報を設定します。

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

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

1. `LogStream` には、送信先のログストリームを入力します。この名前は、CloudWatch コンソールの [**Log Groups (ロググループ)] > [Streams (ストリーム)**] 画面に表示されます。

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

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

#### ステップ 3: 送信するデータを設定する
<a name="configure_logs"></a>

イベントログデータ、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"
       }
   },
   ```

1. `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"
       }
   },
   ```

1. `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"
       }
   },
   ```

1. `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"
       }
   },
   ```

1. `Id` には、アップロードするログの名前を入力します (たとえば、**WindowsBackup**)。

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

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

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

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

1. `Levels` には、アップロードするメッセージのタイプを指定します。次のいずれかの値を指定できます。
   + **1** - エラーメッセージだけをアップロードします。
   + **2** - 警告メッセージだけをアップロードします。
   + **4** - 情報メッセージだけをアップロードします。

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

**イベントトレース (Windows) データを CloudWatch Logs に送信するには**

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"
       }
   },
   ```

1. `LogName` には、アップロードするログの名前を入力します。

1. `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"
       }
   },
   ```

1. `LogDirectoryPath` には、ログがインスタンスに格納されるパスを入力します。

1. `TimestampFormat` には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「[カスタムの日付と時刻の書式指定文字列](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx)」を参照してください。
**重要**  
ソースログファイルには、各ログ行の先頭にタイムスタンプがあり、タイムスタンプの後にスペースがある必要があります。

1. `Encoding` には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の一覧については、MSDN の「[Encoding クラス](http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx)」を参照してください。
**注記**  
表示名ではなく、エンコード名を使用します。

1. (オプション) `Filter` には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN の「[FileSystemWatcherFilter プロパティ](https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx)」を参照してください。

1. (オプション) `CultureName` には、タイムスタンプが記録されているロケールを入力します。`CultureName` が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。詳細については、MSDN の「[Product Behavior](https://msdn.microsoft.com/en-us/library/cc233982.aspx)」トピックの表で、`Language tag` 列を参照してください。
**注記**  
`div`、`div-MV`、`hu`、および `hu-HU` 値は、サポートされていません。

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

1. (オプション) `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"
       }
   },
   ```

1. `LogDirectoryPath` には、個々のサイト (`C:\inetpub\logs\LogFiles\W3SVCn` など) の IIS ログが格納されているフォルダを入力します。
**注記**  
W3C ログ形式のみサポートされます。IIS、NCSA、カスタム形式はサポートされません。

1. `TimestampFormat` には、使用するタイムスタンプ形式を入力します。サポートされる値の詳細については、MSDN の「[カスタムの日付と時刻の書式指定文字列](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx)」を参照してください。

1. `Encoding` には、使用するファイルエンコード (UTF-8 など) を入力します。サポートされる値の詳細については、MSDN の「[Encoding クラス](http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx)」を参照してください。
**注記**  
表示名ではなく、エンコード名を使用します。

1. (オプション) `Filter` には、ログファイル名のプレフィックスを入力します。すべてのファイルをモニタリングするには、このパラメータを空白のままにします。サポートされる値の詳細については、MSDN の「[FileSystemWatcherFilter プロパティ](https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx)」を参照してください。

1. (オプション) `CultureName` には、タイムスタンプが記録されているロケールを入力します。`CultureName` が空の場合、Windows インスタンスにより現在使用されているのと同じロケールがデフォルトになります。サポートされる値の詳細については、MSDN の「[Product Behavior](https://msdn.microsoft.com/en-us/library/cc233982.aspx)」トピックの表で、`Language tag` 列を参照してください。
**注記**  
`div`、`div-MV`、`hu`、および `hu-HU` 値は、サポートされていません。

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

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

#### ステップ 4: フロー制御を設定する
<a name="configure_log_flow"></a>

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

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

同じログファイルを複数の宛先に送信できます。たとえば、アプリケーションログを `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)"
       ]
   }
   ```

1. `Flows` には、アップロードされる各データ型 (たとえば、`ApplicationEventLog`) とその送信先 (たとえば、`CloudWatchLogs`) を追加します。

#### ステップ 5: JSON コンテンツを保存する
<a name="save_json_content"></a>

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

### Systems Manager 用 IAM ロールを作成する
<a name="iam_permissions"></a>

インスタンスの認証情報の IAM ロールは、Systems Manager Run Command の実行時に必要になります。このロールにより、Systems Manager はインスタンス上でアクションを実行できます。詳細については、*AWS Systems Manager ユーザーガイド*の「[Systems Manager セキュリティロールの設定](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-access.html)」を参照してください。既存のインスタンスへの IAM ロールのアタッチについては、「*Amazon EC2 ユーザーガイド*」の「[Attaching an IAM Role to an Instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)」を参照してください。

### Systems Manager の前提条件を確認する
<a name="send_logs_cwl_syspre"></a>

Systems Manager Run Command を使用して CloudWatch Logs との統合を設定する前に、インスタンスが最低要件を満たしていることを確認してください。詳細については、*AWS Systems Manager ユーザーガイド*の「[Systems Manager の前提条件](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html)」を参照してください。

### インターネットアクセスを確認する
<a name="send_logs_cwl_internet"></a>

CloudWatch にログとイベントのデータを送信するには、Amazon EC2 Windows Server のインスタンスとマネージドインスタンスにアウトバウンドのインターネットアクセスが必要です。インターネットアクセスの詳しい設定方法については、*Amazon VPC ユーザーガイド*の「[インターネットゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)」を参照してください。

### Systems Manager Run Command を使用して CloudWatch Logs を有効化する
<a name="remote-commands-cloudwatch"></a>

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

**Run Command を使用して CloudWatch Logs との統合を設定するには**

1. Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

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

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

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

1. [**Command document**] で、[**AWS-ConfigureCloudWatch**] を選択します。

1. [**Target instances (ターゲットインスタンス)**] で、CloudWatch Logs と統合するインスタンスを選択します。このリストに表示されていないインスタンスは、Run Command 用に設定されていない場合があります。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Systems Manager Prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/systems-manager-setting-up.html)」を参照してください。

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

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

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

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

**コンソールでコマンド出力を表示するには**

1. コマンドを選択します。

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

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