管理日志存储桶

本页面介绍如何创建和管理日志存储桶。

准备工作

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

  • 确保您已为 Google Cloud 项目启用结算功能。
  • 验证您和您的 Cloud 项目成员有权创建和管理您的 Cloud 项目日志存储桶。如需了解详情,请参阅本页面上的访问权限控制

管理存储桶

本部分介绍如何使用 gcloud 命令行工具或 Google Cloud Console 管理日志存储桶。

创建日志存储桶

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

如需为您的 Cloud 项目创建用户定义的日志存储桶,请完成以下步骤:

控制台

如需在您的 Cloud 项目中创建日志存储桶,请完成以下步骤:

  1. 从“日志记录”菜单中选择日志存储

    转到“日志存储”

  2. 点击创建日志存储桶

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

  4. (可选)如需设置存储桶区域,请点击选择日志存储桶区域下拉菜单,然后选择想要存储桶所在的区域。如果您未选择区域,则此值会设置为 global,这意味着日志可以以物理方式存储在任何区域中。

  5. (可选)如需为存储桶中的日志设置自定义保留期限,请点击下一步

    保留字段中,输入您希望 Cloud Logging 保留日志的天数(介于 1 天到 3650 天之间)。如果您不自定义保留期限,则默认值为 30 days

    您也可以稍后配置自定义保留期限

  6. 点击创建存储桶。您的新存储桶将显示在日志存储桶列表中。

gcloud

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

gcloud logging buckets create BUCKET_ID --location=LOCATION OPTIONAL_FLAGS

例如:

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

创建存储桶后,您可以配置日志视图以控制哪些人可以访问新存储桶中的日志,以及可以访问哪些日志。

更新日志存储桶

如需更新存储桶的特性,请完成以下步骤:

控制台

如需更新存储桶的特性,请完成以下步骤:

  1. 从“日志记录”菜单中选择日志存储

    转到“日志存储”

  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"

锁定日志存储桶

当您根据更新锁定存储桶时,其中包括锁定存储桶的保留政策。保留政策锁定后,您将无法删除存储桶,除非存储桶中的所有日志都已达到存储桶的保留期限。

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

控制台

Cloud Console 不支持锁定日志存储桶。

gcloud

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

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

例如:

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

列出日志存储桶

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

控制台

转到日志存储页面:

转到“日志存储”

您会看到一个日志存储桶表,其中列出了与当前 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:指示上次修改存储桶的时间戳。

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

gcloud logging buckets describe _Default --location=global

查看日志存储桶详情

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

控制台

转到日志存储页面:

转到“日志存储”

在日志存储桶上,点击更多 > 查看存储桶详情

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

  • 名称:创建存储桶时,为存储桶指定的名称。
  • 说明:创建存储桶时为其分配的说明。
  • 保留期限:Cloud Logging 将对存储桶数据进行存储的天数。
  • 区域:用于对存储桶数据的地理位置进行存储。

gcloud

运行 gcloud logging buckets describe 命令:

gcloud logging buckets describe _Default --location=global

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

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

删除日志存储桶

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

控制台

如需删除日志存储桶,请完成以下步骤:

  1. 从“日志记录”菜单中选择日志存储

    转到“日志存储”

  2. 找到要删除的存储分区,然后点击更多 ()。

  3. 选择删除存储分区

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

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

gcloud

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

gcloud logging buckets delete BUCKET_ID --location=LOCATION

已删除的存储分区会以待处理状态保留 7 天,在此期间 Logging 会继续将日志路由到该存储分区。您可以通过以下方法停止将日志路由到已删除的存储分区:删除将该存储分区作为目标位置的日志接收器,或者修改这些接收器的过滤条件。

恢复已删除的日志存储桶

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

控制台

如需恢复处于待删除状态的日志存储桶,请完成以下步骤:

  1. 从“日志记录”菜单中选择日志存储

    转到“日志存储”

  2. 找到要恢复的存储分区,然后点击更多 ()。

  3. 选择恢复已删除的存储分区

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

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

gcloud

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

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

将日志写入日志存储桶

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

从日志存储桶读取日志

每个日志存储桶都包含一组日志视图。如需从日志存储桶读取日志,您需要能够访问日志存储桶中的日志视图。如需详细了解日志视图,请参阅管理日志视图

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

控制台

您可以通过优化范围选项优化日志浏览器中显示的日志的范围。您可以只搜索当前 Cloud 项目内的日志,也可以在一个或多个存储视图中搜索日志。如需优化日志浏览器的范围,请执行以下操作:

  1. 从“日志记录”菜单中选择日志浏览器

    转到日志浏览器

  2. 选择优化范围

  3. 优化范围对话框上,选择范围选项。

  4. 选择按存储确定范围,然后选择一个或多个存储桶。

    该对话框会列出满足以下条件的存储视图:

    • 您有权访问存储视图。
    • 这些日志存储桶属于所选 Cloud 项目,或者所选 Cloud 项目先前已路由到了日志存储桶。

