配置和管理日志存储桶

本文档介绍如何使用 Google Cloud Console、Google Cloud CLILogging API 创建和管理 Cloud Logging 存储分区。

本文档提供了在 Cloud 项目级创建和管理存储分区的说明,但您还可以在文件夹级和组织级创建存储分区。

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

准备工作

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

  • 确保您已为 Google Cloud 项目启用结算功能。

  • 验证您有权创建和管理 Cloud 项目存储桶。如需查看访问存储在存储桶中的数据所需的权限和角色列表,请参阅访问权限控制指南

  • 了解 LogBucket 格式要求,包括可以存储日志的受支持的地区

  • 请考虑设置默认资源位置,以便为组织中的 _Required_Default 存储分区应用默认存储区域。

创建存储桶

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

如需为您的 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

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

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

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

API

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

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

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

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

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

  3. 调用 projects.locations.buckets.create 以创建存储分区。

创建存储分区后,您可以配置日志视图以控制哪些人可以访问新存储分区中的日志以及他们可访问哪些日志。您还可以更新存储分区以配置自定义保留受限字段CMEK 设置

跟踪日志提取

Google Cloud Console 中的日志存储页面可跟踪日志存储分区提取的日志数据量。

如需跟踪 Cloud 项目的日志数据提取,请转到控制台中的日志存储页面:

转到“日志存储”

日志存储页面会显示 Cloud 项目的统计信息摘要:

摘要统计信息报告记录当前所选项目的数据提取量。

系统会报告以下统计信息:

  • 当前总数据量:您的 Cloud 项目从当前日历月第一天提取的日志数据量。

  • 上月数量:您的 Cloud 项目在上个日历月中提取的日志数据量。

  • 预计 EOM 数量:根据当前使用情况,Cloud 项目在当前日历月结束时将提取的估算日志数据量。

日志提取量统计信息不包含 _Required 存储桶。无法排除或停用该存储桶中的日志。

Google Cloud Console 中的日志路由器页面为您提供了多种工具,您可以使用这些工具来最大限度减少超出每月配额的日志提取或存储费用。您可以执行以下操作:

  • 在存储桶级别停用日志注入。
  • 不要将某些日志条目注入 Logging。

如需了解详情,请参阅管理接收器

管理存储桶

本部分介绍如何使用 Google Cloud CLI 或 Google Cloud Console 管理日志存储分区。

更新存储桶

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

控制台

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

  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"

API

要更新存储分区的特性,请使用 Logging API 中的 projects.locations.buckets.patch

锁定存储桶

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

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

控制台

Google 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

API

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

列出存储桶

如需列出与 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

API

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

查看存储桶的详细信息

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

控制台

转到日志存储页面:

转到“日志存储”

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

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

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

gcloud

运行 gcloud logging buckets describe 命令:

gcloud logging buckets describe _Default --location=global

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

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

API

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

删除存储桶

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

控制台

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

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

    转到“日志存储”

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

  3. 选择删除存储分区

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

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

gcloud

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

gcloud logging buckets delete BUCKET_ID --location=LOCATION

API

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

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

恢复已删除的存储桶

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

控制台

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

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

    转到“日志存储”

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

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

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

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

gcloud

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

gcloud logging buckets undelete BUCKET_ID --location=LOCATION

API

如需恢复待删除的存储分区,请使用 Logging API 中的 projects.locations.buckets.undelete

写入存储桶

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

从存储桶读取

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

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

控制台

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

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

    转到日志浏览器

  2. 选择优化范围

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

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

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

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

gcloud

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

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

API

如需读取日志存储分区中的日志,请使用 entries.list 方法。设置 resourceNames 以指定适当的存储分区和日志视图,设置 filter 选择数据。

如需详细了解过滤语法,请参阅日志记录查询语言

配置自定义保留

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

如果您缩短了存储分区的保留期限,则存在 7 天的宽限期,在宽限期内,系统不会删除过期的日志。您无法查询或查看这些过期的日志,但在这 7 天内,您可以通过延长存储分区的保留期限来恢复完整访问权限。在宽限期内存储的日志会计入您的存储费用

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

控制台

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

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

    转到“日志存储”

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

  3. 选择修改存储桶

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

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

gcloud

如需更新日志存储桶的保留期限,请在设置 RETENTION_DAYS 的值后运行 gcloud logging buckets update 命令:

gcloud logging buckets update BUCKET_ID  --location=LOCATION --retention-days=RETENTION_DAYS

例如,要将“全球”位置的 _Default 存储桶中的日志保留一年,您的命令将如下所示:

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

如果您延长存储桶的保留期限,则保留规则会在以后应用,并且不会追溯应用。日志在适用的保留期限结束后无法恢复。

排查常见问题

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

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

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

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

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

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

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

  1. 转到存储桶所属的 Cloud 项目的 Identity and Access Management 页面:

    转到 IAM

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

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

    您会看到任何具有 Logs Bucket Writer 角色的主帐号。如果主帐号是服务帐号,其 ID 包含字符串 gserviceaccount.com

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

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

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

如果您使用日志浏览器访问这些日志并查看从 _Default 接收器中排除的日志,则视图可能范围限定为 Cloud 项目级。

如需解决此问题,请在优化范围面板中选择按存储确定范围,然后在 Cloud 项目中选择 _Default 存储分区。您应该不会再看到已排除的日志。

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

基于日志的指标仅适用于单个 Google Cloud 项目。您无法为日志存储分区或其他 Google Cloud 资源(如文件夹或组织)创建日志存储分区。

后续步骤

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

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