如何配置跨项目集中日志:创建跨项目日志 sink 并将多项目日志路由到中心存储桶

发布时间:2026/11/15 3:14:43

如何配置跨项目集中日志:创建跨项目日志 sink 并将多项目日志路由到中心存储桶 如何配置跨项目集中日志创建跨项目日志 sink 并将多项目日志路由到中心存储桶【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills这篇文章解决的任务是把多个源项目source project产生的日志统一路由到一个中心项目central project中的日志存储桶log bucket让所有日志无论从哪个项目产生都存在同一个地方、可以用同一条查询路径读取。文中所有命令来自 skills 仓库的 跨项目日志配置文档使用gcloudCLI 完成配置并用测试日志验证路由是否生效。该文档给出了两种跨项目日志架构集中存储Centralized Storage即日志路由本文主题和读取时聚合Read-Time Aggregation基于 Log Scopes。文档的决策矩阵指出集中存储可扩展到数千个项目规模日志集中在单个 log bucket 中便于通过 Observability Analytics 做统一 SQL 分析访问控制通过中心 bucket 上的 Log Views 收敛代价是如果没配置排除规则可能出现日志重复存储的成本。读取时聚合则适合 375 个项目以下的规模。如果你要的是日志真正落到一个中心存储桶就走本文的日志路由路径。准备条件已安装gcloudCLI 并完成认证。仓库的 单项目日志配置文档 指出如果缺少gcloud可执行文件需要先按 Google Cloud CLI 安装指南安装。确定两个角色存放中心日志桶的中心项目以及一个或多个要路由日志的源项目。以下命令中的花括号占位符需要替换为你自己的资源值文档不提供默认值占位符替换对象{central_project_id}中心项目 ID{source_project_id}源项目 ID每个源项目执行一次{source_organization_id}源组织 ID仅组织级 sink 使用{bucket_id}中心日志桶名称文档架构图中的示例名为central-logs-bucket{region}日志桶所在区域例如us-central1{retention_days}日志保留天数例如365单项目文档给出的示例值{sink_name}sink 名称源项目和中心项目的 sink 可以同名{test_log_id}验证用的测试日志 ID文档的架构图示例使用了central-logs-bucket位于us-central1作为中心桶可直接作为命名参考。第一步在中心项目创建中心日志桶创建自定义日志桶并启用 Log Analyticsgcloud logging buckets create {bucket_id} \ --project{central_project_id} \ --location{region} \ --retention-days{retention_days} \ --enable-analytics两个约束需要注意必须使用区域性日志桶例如把--location设为us-central1不要用global。文档说明这是为了兼容 Observability Analytics 和 SQL 查询。仓库的单项目日志文档同时指出日志桶在被 sink 路由进日志之前不产生存储或摄入费用。创建后可以查看桶配置来核对位置、保留天数等设置是否正确gcloud logging buckets describe {bucket_id} \ --location{region} \ --project{central_project_id}第二步在中心项目创建指向中心桶的 sink在中心项目创建一个项目级 sink指向刚建的中心日志桶。这个 sink 负责把落到中心项目日志路由器log router的日志写入中心桶gcloud logging sinks create {sink_name} \ logging.googleapis.com/projects/{central_project_id}/locations/{region}/buckets/{bucket_id} \ --project{central_project_id}第三步在每个源资源创建跨项目 sink要路由日志必须在每个源组织、文件夹或项目上创建一个指向中心项目的 sink。文档的推荐做法是用排除规则过滤掉审计日志把所有非审计日志路由到中心项目然后到目的地用自定义 Log Views 分区或限制访问而不是在 sink 上按业务细粒度过滤。sink 也支持用--log-filter参数只路由日志的一个子集文档将其作为可选手段。组织级 sink用--include-children覆盖组织及其子资源下的日志gcloud logging sinks create {sink_name} \ logging.googleapis.com/projects/{central_project_id} \ --organization{source_organization_id} \ --include-children \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/activity) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/activity) \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/system_event) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/system_event) \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/access_transparency) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/access_transparency)项目级 sink每个源项目执行一次gcloud logging sinks create {sink_name} \ logging.googleapis.com/projects/{central_project_id} \ --project{source_project_id} \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/activity) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/activity) \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/system_event) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/system_event) \ --exclusionfilterLOG_ID(cloudaudit.googleapis.com/access_transparency) \ --exclusionfilterLOG_ID(externalaudit.googleapis.com/access_transparency)第四步授予 sink 写者身份 IAM 权限sink 由服务账号写日志必须把写者身份writer identity显式授权到中心项目否则日志不会落地。这一步会修改 IAM 访问控制策略文档将其列为安全敏感操作要求执行前向用户确认——在手动执行时同样适用先核对--member的账号和--project目标无误再运行。给源 sink 的写者身份授权先取出源 sink 的writerIdentitygcloud logging sinks describe {sink_name} \ --project{source_project_id} \ --formatvalue(writerIdentity)输出的serviceAccount:...值记为{source_writer_identity}然后在中心项目授予roles/logging.logWriter允许源 sink 把日志写入中心项目的路由器gcloud projects add-iam-policy-binding {central_project_id} \ --member{source_writer_identity} \ --roleroles/logging.logWriter给中心 sink 的写者身份授权取出中心项目里那个 sink 的writerIdentitygcloud logging sinks describe {central_sink_name} \ --project{central_project_id} \ --formatvalue(writerIdentity)这里{central_sink_name}就是第二步在中心项目创建的 sink 名称。输出的{central_writer_identity}用于授予roles/logging.bucketWriter允许它把日志写入中心日志桶gcloud projects add-iam-policy-binding {central_project_id} \ --member{central_writer_identity} \ --roleroles/logging.bucketWriter可选在中心桶上创建自定义 Log Views所有源日志最终都落在同一个中心桶里。如果需要按日志 ID 或来源项目做分区、或按视图收敛访问权限可以在中心桶上创建自定义 Log Views按日志 ID 过滤gcloud logging views create {view_id} \ --bucket{bucket_id} \ --location{region} \ --project{central_project_id} \ --log-filterLOG_ID({log_id})按来源项目过滤{view_id}是新建视图的 IDgcloud logging views create {view_id} \ --bucket{bucket_id} \ --location{region} \ --project{central_project_id} \ --log-filterproject_id{source_project_id}验证确认日志已路由到中心桶在源项目写一条测试日志gcloud logging write {test_log_id} Test log entry for verification \ --severityWARNING \ --project{source_project_id}从中心日志桶读取这条测试日志。对区域性日志桶必须带--view参数默认的_Default视图只包含匹配默认过滤器的日志应查询中心桶的_AllLogs视图或你刚创建的自定义视图gcloud logging read logName:projects/{source_project_id}/logs/{test_log_id} \ --bucket{bucket_id} \ --location{region} \ --view_AllLogs \ --project{central_project_id}如果这条测试日志能从中中心桶读出说明源项目到中心桶的路由链路已经打通。日志没有出现在中心桶时文档把排查收敛为两个检查点按顺序走核对源资源上 sink 的过滤条件。两个已知的坑标准过滤表达式如logName:abc或logNameprojects/{project_id}/logs/abc在 log sink 里可能匹配失败文档要求精确匹配时始终使用LOG_ID(abc)形式。检查排除过滤器exclusion是否意外把目标日志丢弃了。核对并补授写者身份权限——文档标注这是最常见的原因。源 sink 的写者身份服务账号必须显式获得中心资源上的权限先用上面的gcloud logging sinks describe ... --formatvalue(writerIdentity)拿到身份再对 Cloud Logging 桶授予roles/logging.bucketWritergcloud projects add-iam-policy-binding {central_project_id} \ --member{writer_identity} \ --roleroles/logging.bucketWriter文档同时列出其他目的地类型的对应角色GCS 桶为roles/storage.objectCreator、Pub/Sub 主题为roles/pubsub.publisher、BigQuery 数据集为roles/bigquery.dataEditor本文的路由目标是 Cloud Logging 桶只需bucketWriter。完成路由之后文档的决策矩阵给出的延伸方向是中心桶启用了 Log Analytics可以通过 Observability Analytics 对集中存储的日志做统一的 SQL 查询如果不希望日志在中心桶和项目默认桶中重复存储这是集中存储方案的主要成本项可以回头在源 sink 上收紧排除规则但注意排除规则会直接丢弃匹配的日志属于不可逆操作。【免费下载链接】skillsAgent Skills for Google products and technologies项目地址: https://gitcode.com/GitHub_Trending/skills29/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/31 7:13:41

