"No Log sinks are configured" 尝试导出日志时

"No Log sinks are configured" when trying to export logs

我试图从 Stackdriver Logging 界面导出日志。

我点击左侧菜单中的 "Logs",然后点击导出,现在我看到一条消息说:"No Log sinks are configured."

我试着查看 Google's documentation,但那里没有任何相关内容,实际上这是字符串 "No Log sinks are configured." 在 Google 搜索中的首次出现。

编辑:

另一种方法,使用云 Shell,我输入了以下命令:

$ gcloud beta logging sinks create direct-log storage.googleapis.com/log_export_bucket --log compute.googleapis.com/syslog

ERROR: (gcloud.beta.logging.sinks.create) PERMISSION_DENIED: The caller does not have permission

我认为在这种情况下有两件事正在发生。

  1. 在UI中,"No Log sinks are configured"消息只是通知您尚未设置导出规则。要设置它们,请转到主日志记录视图,通过筛选选择要导出的日志,然后单击 "Create Export" 创建它们。

  1. 您从 gcloud 收到的消息表明您可能没有权限尝试编辑以创建新的导出接收器的项目。这是您拥有的项目吗?如果没有,所有者需要授予您 "Logs Configuration Writer" 角色(可能还有 "Logs Viewer" 角色,这样您就可以在创建导出规则之前查看您尝试导出的日志,以确保它们是你打算出口的)。

日志记录配置

PERMISSION_DENIED gcloud 错误表明您尝试从中创建此接收器的帐户没有 项目所有者 角色或 日志配置作家 角色。正如 documentation you've already referenced. To see if this is in place, you can inspect a given account's roles using Cloud IAM 中所述,这些当然是必需的,并确保当前登录的帐户具有适当的角色。此时,CREATE EXPORT 应该可以在 Stackdriver Logging - Logs.[= 下单击。 20=]

选择目的地

此时,您需要设置一个目的地,例如具有适当权限的 Cloud Storage 存储桶 cloud-logs@google.com。然而,根据 Creating sinks,这将在创建接收器时为您完成。

As part of creating the sink, Stackdriver Logging will first grant itself (cloud-logs@google.com) permission to write to your destination.

不过,您可以验证 cloud-logs@google.com 是否在 Cloud IAM 中获得了适当的权限,以确保 Stackdriver Logging 将被授权写入给定的目标。对于云存储,cloud-logs@google.com 需要对指定存储桶的 所有者 权限,如 Destination authorization.

中所述

In Cloud Storage, the group cloud-logs@google.com is given Owner permission to your bucket.

请注意,使用这些目的地很可能需要您启用计费。


更多错误

以上步骤是创建接收器和设置日志导出所需的全部步骤。如果您已经验证了上述所有 credentials/permissions,但仍然遇到相同的错误,我建议您在 Google Cloud Platform public issue tracker 上提交缺陷报告。届时我们可以联系并私下检查权限设置,以调查这种与文档不同的行为。