配置日志存储桶

本文档介绍了如何使用 Trusted Cloud 控制台、Google Cloud CLILogging API 创建和管理 Cloud Logging 存储桶。它还提供了有关如何在Trusted Cloud 项目级创建和管理日志日志存储桶的说明。您无法在文件夹级或组织级创建日志存储桶;不过,Cloud Logging 会自动在文件夹级和组织级为您创建 _Default_Required 日志存储桶。

如需了解存储桶的概念性概览,请参阅路由和存储概览:日志存储桶

本文档未介绍如何创建使用客户管理的加密密钥 (CMEK) 的日志存储桶。如果您对该主题感兴趣,请参阅为日志存储配置 CMEK

准备工作

如需开始使用存储桶,请执行以下操作:

创建存储桶

您最多可以为每个Trusted Cloud 项目创建 100 个存储桶。

如需为您的 Trusted Cloud 项目创建用户定义的日志存储桶,请执行以下操作:

Trusted Cloud 控制台

如需在 Trusted Cloud 项目中创建日志存储桶,请执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 点击创建日志存储桶

  3. 输入存储桶的名称说明

  4. 可选:如需为日志选择存储区域,请点击选择日志存储桶区域菜单,然后选择一个区域。如果您未选择任何区域,系统会使用 global 区域,这意味着日志可能实际位于任何支持的区域。

  5. 点击创建存储分区

    这些步骤可能需要一些时间才能完成。

gcloud

如需创建日志存储桶,请运行 gcloud logging buckets create 命令:

gcloud logging buckets create BUCKET_ID --location=LOCATION

例如,如果要在 global 区域中创建具有 BUCKET_ID my-bucket 的存储桶,您的命令将如下所示:

gcloud logging buckets create my-bucket --location global --description "My first bucket"

REST

如需创建存储桶,请使用 projects.locations.buckets.create 方法。请按以下步骤准备方法的参数:

  1. parent 参数设置为要在其中创建存储桶的资源:projects/PROJECT_ID/locations/LOCATION

    变量 LOCATION 是指要在其中存储日志的区域

    例如,如果要在 global 区域中为项目 my-project 创建存储桶,您的 parent 参数将如下所示:projects/my-project/locations/global

  2. 设置 bucketId 参数;例如 my-bucket

  3. 调用同步方法 projects.locations.buckets.create 以创建存储桶。

创建存储桶后,请创建一个接收器以将日志条目路由到您的存储桶,并配置日志视图以控制哪些用户可以访问新存储桶中的日志,以及他们可以访问哪些日志。

管理存储桶

本部分介绍如何使用 Google Cloud CLI 或 Trusted Cloud 控制台管理日志存储桶。

更新存储桶

如需更新存储桶的属性(例如说明),请执行以下操作:

Trusted Cloud 控制台

如需更新存储桶的属性,请执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 找到要更新的存储桶,然后点击 更多

  3. 选择修改存储桶

  4. 根据需要修改存储桶。

  5. 点击更新存储桶

gcloud

如需更新存储桶的属性,请运行 gcloud logging buckets update 命令:

gcloud logging buckets update BUCKET_ID --location=LOCATION UPDATED_ATTRIBUTES

例如:

gcloud logging buckets update my-bucket --location=global --description "Updated description"

REST

如需更新存储桶的属性,请使用 Logging API 中的 projects.locations.buckets.patch

锁定存储桶

当您针对更新锁定存储桶时,您也会锁定存储桶的保留政策。保留政策锁定后,您将无法删除存储桶,除非存储桶中的所有日志条目都已达到存储桶的保留期限。 如果您想防止包含锁定日志存储桶的项目被意外删除,请为该项目添加安全锁。如需了解详情,请参阅使用安全锁保护项目

如需阻止任何人更新或删除日志存储桶,请锁定该存储桶。如需锁定存储桶,请执行以下操作:

Trusted Cloud 控制台

Trusted Cloud 控制台不支持锁定日志存储桶。

gcloud

如需锁定您的存储桶,请运行带有 --locked 标志的 gcloud logging buckets update 命令:

gcloud logging buckets update BUCKET_ID --location=LOCATION --locked

例如:

gcloud logging buckets update my-bucket --location=global --locked

REST

如需锁定存储桶的属性,请使用 Logging API 中的 projects.locations.buckets.patch。请将 locked 参数设置为 true

列出存储桶

如需列出与 Trusted Cloud 项目关联的日志存储桶,并查看诸如保留设置等详细信息,请执行以下操作:

Trusted Cloud 控制台

在 Trusted Cloud 控制台中,前往日志存储页面:

前往日志存储

如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

