首页 > 解决方案 > 如何使用 AWS CloudWatch Insights 查询 AWS CloudWatch 日志?

问题描述

我有很多 AWS Lambda 日志,我需要查询这些日志以找到相关的日志流名称,
我在日志中记录了一个特定的字符串,
我需要对其进行类似或精确的查询。

日志格式是这样的 -

Request ID => 572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd

我可以在没有 UUID 字符串的情况下查询日志 -

在此处输入图像描述

但是如果我在查询中提到 UUID,它不会显示结果 - 在此处输入图像描述

使用的查询 -

fields @timestamp, @message
| filter @message like /Request ID =>/
| sort @timestamp desc
| limit 20

fields @timestamp, @message
| filter @message like /Request ID => 572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd/
| sort @timestamp desc
| limit 20

标签: amazon-web-servicesamazon-cloudwatchaws-cloudwatch-log-insights

解决方案


您是否尝试在第一个查询的消息字段上添加额外的过滤器以进一步缩小结果范围?

fields @timestamp, @message
| filter @message like /Request ID =>/
| filter @message like /572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd/
| sort @timestamp desc
| limit 20

或者,如果您的所有日志都遵循相同的格式,您可以使用 parse 关键字来拆分您的 UUID 字段并使用类似的内容进行搜索

fields @timestamp, @message
| parse @message "* * Request ID => *" as datetime, someid, requestuuid
| filter uuid like /572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd/
| sort @timestamp desc
| limit 20

还可以尝试在查询的右上角扩大您的相对时间范围,以防您要查找的请求在尝试第一次查询后超出 1 小时范围。


推荐阅读