尝试导出日志时“未配置日志接收器”

时间:2016-12-12 07:27:46

标签: logging google-cloud-storage google-cloud-platform stackdriver

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

我点击左侧菜单中的“Logs”,然后点击Exports,现在我看到一条消息说:“没有配置日志接收器。”

我试着查看Google's documentation并且没有任何相关内容,实际上这是第一次出现的字符串“没有配置日志接收器”。在Google搜索中。

修改

使用Cloud 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

2 个答案:

答案 0 :(得分:0)

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

  1. 在用户界面中,配置了" No Log接收器"消息只是通知您尚未设置导出规则。要进行设置,请转到主日志记录视图,通过过滤来选择要导出的日志,然后单击"创建导出"创建它们。
  2. Screenshot showing the location of the Create Export button in the Stackdriver Logging user interface

    1. 您从gcloud收到的消息表明您可能没有对您尝试编辑以创建新导出接收器的项目拥有权限。这是你拥有的项目吗?如果没有,业主需要授予你"日志配置编写器"角色(也可能还有" Logs Viewer"角色,因此您可以在创建导出规则之前查看您尝试导出的日志,以确保他们是您想要的出口)。

答案 1 :(得分:0)

记录配置

PERMISSION_DENIED gcloud错误表明您尝试创建此接收器的帐户没有项目所有者角色或日志配置编写者角色。如documentation you've already referenced中所述,这些当然是必需的。要查看是否已就绪,您可以使用Cloud IAM检查给定帐户的角色,并确保当前登录的帐户具有适当的角色。此时, Stackdriver Logging - Logs 下单击 CREATE EXPORT

选择目的地

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

  

作为创建接收器的一部分,Stackdriver Logging将首先授予自己(cloud-logs@google.com)写入目的地的权限。

尽管如此,您可以验证{I}已在Cloud IAM中授予cloud-logs@google.com相应的权限,以确保Stackdriver日志记录将被授权写入给定目标。对于云存储,cloud-logs@google.com需要所有者对指定存储区的权限,如Destination authorization中所述。

  

在云存储中,组cloud-logs@google.com被授予您的存储桶的所有者权限。

请注意,使用这些目的地很可能需要您启用结算功能。

更多错误

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