

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 지원되는 로그 및 검색되는 필드
<a name="CWL_AnalyzeLogData-discoverable-fields"></a>

CloudWatch Logs Insights는 다양한 유형의 로그를 지원합니다. Amazon CloudWatch Logs에서 Standard 클래스 로그 그룹으로 전송되는 모든 로그에 대해 CloudWatch Log 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`에는 관련 [원격 측정 탐색](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
  ```

**참고**  
필드 검색은 Standard 로그 클래스의 로그 그룹에서만 지원됩니다. 로그 클래스에 대한 자세한 내용은 [로그 클래스](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`    | 
|  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` Lambda 로그 행에 X-Ray 트레이스 ID가 포함된 경우 `@xrayTraceId` 및 `@xraySegmentId` 필드도 포함됩니다. CloudWatch Logs Insights는 Lambda 로그에서 로그 필드를 자동으로 검색하지만 각 로그 이벤트에 포함된 첫 번째 JSON 조각에 대해서만 검색합니다. Lambda 로그 이벤트에 JSON 조각이 여러 개 포함된 경우 `parse` 명령을 사용하여 로그 필드를 구문 분석하고 추출할 수 있습니다. 자세한 정보는 [JSON 로그의 필드](#CWL_AnalyzeLogData-discoverable-JSON-logs) 섹션을 참조하세요.  | 
|  CloudTrail 로그 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는 하나의 JSON 로그에서 최대 200개의 로그 이벤트 필드를 추출할 수 있습니다. 추출되지 않은 추가 필드의 경우 `parse` 명령을 사용하여 메시지 필드의 구문 분석되지 않은 원시 로그 이벤트에서 이러한 필드를 추출할 수 있습니다. `parse` 명령에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 [Query syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)을 참조하세요.