로그 이벤트 흐름 검증
구독 필터를 생성하고 나면 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 속성은 모든 로그 이벤트의 고유 식별자입니다.