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

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

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

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

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

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

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

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

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

참고

필드 검색은 Standard 로그 클래스의 로그 그룹에서만 지원됩니다. 로그 클래스에 대한 자세한 내용은 로그 클래스를 참조하세요.

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

많은 로그 유형의 경우 CloudWatch 로그는 로그에 포함된 로그 필드도 자동으로 검색합니다. 다음 표에는 이러한 자동 검색 필드가 나와 있습니다.

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, 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

코드 조각은 filter 명령과 함께 점 표기법을 사용하여 중첩 JSON 필드 의 값에 액세스하는 쿼리를 보여줍니다instanceId. instanceId 값이 "i-abcde123"과 같은 메시지를 필터링하고 지정된 값을 포함하는 모든 로그 이벤트를 반환하는 쿼리입니다.

참고

CloudWatch Logs Insights는 로그에서 최대 200개의 JSON 로그 이벤트 필드를 추출할 수 있습니다. 추출되지 않은 추가 필드의 경우 parse 명령을 사용하여 메시지 필드의 구문 분석되지 않은 원시 로그 이벤트에서 이러한 필드를 추출할 수 있습니다. parse 명령에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 쿼리 구문을 참조하세요.