지원되는 로그 및 검색되는 필드 - Amazon CloudWatch Logs

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

지원되는 로그 및 검색되는 필드

CloudWatch Logs Insights는 다양한 유형의 로그를 지원합니다. Amazon CloudWatch Logs의 표준 클래스 로그 그룹에 전송되는 모든 로그에 대해 CloudWatch Logs Insights는 5개의 시스템 필드를 자동으로 생성합니다.

  • @message에는 구문 분석되지 않은 원시 로그 이벤트가 포함되어 있습니다. 이 필드는 InputLogeventmessage 필드와 동등합니다.

  • @timestamp에는 로그 이벤트 timestamp 필드의 이벤트 타임스탬프가 포함되어 있습니다. 이 필드는 InputLogeventtimestamp 필드와 동등합니다.

  • @ingestionTime에는 CloudWatch Logs가 로그 이벤트를 수신한 시간이 포함되어 있습니다.

  • @logStream에는 로그 이벤트가 추가된 로그 스트림의 이름이 포함되어 있습니다. 로그 스트림은 로그를 생성한 프로세스와 동일한 프로세스를 통해 로그를 그룹화합니다.

  • @log는 형식의 로그 그룹 식별자입니다.account-id:log-group-name 이 필드는 여러 로그 그룹을 쿼리할 때 특정 이벤트가 속한 로그 그룹을 식별하는 데 유용할 수 있습니다.

  • @entity 에는 관련 원격 측정 기능 탐색의 엔터티와 관련된 평면화된 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 Insights는 생성하는 필드의 시작 부분에 @ 기호를 삽입합니다.

다수의 로그 유형에 대해 CloudWatch Logs 역시 로그에 포함된 로그 필드를 자동으로 검색합니다. 다음 표에는 이러한 자동 검색 필드가 나와 있습니다.

CloudWatch Logs Insights가 자동으로 검색하지 않는 필드가 포함된 다른 로그 유형에 대해서는 parse 명령을 사용하여 추출하고 쿼리에 사용할 추출된 필드를 생성할 수 있습니다. 자세한 내용은 CloudWatch Logs Insights 언어 쿼리 구문 단원을 참조하십시오.

검색한 로그 필드의 이름이 @ 문자로 시작하면 CloudWatch Logs Insights는 해당 필드의 앞에 @를 추가로 붙여 표시합니다. 예를 들어, 로그 필드 이름이 @example.com이면 이 필드 이름은 @@example.com으로 표시됩니다.

참고

@message, @timestamp또는를 제외하고 검색된 필드에 대한 필드 인덱스를 생성할 @log수 있습니다. 필드 인덱스에 대한 자세한 내용은 섹션을 참조하세요필드 인덱스를 생성하여 쿼리 성능을 개선하고 스캔 볼륨을 줄입니다..

로그 유형 검색된 로그 필드

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 로그의 필드 섹션을 참조하세요.

CloudTrail 로그

JSON 형식의 로그

자세한 정보는 JSON 로그의 필드 섹션을 참조하세요.

기타 로그 유형

@timestamp, @ingestionTime, @logStream, @message, @log.

JSON 로그의 필드

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 사용 설명서에서 쿼리 구문을 참조하세요.