AWS Cloudwatch Insights 如何使用多个日志组进行查询

问题描述 投票:0回答:3

阅读文档似乎可以在AWS Cloudwatch中运行具有多个日志组的查询,但我看不到任何有关如何执行此操作的示例。

我想使用公共属性加入两个日志组,并使用过滤器选择一些日志。

有人遇到同样的问题并找到解决方案吗?预先感谢。

amazon-web-services aws-lambda amazon-cloudwatch aws-cloudwatch-log-insights
3个回答
2
投票

如果您谈论的是 AWS 控制台,选择多个日志组的选项是一个复选框,您可以选择 20 多个日志组。

如果您参考AWS CLI,还可以选择多个日志组。首先创建查询(在一个或多个日志组中)(https://docs.aws.amazon.com/cli/latest/reference/logs/start-query.html),然后获取结果 (https: //docs.aws.amazon.com/cli/latest/reference/logs/get-query-results.html)

示例:

使用多个日志组创建查询:

aws logs start-query --log-group-names "/aws/apigateway/welcome" "/aws/lambda/Test01" 
--start-time 1598936400000 --end-time 1611464400000 --query-string "fields @timestamp, 
@message"

从创建的查询中恢复结果:

aws logs get-query-results --query-id <query_id>


2
投票

您可以安装Athena Cloudwatch 连接器。 在此之前,您将能够像表一样使用每个日志组在 Athena 中进行查询。

select s.message, c.message, split_part(c.message, '/',3)
from "lambda:athena-cloudwatch-catalog"."/aws/lambda/<LOG_GROUP_1>".all_log_streams c,
"lambda:athena-cloudwatch-catalog"."/aws/lambda/<LOG_GROUP_2>".all_log_streams s
where 
s.message like split_part(c.message, '/',3) and
c.message like '%S3%';

0
投票

您可以从多个日志组中查询,这对于这些日志中具有相同类型结果的日志很有用。这些在类似微服务的模式中非常有用,其中日志在大多数服务中都是相同的。但是如果没有选项来连接来自不同日志组的查询。想法可能是使用第三个服务,例如 lambda,并从那里组合结果。

© www.soinside.com 2019 - 2024. All rights reserved.