支持的日志和发现的字段 - Amazon CloudWatch Logs
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

支持的日志和发现的字段

CloudWatch Logs Insights 支持所有日志类型的日志。对于发送到 CloudWatch Logs 的每个日志,会自动生成五个系统字段:

  • @message 包含原始未解析的日志事件。这等同于message中的字段InputLogevent.

  • @timestamp 包含日志事件的 timestamp 字段中包含的事件时间戳。这等同于timestamp中的字段InputLogevent.

  • @ingestionTime包含 CloudWatch Logs 接收日志事件的时间。

  • @logStream 包含已将日志事件添加到的日志流的名称。日志流用于按生成日志的相同进程对日志进行分组。

  • @logaccount-id:log-group-name 形式的日志组标识符。这在查询多个日志组时非常有用,可以确定特定事件属于哪个日志组。

CloudWatch Logs Insights 插入@符号在其生成的字段的开头。

对于许多日志类型,CloudWatch Logs 还会自动发现日志中包含的日志字段。这些自动发现字段如下表所示。

对于具有 CloudWatch Logs Insights 不会自动发现的字段的其他类型的日志,您可以使用parse命令来提取并创建临时字段以用于该查询中。有关更多信息,请参阅CloudWatch Logs Insights 查询语法

如果发现的日志字段的名称以@字符时,CloudWatch Logs 见解会显示其附加的@附加到开头。例如,如果日志字段名称为 @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, 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 分析自动发现 Lambda 日志中的日志字段,但仅适用于每个日志事件中的第一个嵌入式 JSON 片段。如果 Lambda 日志事件包含多个 JSON 片段,您可以通过使用parse命令。有关更多信息,请参阅 JSON 日志中的字段

CloudTrail 日志

JSON 格式的日志

有关更多信息,请参阅JSON 日志中的字段

其他日志类型

@timestamp, @ingestionTime, @logStream, @message, @log.

JSON 日志中的字段

CloudWatch Logs Insights 使用点表示法表示嵌套的 JSON 字段。在以下示例 JSON 事件中,JSON 对象 userIdentity 中的字段 type 表示为 userIdentity.type

JSON 数组平展成字段名称和值的列表。例如,要指定 requestParameters.instancesSet 中第一个项的 instanceId 值,请使用 requestParameters.instancesSet.items.0.instanceId

CloudWatch Logs Insights 从 JSON 日志中可以提取最多 1000 个日志事件字段。对于未提取的额外字段,您可以使用 parse 命令从消息字段中的原始未解析日志事件中解析这些字段。

{ "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": "205.251.233.176", "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" } } ] } }