

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

# サポートされるログと検出されるフィールド
<a name="CWL_AnalyzeLogData-discoverable-fields"></a>

CloudWatch Logs Insights は、さまざまなタイプのログをサポートします。Amazon CloudWatch Logs の標準クラスロググループに送信されるすべてのログについて、CloudWatch Logs Insights は 5 つのシステムフィールドを自動的に生成します。
+ `@message` は、生の未解析のログイベントを示します。これは、[InputLogevent](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_InputLogEvent.html) の `message` フィールドに相当します。
+ `@timestamp` には、ログイベントの `timestamp` フィールドに含まれるイベントタイムスタンプが含まれます。これは、[InputLogevent](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_InputLogEvent.html) の `timestamp` フィールドに相当します。
+ `@ingestionTime` は、ログイベントが CloudWatch Logs によって受信された時間を示します。
+ `@logStream` は、ログイベントの追加先のログストリームの名前を示します。ログストリームは、生成時と同じプロセスでログをグループ化します。
+ `@log` は、`{{account-id}}:{{log-group-name}}` の形式のロググループ識別子です。これは、複数のロググループにクエリを実行する場合に、特定のイベントが属しているロググループを識別するのに役立ちます。
+ `@entity` には、[Explore 関連のテレメトリ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ExploreRelated.html)機能のエンティティに関連するフラット化された JSON が含まれています。

  例えば、この JSON はエンティティを表すことができます。

  ```
  {
    "Entity": {
      "KeyAttributes": {
        "Type": "Service",
        "Name": "PetClinic"
      },
      "Attributes": {
        "PlatformType": "AWS::EC2",
        "EC2.InstanceId": "i-1234567890123"
      }
    }
  }
  ```

  このエンティティの場合、抽出されたシステムフィールドは次のとおりです。

  ```
  @entity.KeyAttributes.Type = Service
  @entity.KeyAttributes.Name = PetClinic
  @entity.Attributes.PlatformType = AWS::EC2
  @entity.Attributes.EC2.InstanceId = i-1234567890123
  ```

**注記**  
フィールド検出は、標準ログクラスのロググループでのみサポートされます。ログクラスの詳細については、「[ログクラス](CloudWatch_Logs_Log_Classes.md)」を参照してください。

CloudWatch Logs Insights では、生成されるフィールドの先頭に **@** 記号を挿入します。

CloudWatch Logs は、多くのログタイプで、ログ内のログフィールドも自動的に検出します。これらの自動検出フィールドを以下の表に示します。

CloudWatch Logs Insights が自動的に検出しないフィールドを持つ他のログタイプについては、`parse` コマンドを使用して抽出フィールドを抽出および作成してクエリで使用できます。詳細については、「[CloudWatch Logs Insights 言語のクエリ構文](CWL_QuerySyntax.md)」を参照してください。

検出されたログフィールドの名前が `@` 文字で始まる場合は、この名前の先頭に `@` が追加されて CloudWatch Logs Insights に表示されます。たとえば、ログフィールド名が `@example.com` である場合、このフィールド名は `@@example.com` と表示されます。

**注記**  
`@message`、`@timestamp`、`@log` を除き、検出されたフィールドのフィールドインデックスを作成できます。フィールドインデックスの詳細については、「[フィールドインデックスを作成してクエリパフォーマンスを改善し、スキャン量を削減する](CloudWatchLogs-Field-Indexing.md)」を参照してください。


