View a markdown version of this page

对计划查询进行故障排除 - 亚马逊 CloudWatch 日志

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

对计划查询进行故障排除

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

查询执行因权限错误而失败

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

当执行角色缺乏从日志组读取或写入目标资源所需的权限时,就会出现权限错误。

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

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

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

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

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

查询超时

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

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

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

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

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

常见原因包括查询较长时间范围、处理高容量日志组或在未进行适当筛选的情况下使用复杂的聚合。

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

目标处理失败

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

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

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

  2. 检查目标配置中是否有正确的 URI。

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

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

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

无效的查询错误

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

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

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

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

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

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

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

查询并发错误

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

  • 配额:每个 AWS 账户最多可以运行 100 个并发 CloudWatch 日志见解查询。

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

  • OpenSearch 服务 PPL/SQL:每个 AWS 账户最多可以运行 15 个并发 OpenSearch PPL 或 OpenSearch SQL 查询。

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

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