排查 Log Analytics 配置问题

本文档介绍了如何解决在 使用 Google Cloud 控制台的 Log Analytics 页面。

错误消息

本部分介绍了您可能会看到的错误消息,以及如何解决相应的错误情况。

No completion signal within allotted timeframe 错误消息

您输入 SQL 查询,然后选择运行查询。查询无法完成,并且您会看到以下错误消息:

The query failed to execute and return results due to error: No completion signal within allotted timeframe.

如需解决此错误,请执行以下操作之一:

  • 请缩短查询日志的时间间隔,然后重试查询。 例如,如果查询间隔为 14 天,则将其缩短为 7 天。 然后运行查询。

  • 创建关联的 BigQuery 数据集,然后通过 BigQuery 界面运行查询。与 Cloud Logging 界面相比,BigQuery 界面支持需要更长执行时间的查询。如需了解详情,请参阅使用 BigQuery 查询日志

针对具有不同 CMEK 密钥的存储桶执行查询时出现错误消息

您可以输入查询多个日志存储分区的 SQL 查询, 运行查询。由于查询尚未完成 您会看到以下错误消息:

Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.

如需解决此问题,请执行以下操作之一:

  • 将日志存储桶配置为使用相同的 Cloud Key Management Service (Cloud KMS) 密钥。
  • 如果日志存储桶位于同一位置,您可以配置一个文件夹或组织作为日志存储桶的父级资源,并为其指定默认的 Cloud KMS 密钥。父级的默认密钥必须与日志存储桶位于同一位置。采用此配置时,父级的默认密钥会对 Log Analytics 查询生成的任何临时数据进行加密。如需了解详情,请参阅 Log Analytics 限制

FROM 子句必须正好包含一条视图错误消息

您在 Google Cloud 控制台中的 Log Analytics 页面中的查询窗格中输入 SQL 查询,但 SQL 解析器显示以下错误:

FROM clause must contain exactly one log view

如果 FROM 语句中指定的表无法解析为特定的日志视图,系统会报告上一个错误。

如需解决此错误,请确保表名称的语法正确无误:

  • 请确保表名称遵循 Log Analytics 命名方案。BigQuery 和 Log Analytics 对表名称的不同要求。您可以在帮助中心找到 语法规则 查看默认查询

  • 如果日志存储桶的 Google Cloud 项目 ID、区域、存储桶 ID 或视图 ID 包含英文句号字符 ((.)),请确保将这些字段中的每个字段都用单引号 ((`)) 括起来。

    例如,如果 Google Cloud 项目 ID 为 example.com:bluebird,则如需查询 _Default 日志存储桶的 _AllLogs 视图,请使用以下语法指定表:

    
    SELECT *
    FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
    

    上一个查询假定 _Default 存储桶位于 global 区域。

无法保存查询

如果您输入并运行 SQL 查询,且 Save 处于停用状态, 则您的组织或文件夹的默认资源设置会定义一个位置 是组织政策不允许的。要解决此问题,请 组织管理员在默认资源中定义一个位置 与您的组织政策允许的位置相匹配的设置。 如需了解详情,请参阅 为组织和文件夹配置默认设置

如果 Save 按钮处于启用状态,但您无法完成对话框并保存查询,请执行以下操作:

  1. 确保查询不包含语法错误。 您只能保存有效的查询。
  2. 可选:将查询复制到剪贴板。
  3. 重新加载页面。
  4. 如果您将查询复制到剪贴板,请将查询粘贴到 查询窗格中的查询,运行查询,然后执行保存操作。

无法访问 Log Analytics 页面

您在 Google Cloud 控制台中打开 Log Analytics 页面,系统会显示权限被拒绝的错误消息。

如需获取加载 Log Analytics 页面所需的权限,运行查询并 查看日志、 请让管理员授予您 项目的以下 IAM 角色:

您或许还能通过 自定义角色或 Logging 预定义角色

Log Analytics 页面上查看日志条目和运行查询所需的权限与在 Logs Explorer 页面上查看日志所需的权限相同。如需了解您需要哪些其他角色才能查询用户定义的存储桶中的视图或查询 _Default 日志存储桶的 _AllLogs 视图,请参阅 Cloud Logging 角色

升级日志存储桶以使用 Log Analytics 失败

您创建一个日志存储桶,并选择使用 Log Analytics、 或者升级现有日志存储桶以使用 Log Analytics。 升级失败,并显示类似于以下内容的错误情况:

Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID  with location global.

上一个错误消息表示,您的组织配置了一项限制可用区域的组织政策。符合升级条件以使用 Log Analytics 的日志存储桶必须使用 global 区域。如果您可以移除限制使用 global 区域的组织政策,则可以升级日志存储桶。否则 您无法升级日志存储分区。

创建关联的 BigQuery 数据集失败

修改日志存储桶以创建关联的 BigQuery 数据集,或者 创建新的日志存储桶,然后选择创建关联数据集的选项; 但不会创建关联的数据集。

如需解决此错误,请让 Google Cloud 项目的系统管理员向您授予包含以下权限的 IAM 角色:

  • logging.links.create

之前的权限包含在 Logging Admin (roles/logging.admin) 和 Logs Configuration Writer (roles/logging.configWriter) 角色中。

如需了解角色和权限,请参阅使用 IAM 进行访问权限控制

删除关联的 BigQuery 数据集失败

您不再需要关联的数据集,而是选择删除该数据集 已停用。

如需解决此错误,请询问 Google Cloud 项目的系统管理员 可授予您的 IAM 角色,该角色包含 以下权限:

  • logging.links.delete

先前的权限包含在 Logging Admin (roles/logging.admin) 中 和 Logs Configuration Writer (roles/logging.configWriter) 角色指定。

借助此权限,您可以从 Google Cloud 控制台的日志存储空间页面中删除关联的数据集。如需详细了解角色和权限,请参阅 使用 IAM 进行访问权限控制

缺少查询引擎设置按钮

如果运行查询按钮旁边未显示 设置按钮,则表示您的 Google Cloud 项目未启用预留的 BigQuery 槽。如需启用 Settings 按钮,请为您的项目配置预留的 BigQuery 槽

“在 BigQuery 上运行”按钮已停用

如果系统显示在 BigQuery 上运行按钮,但该按钮处于停用状态,则表示您的查询引用的日志视图没有关联的数据集。如需对 BigQuery 槽预订运行查询,请在日志视图中创建关联的 BigQuery 数据集

没有监控服务账号

您想创建提醒政策来监控 SQL 查询的结果。设置步骤要求您向 Monitoring 服务账号授予 IAM 角色,但该账号不存在。

监控服务账号被称为服务代理,因为它由 Google Cloud 创建和管理。当您配置需要该账号的资源或服务时,系统会自动创建该账号。例如,如果您创建了 Pub/Sub 通知渠道,则该操作可能会导致系统创建 Monitoring 服务账号。根据创建流程,系统可能会向监控服务账号授予项目的 Monitoring Service Agent (monitoring.NotificationServiceAgent) 角色。您可以修改向该账号授予的角色。

如果 Monitoring 服务账号不存在,则创建提醒 政策监控 SQL 查询结果,您需要执行以下操作:

  1. 手动创建服务代理。有关此步骤的信息,请参阅 创建角色并将其授予服务代理

  2. 向服务代理授予所需的角色。如需了解这些角色,请参阅监控 SQL 查询结果:准备工作