| ログタイプ | 検出されるログフィールド | 
| --- | --- | 
| Amazon VPC フローログ | `@timestamp`, `@logStream`, `@message`, `accountId`, `endTime`, `interfaceId`, `logStatus`, `startTime`, `version`, `action`, `bytes`, `dstAddr`, `dstPort`, `packets`, `protocol`, `srcAddr`, `srcPort`<br />  | 
| Route 53 ログ | `@timestamp`, `@logStream`, `@message`, `edgeLocation`, `ednsClientSubnet`, `hostZoneId`, `protocol`, `queryName`, `queryTimestamp`, `queryType`, `resolverIp`, `responseCode`, `version` | 
| Lambda ログ | `@timestamp`, `@logStream`, `@message`, `@requestId`, `@duration, ``@billedDuration`, `@type`, `@maxMemoryUsed`, `@memorySize`<br />Lambda ログ行に X-Ray トレース ID が含まれている場合は、`@xrayTraceId` および `@xraySegmentId` フィールドも含まれます。<br />CloudWatch Logs Insights は、Lambda ログのログフィールドを自動的に検出します。ただし、各ログイベントに埋め込まれている最初の JSON フラグメントのみが検出されます。Lambda ログイベントに複数の JSON フラグメントが含まれている場合は、`parse` コマンドを使用してログフィールドを解析して抽出できます。詳細については、「[JSON ログのフィールド](#CWL_AnalyzeLogData-discoverable-JSON-logs)」を参照してください。 | 
| CloudTrail ログ<br />JSON 形式のログ | 詳細については、「[JSON ログのフィールド](#CWL_AnalyzeLogData-discoverable-JSON-logs)」を参照してください。 | 
| その他のログタイプ | `@timestamp`, `@ingestionTime`, `@logStream`, `@message`, `@log`. | 

## JSON ログのフィールド
<a name="CWL_AnalyzeLogData-discoverable-JSON-logs"></a>

CloudWatch Logs Insights では、ドット表記を使用して JSON フィールドを表します。このセクションでは、ドット表記を使用して JSON フィールドにアクセスする方法を、JSON イベントとコードスニペットによる例で説明します。

**例: JSON イベント**

```
{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn: aws: iam: : 123456789012: user/Alice",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21: 22: 54Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StartInstances",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.255",
    "userAgent": "ec2-api-tools1.6.12.2",
    "requestParameters": {
        "instancesSet": {
            "items": [
                {
                    "instanceId": "i-abcde123"
                }
            ]
        }
    },
    "responseElements": {
        "instancesSet": {
            "items": [
                {
                    "instanceId": "i-abcde123",
                    "currentState": {
                        "code": 0,
                        "name": "pending"
                    },
                    "previousState": {
                        "code": 80,
                        "name": "stopped"
                    }
                }
            ]
        }
    }
}
```

サンプルの JSON イベントには、`userIdentity` という名前のオブジェクトが含まれています。`userIdentity` には `type` という名前のフィールドが含まれます。ドット表記を使用して `type` の値を表すには、`userIdentity.type` を使用します。

サンプル JSON イベントには、ネストされたフィールド名と値のリストにフラット化された配列が含まれています。`requestParameters.instancesSet` の最初の項目である `instanceId` の値を表すには、`requestParameters.instancesSet.items.0.instanceId` を使用します。`instanceID` フィールドの前にある番号 `0` は、`items` フィールドの値の場所を指します。次の例には、JSON ログイベントでネストされた JSON フィールドにアクセスする方法を示すコードスニペットが含まれています。

**例: クエリ**

```
fields @timestamp, @message
| filter requestParameters.instancesSet.items.0.instanceId="i-abcde123"
| sort @timestamp desc
```

このコードスニペットは、ネストされた JSON フィールド `instanceId` の値にアクセスする `filter` コマンドと共にドット表記を使用するクエリを示します。このクエリは、`instanceId` の値が `"i-abcde123"` に等しいメッセージをフィルタリングし、指定した値を含むログイベントをすべて返します。

**注記**  
CloudWatch Logs Insights は、1 つの JSON ログから最大 200 個のログイベントフィールドを抽出できます。抽出されない追加のフィールドについては、`parse` コマンドを使用して、メッセージフィールドの未処理の未解析ログイベントからこれらのフィールドを抽出できます。`parse` コマンドの詳細については、「Amazon CloudWatch ユーザーガイド」の「[クエリ構文](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)」を参照してください。