一个名为日志存储桶的表会列出与当前Trusted Cloud 项目关联的存储桶。

该表列出了每个日志存储桶的以下特性:

  • 名称:日志存储桶的名称。
  • 说明:存储桶的说明。
  • 保留期限:Cloud Logging 将对存储桶数据进行存储的天数。
  • 区域:用于对存储桶数据的地理位置进行存储。
  • 状态:存储桶处于锁定状态还是解锁状态。

如果某个存储桶正在等待 Cloud Logging 删除,其对应的表条目会使用 警告符号进行注解。

gcloud

运行 gcloud logging buckets list 命令:

gcloud logging buckets list

您会看到日志存储桶的以下特性:

  • LOCATION:用于存储存储桶数据的区域
  • BUCKET_ID:日志存储桶的名称。
  • RETENTION_DAYS:Cloud Logging 将存储桶数据存储的天数。
  • LIFECYCLE_STATE:指示一个存储桶是否在等待 Cloud Logging 删除
  • LOCKED:存储桶处于锁定状态还是解锁状态。
  • CREATE_TIME:指示存储桶创建时间的时间戳。
  • UPDATE_TIME:指示上次修改存储桶的时间戳。

您还可以仅查看一个存储分区的特性。例如,如需查看 global 区域中 _Default 日志存储桶的详细信息,请运行 gcloud logging buckets describe 命令:

gcloud logging buckets describe _Default --location=global

REST

如需列出与 Trusted Cloud 项目关联的日志存储桶,请使用 Logging API 中的 projects.locations.buckets.list

查看存储桶的详细信息

如需查看单个日志存储桶的详细信息,请执行以下操作:

Trusted Cloud 控制台

在 Trusted Cloud 控制台中,前往日志存储页面:

前往日志存储

如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

对日志存储桶点击 更多,然后选择查看存储桶详情

对话框会列出日志存储桶的以下属性:

  • 名称:日志存储桶的名称。
  • 说明:日志存储桶的说明。
  • 保留期限:Cloud Logging 将对存储桶数据进行存储的天数。
  • 区域:用于对存储桶数据的地理位置进行存储。

gcloud

运行 gcloud logging buckets describe 命令。

例如,以下命令会报告 _Default 存储桶的详细信息:

gcloud logging buckets describe _Default --location=global

您会看到日志存储桶的以下属性:

  • createTime:指示存储桶创建时间的时间戳。
  • description:日志存储桶的说明。
  • lifecycleState:指示一个存储桶是否在等待 Cloud Logging 删除
  • name:日志存储桶的名称。
  • retentionDays:Cloud Logging 将存储桶数据存储的天数。
  • updateTime:指示上次修改存储桶的时间戳。

REST

如需查看单个日志存储桶的详细信息,请使用 Logging API 中的 projects.locations.buckets.get

删除存储桶

您可以删除满足以下条件之一的日志存储桶:

  • 日志存储桶处于解锁状态。
  • 日志存储桶处于锁定状态,不过日志存储桶中的所有日志条目都已达到存储桶的保留期限。

如果日志存储桶存储的部分日志条目尚未达到存储桶的保留期限,则您无法删除针对更新锁定的日志存储桶。

发出删除命令后,日志存储桶会转换为 DELETE_REQUESTED 状态,并在该状态下保持 7 天。在此时间段内,Logging 会继续将日志路由到日志存储桶。您可以通过删除或修改将日志条目路由到存储桶的日志接收器来停止将日志路由到存储桶。

您无法创建与处于 DELETE_REQUESTED 状态的日志存储桶同名的新日志存储桶。

如需删除日志存储桶,请执行以下操作:

Trusted Cloud 控制台

如需删除日志存储桶,请执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 找到要删除的存储桶,然后点击 更多

  3. 选择删除存储分区

  4. 在确认面板上,点击删除

  5. 日志存储页面上,会有一个指示符显示该存储桶正在等待删除。该存储桶(包括其中的所有日志)将在 7 天后删除。

gcloud

如需删除日志存储桶,请运行 gcloud logging buckets delete 命令:

gcloud logging buckets delete BUCKET_ID --location=LOCATION

如果日志存储桶具有关联的 BigQuery 数据集,则无法删除该存储桶:

REST

如需删除存储桶,请使用 Logging API 中的 projects.locations.buckets.delete

恢复已删除的存储桶

您可以恢复或取消删除处于待删除状态的日志存储桶。如需恢复日志存储桶,请执行以下操作:

Trusted Cloud 控制台

如需恢复处于待删除状态的日志存储桶,请执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 找到要恢复的存储桶,点击 更多,然后选择恢复已删除的存储桶

  3. 在确认面板上,点击恢复

  4. 日志存储页面上,待删除指示器会从您的日志存储桶移除。

