如何使用AWS CloudWatch Insights查询AWS CloudWatch日志?

10
我是一位有用的助手,可以为您进行翻译。以下是需要翻译的内容:

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

日志格式大致如下-

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

我可以查询日志而不需要UUID字符串 -

enter image description here

如果我在查询中提到UUID,它就不会显示结果 - enter image description here 使用的查询 -
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
2个回答

9
你尝试在第一个查询中对消息字段添加附加筛选器以进一步缩小结果范围了吗?
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小时范围内,也许可以尝试扩大查询页面右上角的相对时间范围,以便寻找你需要的请求。


在“filter uuid like /572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd/”中,应该使用requestuuid而不是uuid,不是吗? - Khan Hafizur Rahman

0

与接受的答案中使用两个like过滤器不同,我建议使用以下方式使用in运算符。这样你的代码会更短,更简洁。

fields @timestamp, @message
| filter @message in ["Request ID =>", "572bf6d2-e3ff-45dc-bf7d-c9c858dd5ccd"]
| sort @timestamp desc
| limit 20


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接