使用 CloudWatch Logs Insights 分析日志数据
借助 CloudWatch Logs Insights,您可以以交互方式搜索和分析 Amazon CloudWatch Logs 中的日志数据。您可以执行查询以帮助您更高效地响应操作问题。如果出现问题,您可以使用 CloudWatch Logs Insights 确定潜在原因并验证已部署的修复程序。
CloudWatch Logs Insights 支持三种可用于查询的查询语言:
-
一种专门构建的 Logs Insights 查询语言 (Logs Insights QL),包含一些简单但功能强大的命令。
-
OpenSearch Service 管道处理语言 (PPL)。OpenSearch PPL 使您能够使用由管道 (|) 分隔的一组命令来分析日志。
借助 OpenSearch PPL,您可以使用通过管道连接在一起的命令来检索、查询和分析数据,从而更轻松地理解和编写复杂的查询。该语法使命令链能够转换和处理数据。使用 PPL,您可以对数据进行筛选和聚合,并使用一组丰富的数学、字符串、日期、条件和其他函数进行分析。
-
OpenSearch Service 结构化查询语言 (SQL)。借助 OpenSearch SQL 查询,您可以以声明方式分析日志。您可以使用 SELECT、FROM、WHERE、GROUP BY、HAVING 等命令,以及 SQL 中提供的各种其他命令和函数。您可以跨日志组执行 JOIN 操作,使用子查询关联日志中的数据,并使用丰富的 JSON、数学、字符串、条件和其他 SQL 函数集对日志执行强大的分析。
使用 SQL 或 PPL 命令时,请务必用反引号将包含特殊字符(非字母和非数字)的字段括起来,才能成功查询。例如,对
@message、Operation.Export和Test::Field使用反引号。纯字母名称的字段无需使用反引号。
CloudWatch Logs Insights 提供以下功能,这些功能可与任何查询语言一起使用。
-
自动发现 Amazon 服务(例如 Amazon Route 53、Amazon Lambda、Amazon CloudTrail 和 Amazon VPC)的日志中的日志字段,以及以 JSON 格式发出日志事件的任何应用程序或自定义日志中的字段。
-
创建字段索引可以降低成本并加快查询速度,尤其适用于处理大量日志组或日志事件的查询。在为日志事件中常见的字段创建字段索引后,即可在查询中使用这些索引。查询会跳过处理已知不包含索引字段的日志事件,并处理较少的数据。
注意
filterIndex命令仅在 Logs Insights QL 中可用。 -
检测和分析日志事件中的模式。模式是在日志字段中重复出现的共有的文本结构。查看查询结果时,您可以选择模式选项卡来查看 CloudWatch Logs 根据结果示例找到的模式。
-
保存查询、查看查询历史记录并重新运行已保存的查询。这可以帮助您在需要时运行复杂的查询,而无需每次要运行它们时都重新创建它们。
-
使用自然语生成查询可让您使用自然语言创建 CloudWatch Logs Insights 查询。您可以询问有关您要查找的数据的问题或描述该数据,然后 AI 会根据您的提示生成查询,并逐行说明查询的工作原理。
以下 CloudWatch Logs Insights 功能仅在使用 Logs Insights QL 时受支持:
-
查询不频繁访问日志类中的日志。
-
比较查询,将日志组中的日志事件与先前时间段的日志事件进行比较。
-
filterIndex 命令,强制查询仅尝试扫描包含您指定的字段索引的日志事件。
重要
CloudWatch Logs Insights 无法访问时间戳早于日志组创建时间的日志事件。
如果您登录了在 CloudWatch 跨账户可观察性中设置为监控账户的账户,则可以对与该监控账户关联的源账户中的日志组运行 CloudWatch Logs Insights 查询。您可以运行一个查询,查询位于不同账户中的多个日志组。有关更多信息,请参阅 CloudWatch 跨账户可观察性。
使用 Logs Insights QL 创建查询时,您还可以使用自然语言创建 CloudWatch Logs Insights 查询。要执行此操作,请询问或描述您要查找的数据。此 AI 辅助功能可按照您的提示生成查询,并逐行说明查询的工作原理。有关更多信息,请参阅使用自然语言生成和更新 CloudWatch Logs Insights 查询。
如果使用任何支持的查询语言的查询尚未完成,则会在 60 分钟后超时。查询结果的有效期为七天。
CloudWatch Logs Insights 查询将根据所查询的数据量收费,而不管查询语言如何。有关更多信息,请参阅 Amazon CloudWatch 定价
您可以使用 CloudWatch Logs Insights 搜索在 2018 年 11 月 5 日或之后发送到 CloudWatch Logs 的日志数据。
重要
如果您的网络安全团队不允许使用 Web 套接字,则您目前无法访问 CloudWatch 控制台的 CloudWatch Logs Insights 部分。您可以通过 API 使用 CloudWatch Logs Insights 查询功能。有关更多信息,请参阅 Amazon CloudWatch Logs API Reference中的 StartQuery。