统一管理多个项目Logging

作者:MeshCloud脉时云公有云架构师王明立

背景

在使用谷歌云可能会使用多个项目,每个项目都会产生日志,查询日志需要登录每个Project查看,非常不便于查询及管理,需求单独开一个项目管理其他多个项目的日志,不同项目的同一级别的日志传输到相同的桶,然后人员只能查看自己负责的项目的日,便于管理及查询分析。

架构图

统一管理多个项目Logging

技术简介

如需管理 Google Cloud 组织的日志,您可以将整个组织的日志汇总到一个 Cloud Logging 存储桶中。

本文档通过汇总组织的审核日志的示例介绍了此过程。

此过程包括以下步骤:

  1. 创建 Cloud Logging 存储桶以存储汇总的日志。
  2. 在组织级层创建接收器,以将日志路由到新的存储桶。
  3. 配置对新存储桶的读取权限。
  4. 在“日志浏览器”页面中搜索日志。

准备工作

要完成本指南中的步骤,您需要了解以下内容:

  • 您要将日志汇总到其中的 Google Cloud 项目。
  • 要在其中汇总日志的 Logging 存储桶的名称和位置。
  • 您要包含的日志。
  • 路由这些日志的接收器的名称。
  • 项目的组织编号。
  • 日志视图的数据视图 ID。

操作步骤

在管理项目中分别创建用于存储不同项目日志级别的桶,根据需求配置生命周期时间。

1.创建logbucket,配置保留期,默认30天。

统一管理多个项目Logging
统一管理多个项目Logging

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
统一管理多个项目Logging

3.配置权限

查看在每个项目中配置的Log Router,复制对应的service account,转到管理的项目对应的IAM,给service account 添加Logs Bucket Writer权限。

统一管理多个项目Logging
统一管理多个项目Logging

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
  • 点击保存以添加该条件。
统一管理多个项目Logging

测试验证

登录授予权限的账号查看,可以看到对应项目的日志。

统一管理多个项目Logging

发表评论

您的电子邮箱地址不会被公开。