gcloud

如需恢复处于待删除状态的日志存储桶,请运行 gcloud logging buckets undelete 命令:

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

REST

如需恢复处于待删除状态的存储桶,请使用 Logging API 中的 projects.locations.buckets.undelete

写入存储桶

您无法直接将日志写入日志存储桶,而是要将日志写入Trusted Cloud 资源: Trusted Cloud 项目、文件夹或组织。然后,父级资源中的接收器会将日志路由到目标位置,包括日志存储桶。当日志与接收器的过滤条件匹配并且接收器有权将日志路由到日志存储桶时,接收器会将日志路由到日志存储桶目标位置。

从存储桶读取

每个日志存储桶都包含一组日志视图。如需从日志存储桶读取日志,您需要能够访问日志存储桶中的日志视图。借助日志视图,您可以仅向用户授予对日志存储桶中存储的部分日志的访问权限。如需了解如何配置日志视图以及如何授予对特定日志视图的访问权限,请参阅在日志存储桶中配置日志视图

如需从日志存储桶读取日志,请执行以下操作:

Trusted Cloud 控制台

  1. 在 Trusted Cloud 控制台中,转到 Logs Explorer 页面:

    前往 Logs Explorer

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 如需自定义在 Logs Explorer 中显示的日志,请点击优化范围,然后选择一个选项。例如,您可以查看存储在项目中的日志或是按日志视图查看日志。

  3. 点击应用查询结果窗格会重新加载与您选择的选项匹配的日志。

如需了解详情,请参阅 Logs Explore 概览:优化范围

gcloud

如需从日志存储桶读取日志,请使用 gcloud logging read 命令并添加 LOG_FILTER 以选择数据:

gcloud logging read LOG_FILTER --bucket=BUCKET_ID --location=LOCATION --view=LOG_VIEW_ID

REST

如需从日志存储桶读取日志,请使用 entries.list 方法。设置 resourceNames 以指定相应的存储桶和日志视图,并设置 filter 以选择数据。

如需详细了解过滤语法,请参阅 Logging 查询语言

排查常见问题

如果您在使用日志存储桶时遇到问题,请参阅以下问题排查步骤以及常见问题解答。

为什么我无法删除此存储桶?

如果要尝试删除存储桶,请执行以下操作:

  • 确保您拥有删除存储桶存储桶的适当权限。如需查看所需权限的列表,请参阅使用 IAM 进行访问权限控制

  • 通过列出存储桶的特性来确定存储桶是否已锁定。如果存储桶已被锁定,请检查存储桶的保留期限。在存储桶中的所有日志都达到存储桶的保留期限之前,您无法删除锁定的存储桶。

哪些服务账号会将日志路由到我的存储桶?

如需确定是否有任何服务账号具有将日志路由到存储桶的 IAM 权限,请执行以下操作:

  1. 在 Trusted Cloud 控制台中,前往 IAM 页面:

    前往 IAM

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

  2. 权限标签页中,按角色进行查看。您会看到一个表,其中包含与您的Trusted Cloud 项目关联的所有 IAM 角色和主账号。

  3. 在该表的过滤条件文本框中,输入 Logs Bucket Writer

    您会看到具有 Logs Bucket Writer 角色的所有主账号。如果主账号是服务账号,则其 ID 包含字符串 s3ns-system.iam.gserviceaccount.com

  4. 可选:如果您要移除能够将日志路由到您的 Trusted Cloud 项目的服务账号,请选中该服务账号的复选框,然后点击移除

为什么即使我从 _Default 接收器中排除了某个 Trusted Cloud 项目的日志,但我还是会看到它们?

您正在查看集中式 Trusted Cloud 项目的日志存储桶中的日志,其中汇总了整个组织中的日志。

如果您使用 Logs Explorer 访问这些日志,并看到已从 _Default 接收器中排除的日志,则您的视图可能已设置为Trusted Cloud 项目级。

如需解决此问题,请在优化范围菜单中选择日志视图,然后选择与Trusted Cloud 项目的 _Default 存储桶关联的日志视图。您应该不会再看到已排除的日志。

后续步骤

如需了解日志存储桶 API 方法,请参阅 LogBucket 参考文档。

如果您管理的是组织或文件夹,则可以指定子资源的 _Default_Required 日志存储桶的位置。您还可以配置日志存储桶是否使用 CMEK 以及 _Default 日志接收器的行为。如需了解详情,请参阅为组织和文件夹配置默认设置

如需了解如何使用日志存储桶解决常见用例,请参阅以下主题: