作者:MeshCloud脉时云公有云架构师王明立
背景
在使用谷歌云可能会使用多个项目,每个项目都会产生日志,查询日志需要登录每个Project查看,非常不便于查询及管理,需求单独开一个项目管理其他多个项目的日志,不同项目的同一级别的日志传输到相同的桶,然后人员只能查看自己负责的项目的日,便于管理及查询分析。
架构图
技术简介
如需管理 Google Cloud 组织的日志,您可以将整个组织的日志汇总到一个 Cloud Logging 存储桶中。
本文档通过汇总组织的审核日志的示例介绍了此过程。
此过程包括以下步骤:
- 创建 Cloud Logging 存储桶以存储汇总的日志。
- 在组织级层创建接收器,以将日志路由到新的存储桶。
- 配置对新存储桶的读取权限。
- 在“日志浏览器”页面中搜索日志。
准备工作
要完成本指南中的步骤,您需要了解以下内容:
- 您要将日志汇总到其中的 Google Cloud 项目。
- 要在其中汇总日志的 Logging 存储桶的名称和位置。
- 您要包含的日志。
- 路由这些日志的接收器的名称。
- 项目的组织编号。
- 日志视图的数据视图 ID。
操作步骤
在管理项目中分别创建用于存储不同项目日志级别的桶,根据需求配置生命周期时间。
1.创建logbucket,配置保留期,默认30天。
2.配置LogRouter
在需要收集日志的组织或者级别配置Log Router
将日志条目路由到 logging存储桶,接收器目标位置如下所示:
logging.googleapis.com/projects/DESTINATION_PROJECT/locations/global/buckets/BUCKET_NAME |
日志包含:选择组织和包含子项目提取的日志
日志级别:根据区分不同级别的日志字段例如,severity=INFO,区分不同的日志级别,分别存储到不同的logging bucket。
例如:resource.type=”http_load_balancer”severity=INFO |
3.配置权限
查看在每个项目中配置的Log Router,复制对应的service account,转到管理的项目对应的IAM,给service account 添加Logs Bucket Writer权限。
4.人员权限控制
可以通过创建基于项目的日志视图,再通过IAM授权不同的用户对于不同视图的访问权限,即可实现不同用户访问桶中不同的日志。
1.创建日志视图
gcloud logging views create VIEW_ID –bucket=BUCKET_NAME –location=LOCATION –log-filter=’source(“projects/spoton-project”)’ |
在上一个命令中,VIEW_ID 变量是日志视图的标识符。使用描述性名称可以轻松识别日志视图。此外,请确保将 LOCATION 变量的值设置为 BUCKET_NAME 变量指定的存储桶的位置。例如,如果存储桶的位置是 us-central1,则上一条命令必须包含语句 –location=us-central1。–log-filter配置为source(“projects/PROJECT-ID”)。
重复上述命令,创建每个项目的日志视图。
2.授予权限
在用于创建存储桶的项目的 Google Cloud 控制台中,转到 IAM页面。
进入 IAM页面
- 点击 person_add 授予访问权限。
- 在新的主帐号字段中,添加用户的电子邮件帐号。
- 在选择角色下拉菜单中,选择 Logs Views Accessor。
- 此角色为用户提供所有视图的读取权限。
根据资源名称添加条件
- 点击添加 IAM条件。
- 输入条件的标题和说明。
- 在条件类型下拉菜单中,选择资源 > 名称。
- 在运算符下拉菜单中,选择 是。
- 在值字段中,输入日志视图的 ID,包括视图的完整路径。例如:projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
- 点击保存以添加该条件。
测试验证
登录授予权限的账号查看,可以看到对应项目的日志。