对计划查询进行故障排除 - Amazon CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对计划查询进行故障排除

使用这些疑难解答主题来解决计划查询的常见问题。

由于权限错误,查询执行失败

解决导致计划查询无法执行或将结果传送到目标的权限错误。

当执行角色缺乏从日志组读取或写入目标资源的必要权限时,就会发生权限错误。

解决权限错误
  1. 验证执行角色是否具有目标日志组的logs:StartQuerylogs:GetQueryResults、和logs:DescribeLogGroups权限。

  2. 确保执行角色对目标资源(s3:PutObject例如 S3 存储桶)具有写入权限。

  3. 检查信任策略是否允许 CloudWatch Logs 担任执行角色。该角色应信任其信任策略中的日志服务主体 (logs.amazonaws.com)。

常见原因包括缺少 IAM 权限、策略 ARNs 中的资源不正确或信任策略配置问题。

为防止权限错误,请在创建执行角色时使用最小权限原则,并在将计划查询部署到生产环境之前测试权限。

查询超时

解决计划查询超过最大执行时间限制时发生的超时错误。

当查询处理指定数据范围的时间超过 60 分钟时,就会发生查询超时,这通常是由于数据集过大或查询逻辑复杂所致。

解决超时错误
  1. 通过减少开始时间偏移来缩小时间范围,从而减少每次执行处理的数据。

  2. 通过在查询的早期添加筛选器来优化查询,以减少处理的数据量。使用筛选索引来减小数据扫描的大小。

  3. 考虑将复杂的查询分解为更简单、更有针对性的查询。

常见原因包括查询时间范围过大、处理大量日志组或使用复杂聚合而不进行适当筛选。

为防止超时,请在 L CloudWatch ogs Insights 中使用预期的数据量手动测试查询,并在计划之前优化性能。

目标处理失败

解决无法将计划查询结果传送到已配置的目的地时发生的故障。

当目标 Amazon S3 存储桶或 EventBridge 事件总线无法访问或配置不正确时,就会发生目标处理故障。

解决查询结果未发布到目标的故障
  1. 验证指定的 Amazon S3 存储桶是否存在并且可以访问。

  2. 检查目标配置是否正确 URIs。

  3. 确保执行角色具有写入目标所需的权限。

常见原因包括删除或重命名目标资源 URIs、目标不正确或网络连接问题。

为防止目标出现故障,请定期验证目标配置并监控目标资源可用性。

无效的查询错误

解决计划查询字符串中导致无法成功执行的语法和逻辑错误。

当查询字符串包含语法错误、引用不存在的字段或使用不支持的查询语言功能时,就会出现无效的查询错误。

解决无效的查询错误
  1. 在 L CloudWatch ogs Insights 中手动测试您的查询,以验证语法和逻辑。

  2. 检查目标日志组中是否存在所有引用的日志字段。

  3. 确认计划查询支持您使用的查询语言功能。

常见原因包括字段名称中的错别字、查询语法不正确或使用计划执行环境不支持的查询功能。

为防止出现无效的查询错误,请务必在计划之前以交互方式测试查询,并使用字段发现功能来验证字段名称。

查询并发错误

由于计划查询使用的配额与 Cloudwatch Logs 见解查询的配额相同,因此当出现并发错误时,需要记住以下几点。建议分散您的日程安排,以免达到并发限制。

  • 配额:每个 AWS 账户最多可以同时运行 30 个 CloudWatch Logs Insights 查询。

  • 仪表板:添加到 CloudWatch 仪表板的查询也计入此并发限制,因为它们是在仪表板加载或刷新时执行的。

  • OpenSearch 服务 PPL/SQL:在 30 个并发查询中,一个子集(当前为 15 个)可以使用 OpenSearch PPL 或 SQL。 OpenSearch

  • 跨账户查询:并发配额适用于单账户和跨账户查询。使用 CloudWatch 跨账户可观察性时,在监控账户中针对关联源账户发起的查询也会计入监控账户的并发限制。

  • 不频繁访问日志组:对于不频繁访问日志类中的日志组,并发 Logs Insights 查询的最大数量限制为五个。