gcloud

如需从日志存储桶中读取日志,请运行 gcloud logging read 命令:

gcloud logging read --bucket=BUCKET_ID --location=LOCATION --view=VIEW_ID

配置自定义保留期限

创建日志存储桶时,您可以选择自定义 Cloud Logging 存储存储桶日志的时间段。您可以为任何用户定义的日志存储桶以及 _Default 日志存储桶配置保留期限。

如需更新日志存储桶的保留期限,请执行以下操作:

控制台

如需更新日志存储桶的保留期限,请完成以下步骤:

  1. 从“日志记录”菜单中选择日志存储

    转到“日志存储”

  2. 找到要更新的存储分区,然后点击更多 ()。

  3. 选择修改存储桶

  4. 保留字段中,输入您希望 Cloud Logging 保留日志的天数(介于 1 天到 3650 天之间)。

  5. 点击更新存储桶。新的保留时长会显示在日志存储桶列表中。

gcloud

如需更新 _Default 日志存储桶的保留期限,请在为 RETENTION_DAYS 设置值后运行以下 gcloud 命令行工具命令:

gcloud logging buckets update _Default --location=global --retention-days=RETENTION_DAYS

例如,如需在 _Default 存储桶中保留日志一年,请运行以下命令:

gcloud logging buckets update _Default --location=global --retention-days=365

访问权限控制机制

Identity and Access Management 角色和权限管理对 Logging 数据的访问权限。以下简要介绍了 Cloud 项目成员访问日志存储桶所需的常见角色和权限。

Cloud Logging 建议您在配置 Identity and Access Management 角色和权限时限制特权。如需了解详情,请参阅安全使用 IAM

日志存储桶活动 用户访问权限 IAM 权限 IAM 角色和建议的访问权限控制设置
管理日志存储桶配置 谁可以创建、列出、更新、删除、取消删除和查看日志存储桶的详细信息。 logging.buckets.{create,list,get,update,delete,undelete} Logging Configuration WriterLogging Admin 角色可提供这些权限。您还可以创建具有更多有限权限的自定义角色。
将日志条目写入日志存储桶 谁可以将日志条目写入特定日志存储桶。 logging.buckets.write

如果日志接收器将日志条目路由到同一 Cloud 项目中的日志存储桶,则日志接收器不需要权限。

如果日志接收器将日志路由到不同 Cloud 项目中的日志存储桶,则您必须向日志接收器授予 logging.buckets.write 权限。使用 Logs Bucket Writer 角色在包含日志存储桶的 Cloud 项目中授予此权限。您应使用与特定日志存储桶匹配的 IAM 条件为日志接收器的服务帐号授予此角色。

如需查看有关使用 gcloud 工具为日志接收器设置 IAM 条件的示例,请参阅将一个项目中的日志路由到其他项目中的存储桶

从日志存储桶读取日志条目 谁可以使用日志视图下载日志以及从特定日志存储桶中读取日志、资源键和值。 logging.logEntries.download
logging.views.{access,listLogs,listResourceKeys,listResourceValues}
使用 Logs View Accessor 角色可授予此权限。您应使用与特定日志视图匹配的 IAM 条件授予此角色。

如需了解如何在日志视图上设置此 IAM 条件,请参阅将用户添加到日志视图中

如需查看 Logging 访问权限控制的完整列表,请参阅访问权限控制

问题排查和常见问题

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

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

首先,确保您拥有正确的权限来删除存储桶。

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

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

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

如果您正在集中式 Cloud 项目中访问日志,并看到已从 _Default 接收器中排除的日志,则您可能是在以下条件之一下查看日志:

  • 使用旧版日志查看器查看日志,这不支持查看集中式日志。

    如需排查此问题,请改为使用日志浏览器。

  • 优化范围面板中选择了按 Cloud 项目确定范围的情况下,使用日志浏览器查看日志,无论您将日志存储在何处,该面板都会显示项目生成的日志。

    如需排查此问题,请改为在 Logs Explorer 的优化范围面板中选择按存储划分的范围,然后选择 Cloud 项目中的 _Default 存储桶。您应该不会再看到已排除的日志。

为什么我无法为日志存储桶创建基于日志的指标?

基于日志的指标仅适用于单个 Google Cloud 项目。不能为日志存储桶或其他 Google Cloud 资源(例如 Cloud Billing 帐号或组织)创建这些资源。

后续步骤

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

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