排查可观测性存储分区问题

本文档介绍了如何解决可能与可观测性存储分区相关的故障。例如,此页面介绍了如何解决与配置可观测性存储分区的默认设置相关的问题。您可以为资源(组织、文件夹或项目)配置这些默认设置,以便执行以下操作:

  • 为可观测性存储分区配置默认存储位置。
  • 对于您选择存储数据的每个位置,您都可以配置客户管理的加密密钥 (CMEK) 的使用。

资源层次结构中的后代会自动使用这些设置,除非您已为这些后代配置默认设置。

您看不到任何轨迹数据

您希望在 Trace 探索器页面中看到数据,但实际上没有任何数据。

轨迹数据存储在名为 _Trace 的可观测性存储分区中。您可能看不到跟踪记录数据,原因有多种。如需了解如何解决此失败问题,请参阅 Trace 探索器页面中没有数据

本部分列出了与设置或清除默认存储位置(即可观测性存储分区的默认设置中的一个字段)相关的常见问题。

为资源设置默认存储位置失败

您尝试为资源设置默认存储位置,但命令失败:

  • 尝试设置可观测性存储分区不支持的位置会失败,并显示 400 (Bad Request) 错误代码。失败消息类似于以下内容:

    Unsupported default storage location: my-region
    
  • 如果尝试将位置设置为组织政策不允许的值,则会失败并显示 400 (Bad Request) 错误代码。失败消息类似于以下内容:

    Constraint `constraints/gcp.resourceLocations` violated for `folders/12345` attempting to change `folders/12345/locations/global/settings` with location `invalid`. The location must be in the allowed location list configured by the organization policy administrator.
    

如需解决这些故障,请执行以下操作:

用于清除默认存储位置的命令失败

您向资源发出 updateSettings 命令,并将默认存储位置的值设置为空字符串。该命令失败,并显示 400 (Bad Request) 错误代码。错误消息类似于以下内容之一:

Before you can clear the default storage location for this resource, you must set a default storage location for an ancestor in the resource hierarchy.

The default storage location may not be removed from an organization's Settings.

这是预期行为。

为资源设置默认存储位置后,您可以更改该值,但除非在资源层次结构中为祖先指定了默认存储位置,否则您无法清除或取消设置该值。您无法清除或取消设置组织的默认存储位置,因为该组织没有祖先。

可观测性存储桶的位置与组织政策相冲突

您发现,某些可观测性存储分区的位置与组织政策指定的允许位置相冲突。

这不是错误。

限制位置的组织政策不受可观测性存储分区的约束。

可观测性存储桶的位置可能位于组织政策不允许的位置,原因有多种:

  • 可观测性存储桶是在 2026 年 6 月 1 日之前创建的,而 2026 年 6 月 1 日是开始强制执行限制位置的组织政策的日期。

  • 在创建可观测性存储桶后,组织政策发生了变化。

本部分列出了与使用 CMEK 相关的常见问题。

用于清除默认 Cloud KMS 密钥的命令失败

您向资源和位置发出 updateSettings 命令,并将默认 Cloud KMS 密钥的值设置为空字符串。该命令失败,并显示 400 (Bad Request) 错误代码。错误消息类似于以下内容之一:

The default KMS key cannot be empty because you have an organization policy that requires CMEK and because no ancestor defines a default KMS key.

The default KMS key cannot be empty because you have an organization policy that requires CMEK.

这是预期行为。

如果您有要求使用 CMEK 的组织政策,并且已为资源和位置设置默认 Cloud KMS 密钥,则除非资源的祖先实体具有相应的默认密钥,否则您无法移除该密钥。由于组织没有祖先,因此您无法从组织的默认设置中移除默认 Cloud KMS 密钥。

如何查找可观测性存储桶使用的密钥?

如需获取有关用于可观测性存储分区的加密密钥的信息,请列出您的可观测性存储分区

响应数据包含有关 Cloud KMS 密钥、其版本以及用于访问该密钥的服务账号的信息。

如何解决关键配置错误

为资源和位置配置默认 Cloud KMS 密钥后,您会收到 Google Cloud Observability 发送的关于访问权限问题的电子邮件通知,或者发现启用了 CMEK 的可观测性存储分区出现读取或写入错误。该电子邮件会发送给重要联系人,其中包含以下信息:

  • Cloud KMS 密钥名称。
  • Cloud KMS 密钥版本。
  • 用于加密和解密的服务账号的名称。
  • Google Cloud Observability 在加密或解密数据时看到的错误代码。
  • 加密或解密数据时看到的错误消息