SolidWorks到Simscape模型错位原因与修复指南

1. 错位这个事,先别急着怪软件做机械臂仿真或者多体动力学分析的人,应该都有过这么一段痛苦经历:SolidWorks里模型明明装配得好好的,一到Simscape里就“原形毕露”。我拿自己手上那套六轴机械臂来说。在SolidWorks里所有的同心配合…

2026/11/9 12:01:41

DINOv3 卫星图像分析:零样本分类 81.1%,分割 75.0%

DINOv3 卫星图像分析:零样本分类 81.1%,分割 75.0% 【免费下载链接】dinov3 Reference PyTorch implementation and models for DINOv3 项目地址: https://gitcode.com/GitHub_Trending/di/dinov3 DINOv3 是 Meta AI 推出的自监督视觉基础模型&am…

2026/11/15 5:13:12

洪泽区电工证培训时间怎么安排能顺利拿电子证书

洪泽区电工证培训时间怎么安排能顺利拿电子证书 你学历不高怕报不上名?别急,现在只要你是特种作业相关岗位,不管是工地电工还是施工现场的电气负责人,都能报考电工证。特别是在洪泽区,培训时间安排灵活,考试流程也相对规范,只要掌握好备考节奏,拿到电…

2026/11/15 5:13:12

深圳中级电工证有效吗真实经历告诉你答案

