本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
驗證日誌事件的流動
建立訂閱篩選條件後, 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 ,日誌可能會發出 "CONTROL_MESSAGE" 類型的 Kinesis Data Streams 記錄,主要用於檢查目的地是否可以到達。
- logEvents
-
實際的日誌資料,以一系列的日誌事件記錄呈現。ID 屬性是每個記錄事件的唯一識別符。