로그 이벤트 흐름 검증 - Amazon CloudWatch Logs

로그 이벤트 흐름 검증

구독 필터를 생성하고 나면 CloudWatch Logs가 들어오는 모든 로그 이벤트 중에서 필터 패턴과 일치하는 이벤트를 "RecipientStream"이라는 대상 스트림 내에서 캡슐화된 스트림으로 전달합니다. 대상 소유자는 aws kinesis get-shard-iterator 명령을 사용해 Kinesis Data Streams 샤드를 확보하고, aws kinesis get-records 명령을 사용해 몇몇 Kinesis Data Streams 레코드를 가져와서 이러한 작업이 수행되고 있는지 확인할 수 있습니다.

aws kinesis get-shard-iterator \ --stream-name RecipientStream \ --shard-id shardId-000000000000 \ --shard-iterator-type TRIM_HORIZON { "ShardIterator": "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE" } aws kinesis get-records \ --limit 10 \ --shard-iterator "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"
참고

get-records 명령 반환을 몇 차례 반복해야 Kinesis Data Streams가 데이터 반환을 시작할 수 있습니다.

Kinesis Data Streams 레코드의 배열로 응답을 확인할 수 있습니다. Kinesis Data Streams 레코드의 데이터 속성은 gzip 형식으로 압축된 다음 base64로 인코딩됩니다. 다음 Unix 명령을 사용하여 명령 줄에서 원시 데이터를 검토할 수 있습니다.

echo -n "<Content of Data>" | base64 -d | zcat

디코딩 및 압축 해제된 base64 데이터는 다음 구조를 가진 JSON으로 포맷됩니다.

{ "owner": "111111111111", "logGroup": "CloudTrail/logs", "logStream": "111111111111_CloudTrail/logs_us-east-1", "subscriptionFilters": [ "RecipientStream" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" } ] }

이 데이터 구조에서의 키 요소는 다음과 같습니다.

owner

원본 로그 데이터의 AWS 계정 ID입니다.

logGroup

원본 로그 데이터의 로그 그룹 이름.

logStream

원본 로그 데이터의 로그 스트림 이름.

subscriptionFilters

원본 로그 데이터과 일치한 구독 필터 이름 목록입니다.

messageType

데이터 메시지는 'DATA_MESSAGE' 유형을 사용합니다. 때로 CloudWatch Logs는 주로 대상이 도달 가능한지 확인하기 위한 목적으로 'CONTROL_MESSAGE' 유형을 가진 Kinesis Data Streams 레코드를 출력할 수 있습니다.

logEvents

로그 이벤트 레코드의 배열로 표현되는 실제 로그 데이터. ID 속성은 모든 로그 이벤트의 고유 식별자입니다.