지원되는 로그 및 검색되는 필드 - 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 이 식별자는 여러 로그 그룹을 쿼리할 때 특정 이벤트가 속한 로그 그룹을 식별하는 데 유용할 수 있습니다.

CloudWatch Logs Insights는 생성하는 필드의 시작 부분에 @ 기호를 삽입합니다.

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

CloudWatch Logs Insights가 자동으로 검색하지 않는 필드가 포함된 다른 로그 유형에 대해서는 parse 명령을 사용해 쿼리에 사용할 임시 필드를 추출해 생성할 수 있습니다. 자세한 정보는 CloudWatch Logs Insights 쿼리 구문 섹션을 참조하세요.

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

로그 유형 검색된 로그 필드

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, 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 객체 userIdentity 내의 필드 typeuserIdentity.type으로 표시됩니다.

같은 예제에서 JSON 배열은 필드 이름 및 값 목록으로 평면화됩니다. requestParameters.instancesSet.items.0.instanceId에서 requestParameters.instancesSet의 첫 번째 항목에 대한 instanceId 값을 지정합니다.

{ "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": "205.251.233.176", "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" } } ] } }

CloudWatch Logs Insights는 JSON 로그에서 최대 1,000개의 로그 이벤트 필드를 추출할 수 있습니다. 추출되지 않은 추가 필드의 경우 parse 명령을 사용하여 메시지 필드의 구문 분석되지 않은 원시 로그 이벤트에서 이러한 필드를 구문 분석할 수 있습니다.