通知会提供有关失败的信息,并列出可用于缓解问题的操作:

错误 建议
加密密钥权限被拒

相应资源的服务账号没有足够的 IAM 权限,无法对指定的 Cloud KMS 密钥执行操作。如需解决此故障,请按照错误消息中的说明操作。以下信息可能对您有所帮助:

加密密钥已停用

指定的 Cloud KMS 密钥已停用。按照错误中的说明重新启用密钥。以下信息可能对您有所帮助:

加密密钥已销毁 指定的 Cloud KMS 密钥已销毁。请按照说明操作,或参阅管理资源的 Cloud KMS 密钥

可观测性存储桶的配置失败

您是资源的必要联系人或所有者,并且收到了 Google Cloud Observability 发送的有关配置失败的电子邮件通知。

由于配置错误或内部错误,预配可观测性存储桶可能会失败:

本部分的其余内容介绍了如何调查常见的配置问题。

查看限制位置的组织政策

查看组织政策(限制条件 ID 为 constraints/gcp.resourceLocations)指定的允许位置。此政策定义了可以创建新资源的一组位置。

确保允许的位置列表包含至少一个受支持的可观测性存储桶位置。如果默认存储位置是不允许的位置,则配置会失败。

如需了解详情,请参阅查看组织政策

查看资源的默认存储位置

查看并根据需要更新组织、文件夹或项目的可观测性存储分区的默认设置(包括默认存储位置)。

如需了解详情,请参阅查看可观测性存储分区的默认设置

查看要求使用 CMEK 的组织政策

CMEK 受两项限制的约束。一种限制条件用于限制可用于加密的 Cloud KMS 密钥。另一项限制要求使用 Cloud KMS 密钥。

限制政策

确定您是否已配置具有限制 ID constraints/gcp.restrictCmekCryptoKeyProjects 的政策。

如果您已设置,请确保组织政策允许使用默认 Cloud KMS 密钥。

需要指定政策

确定您是否已配置约束 ID 为 constraints/gcp.restrictNonCmekServicesDeny 政策。

如果是,请确保为默认存储位置定义默认 Cloud KMS 密钥。如果您还配置了政策来限制可使用的密钥,请确保您的默认 Cloud KMS 密钥是允许使用的。

例如,如果您的政策在组织级应用,请确保您已为组织配置可观测性存储分区的默认设置,包括默认存储位置以及该位置的默认 Cloud KMS 密钥。

如果需要使用 CMEK,但没有可用于加密或解密相应数据的密钥,Google Cloud Observability 就无法预配可观测性存储分区。

验证 Cloud KMS 密钥是否可用

如需确定 Cloud KMS 密钥是否可用,请运行 gcloud kms keys list

gcloud kms keys list \
--location=LOCATION_ID \
--keyring=KMS_KEY_RING

在运行上面的命令之前,请先进行以下替换:

  • LOCATION_ID:Cloud KMS 密钥的位置。
  • KMS_KEY_RING:Cloud KMS 密钥环的名称。

上述命令会返回指定位置中每个密钥的相关信息。对于您的 Cloud KMS 密钥,请确保满足以下条件:

  • Cloud KMS 密钥会列在表格中。
  • STATUS 列列出了 ENABLED
  • PURPOSE 列列出了 ENCRYPT_DECRYPT。此设置表示密钥的用途是对称加密:

如有必要,请创建新的 Cloud KMS 密钥,并更新关联资源和位置的可观测性存储分区的默认设置。

验证服务账号是否具有所需角色

验证资源的服务账号是否已获得 Cloud KMS 密钥的 Cloud KMS CryptoKey Encrypter/Decrypter 角色,该密钥列为资源的可观测性存储分区的默认设置的一部分。

如需确定 Cloud KMS 密钥的绑定,请运行以下命令:

gcloud kms keys get-iam-policy KMS_KEY_NAME

如有必要,请为资源的服务账号授予密钥的 Cloud KMS CryptoKey Encrypter/Decrypter 角色。如需了解详情,请参阅向服务账号授予对密钥的访问权限