gpt4 book ai didi

json - AWS Cloudwatch Log Insights - 按 JSON 日志事件的 JSON 过滤器过滤记录

转载 作者:行者123 更新时间:2023-12-03 23:36:08 25 4
gpt4 key购买 nike

我有一个日志组,它将 JSON 日志累积到每个流中。这些 JSON 日志如下所示。

enter image description here

我想过滤 "user" = "keet" 所在的日志。 AWS 文档对 Using Metric Filters to Extract Values from JSON Log Events 进行了解释。我使用 AWS 开发工具包进行了尝试,对于 NodeJS 中的以下代码,它运行良好。

let params = {
logGroupName: 'log-goupe-name', /* required */
filterPattern: '{$.user=keet}',

};
cloudwatchlogs.filterLogEvents(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});

问题 :

同样,我想知道 AWS Cloudwatch Insights Dashboard 和 AWS Console 上是否也可以这样做?我知道字符串模式匹配是可能的。但我想知道是否可以使用 @filter 在 Insights 仪表板上进行 JSON 字段匹配。来的默认查询如下。
fields @timestamp, @message
| sort @timestamp desc
| limit 20

我尝试在 Stackoverflow 上遵循此答案,但仍然没有帮助。这仅用于解析数据。我的要求是根据 JSON 日志中的值过滤日志。

提前致谢。

最佳答案

您可以像这样从 json 中解析出用户:

parse @message '"user":"*"' as user

根据您想在仪表板上看到的内容,您可以仅过滤掉特定用户:
fields @message 
| parse @message '"user":"*"' as user
| filter user == "keet"

结果将是:
#    @message                            user
----------------------------------------------
1 info - {"user":"keet","age":30 } keet
2 info - {"user":"keet","age":30 } keet
3 info - {"user":"keet","age":30 } keet
4 info - {"user":"keet","age":30 } keet

也可以尝试:
filter user == 'keet'

也许 Insights 会自动发现这些字段。您可以在右侧的 已发现字段 部分中看到自动发现的字段列表。

关于json - AWS Cloudwatch Log Insights - 按 JSON 日志事件的 JSON 过滤器过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56315693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com