深圳中级电工证有效吗真实经历告诉你答案 学历不高怕报不上名?别急,深圳中级电工证有效吗这个问题,很多同行朋友都问过,我也是从零基础起步,一步步摸爬滚打才拿到的证,今天就结合我自己的 真实经历 ,给大家说说这事。…

2026/11/15 5:13:12

华新镇考电工证怎么考?2026河南最新政策全解析

华新镇考电工证怎么考?2026河南最新政策全解析 你现在正坐在电脑前,手里攥着华新镇电工证的报名资料,心里却打鼓:这证到底该怎么考?有没有什么避坑经验?2026河南最新政策又有哪些变化?这些都直接关系到你能不能顺利上岗,找到心仪的工作。…

2026/11/15 5:13:12

荣县哪里考电工证多少钱?外省证书能转吗?这几点必须知道

荣县哪里考电工证多少钱?外省证书能转吗?这几点必须知道 之前考的证在外省能不能转过来?这几乎是每个想考电工证的学员都会问的问题。特别是在荣县,很多人因为工作变动或者长期在外,手里拿着的电工证是外地的,心里总有些不踏实。而且, 多少钱…

2026/11/15 5:13:12

大学电工证难度大不大郑州报考避坑指南

大学电工证难度大不大郑州报考避坑指南 怕考不过白交培训费?很多人第一次听说要考大学电工证时,心里直打鼓,觉得这玩意儿听起来就挺难的,尤其是对于那些没有相关经验的人来说。其实,只要方法得当、准备充分,大学电工证并不是那么遥不可及。特别是如果你…

2026/11/15 5:08:12

考电工证需要学会什么 保姆级教程帮你避开培训坑

考电工证需要学会什么 保姆级教程帮你避开培训坑 你是不是也担心 考电工证需要学会什么 ,怕学不会考不过,白交了培训费?别急,这篇文章就是给你一个 保姆级教程 ,从零开始讲清楚流程、学什么、怎么备考,帮你把钱花得值,把证考得稳。…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/15 4:46:37

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/15 2:06:31

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