本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
支援的日誌和探索的欄位
CloudWatch Logs Insights 支援不同的日誌類型。對於傳送至標準類別日誌群組 Amazon CloudWatch Logs 的每個日誌, CloudWatch Logs Insights 會自動產生五個系統欄位:
-
@message
包含原始未分析的日誌事件。這相當於 中的message
欄位InputLogevent。 -
@timestamp
含有日誌事件timestamp
欄位中的事件時間戳記。這相當於 中的timestamp
欄位InputLogevent。 -
@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流程日誌 |
|
Route 53 日誌 |
|
Lambda 日誌 |
如果 Lambda 日誌行包含 X-Ray 追蹤 ID,則也會包含以下欄位: CloudWatch Logs Insights 會自動探索 Lambda 日誌中的日誌欄位,但僅適用於每個日誌事件中的第一個內嵌JSON片段。如果 Lambda 日誌事件包含多個JSON片段,您可以使用 |
CloudTrail 日誌 以 JSON 格式記錄 |
如需詳細資訊,請參閱JSON 日誌中的欄位。 |
其他日誌類型 |
|
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 使用者指南中的查詢語法。