在日志存储分区中存储组织的日志

本页面介绍如何将日志存储到单个日志存储分区中。管理日志的一种常用方法是将整个组织的日志聚合到一个日志存储分区中。本指南以聚合所有审核日志为例介绍了此过程。

此过程包括以下步骤:

  1. 创建日志存储分区以存储聚合日志。

  2. 在组织级层创建接收器,以将日志路由到新的日志存储分区。

  3. 配置对新日志存储分区的读取权限。

  4. 在“日志浏览器”页面中搜索日志。

准备工作

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

  • 您要将日志聚合到哪个项目中?在本示例中,我们使用名为 logs-test-project 的项目。

  • 日志聚合的目标日志存储分区的名称和位置是什么? 在此示例中,存储分区名称为 all-audit-logs-bucket,位置为 global

  • 您想要包含哪些日志?在本示例中,包含所有审核日志 logName:cloudaudit.googleapis.com

  • 收集这些日志的接收器的名称是什么?在本示例中,接收器名称为 all-audit-logs-sink

  • 组织编号是什么?在本示例中,组织编号是 12345

创建日志存储分区

日志存储分区存储从其他项目、文件夹或组织路由的日志。如需了解详情,请参阅日志存储分区

要在用于聚合日志的项目中创建存储分区,请完成以下步骤:

  1. 在用来聚合日志的项目中打开 Google Cloud Console。

    转到 Google Cloud Console

  2. Cloud Shell 终端中,运行以下命令以创建存储分区,将粗体部分替换为您自己的信息:

     gcloud beta logging buckets create all-audit-logs-bucket \
       --location=global \
       --project=logs-test-project
    
  3. 验证存储分区是否已创建:

    gcloud beta logging buckets list --project=logs-test-project
    
  4. (可选)设置存储分区中日志的保留期限。本示例将存储分区中存储的日志的保留期限延长至 365 天:

    gcloud beta logging buckets update all-audit-logs-bucket --location=global --project=logs-test-project --retention-days=365
    

创建日志接收器

您可以通过创建日志接收器将日志路由到日志存储分区。接收器包含日志过滤条件(用于选择要通过此接收器导出的日志条目)以及目标位置。在本指南中,导出目标位置是我们的存储分区 all-audit-logs-bucket。

在组织级层设置接收器

要创建接收器,请完成以下步骤。

  1. 运行以下命令,用您自己的信息替换粗体部分:

    gcloud beta logging sinks create all-audit-logs-sink \
    logging.googleapis.com/projects/logs-test-project/locations/global/buckets/all-audit-logs-bucket \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="All audit logs from my org log sink" \
      --organization=12345 \
      --include-children
    

    --include-children 标志非常重要,它会允许包含来自组织中所有项目的日志。如需了解详情,请参阅汇总接收器指南。

  2. 验证接收器已经创建:

    gcloud logging sinks list --organization=12345
    
  3. 获取服务帐号的名称:

    gcloud logging sinks describe all-audit-logs-sink --organization=12345
    

    输出类似于以下内容:

    writerIdentity: serviceAccount:p1234567890-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  4. 复制 writerIdentityserviceAccount: 开始的整个字符串。

设置接收器的权限

创建接收器后,您必须授予接收器对存储分区的写入权限。您可以通过 Cloud Console 执行此操作,也可以手动修改 Identity and Access Management (IAM) 政策,如管理日志存储分区中所述。

在本指南中,我们使用以下步骤通过 Cloud Console 设置权限。

  1. 在 Cloud Console 中,转到 IAM 页面。

    转到 IAM 页面

  2. 点击 添加

  3. 新成员字段中,添加服务帐号(不带 serviceAccount: 前缀)。

  4. 选择角色下拉菜单中,选择 Logs Buckets Writer

  5. 点击保存

生成日志以协助接收器验证

如果您的接收器在使用审核日志,验证接收器是否正确路由日志的一种方法是启动另一个项目中的虚拟机,然后关闭该虚拟机,并查看该事件是否显示在日志中。

如果您的组织中已有许多项目,则您可能已经拥有足够的审核日志流量,无需执行此步骤。

配置对新日志存储分区的读取权限

现在,您已将日志从整个组织路由到存储分区,接下来您就可以在所有这些日志中进行搜索。您需要授予读取权限才能查看新存储分区中的视图(尤其是 logs views accessor 角色)。

在本指南中,我们使用以下步骤通过 Cloud Console 设置权限。

  1. 在 Cloud Console 中,在用于聚合日志的项目下,转到 IAM 页面。

    转到 IAM 页面

  2. 点击 添加

  3. 新成员字段中,添加您的电子邮件帐号。

  4. 选择角色下拉菜单中,选择 Logs Views Accessor

    此角色为用户提供所有视图的读取权限。如需限制用户对特定存储分区的访问权限,请根据资源名称添加条件。

    1. 点击添加条件

    2. 输入条件的标题说明

    3. 条件类型下拉菜单中,选择资源 > 名称

    4. 运算符下拉菜单中,选择结尾为

    5. 字段中,输入存储分区 ID 的位置和存储分区名称部分。

      例如:

      locations/global/buckets/all-audit-logs-bucket
      
    6. 点击保存以添加该条件。

  5. 点击保存以设置权限。

在“日志浏览器”页面中搜索日志

在上一部分中设置权限后,转到 Cloud Console 并完成以下步骤。

  1. 从用于聚合日志的项目的 Logging 菜单中,选择日志浏览器

    转到日志浏览器

  2. 选择优化范围

  3. 优化范围面板上,选择按存储确定范围

  1. 选择 all-audit-logs-bucket。

  2. 点击应用

  3. 日志浏览器会刷新,以显示存储分区中的日志。

    如需了解如何使用日志浏览器,请参阅使用日志浏览器