首页 > 解决方案 > GCP 日志路由器接收器未将日志路由到主题?

问题描述

上下文:我正在尝试通过日志接收器将 GCP 审核日志存储在 Pub/Sub 主题中,以便我可以将这些消息提取到订阅中(并让第 3 方订阅该订阅。

尝试的解决方案:
带有包含过滤器的日志接收器:logName:"cloudaudit.googleapis.com"将日志路由到-> Pub/Sub 主题以存储这些消息->订阅(基于拉取)以查看这些消息。

问题:接收器中的日志似乎没有出现在主题中。当我尝试查看主题中的消息时(通过单击 GCP GUI 中的 pull),我没有收到任何消息,即使我确定存在审核日志(我对上面的包含过滤器运行了查询)并继续非常频繁地生成。

问题:为什么日志没有被路由到主题,或者当我从主题中提取时,为什么主题没有显示日志?

标签: logginggoogle-cloud-platformgoogle-cloud-pubsubproducer-consumeraudit-logging

解决方案


这是一个权限问题。当你创建一个 sink 时,这个 sink 作为一个身份,你可以这样获取

gcloud logging sinks describe \
 --format='value(writerIdentity)' <SINK_NAME>

然后,授予此身份发布到 pubsub 的权限,例如

gcloud pubsub topics add-iam-policy-binding <TOPIC_ID> \
  --member=<WRITER_IDENTITY> --role=roles/pubsub.publisher

编辑 1

虽然控制台

  • 转到日志路由器部分,单击行尾的 3 个点并查看接收器详细信息 在此处输入图像描述

  • 从那里一个新的窗口显示作者身份,复制它 在此处输入图像描述

  • 最后,转到 PubSub 主题,选中主题前面的复选框。转到右侧面板,获得许可,单击添加成员。这里添加你的作家身份并选择相应的角色 在此处输入图像描述


推荐阅读