配置日志存储分区以存储日志

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本文档介绍如何使用 Google Cloud 控制台、Google Cloud CLILogging API 创建和管理 Cloud Logging 存储分区。本页面还提供了在 Cloud 项目级别创建和管理日志存储分区的说明,但您也可以在文件夹和组织级别创建日志存储分区。

您可以升级日志存储分区以使用日志分析。借助日志分析,您可以对日志数据运行 SQL 查询,从而排查安全问题和网络问题。当日志存储桶升级为使用日志分析后,以及关联的数据集存在时,您也可以使用 BigQuery 查看存储在其中的数据。通过创建关联的数据集,您可以将日志数据与 BigQuery 中存储的其他数据联接起来,并访问其他工具(如 Looker Studio 和 Looker)中的数据。

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

准备工作

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

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

  • 确保您的 Identity and Access Management (IAM) 角色向您授予创建、升级和关联存储分区所需的权限。

    Logs Configuration Writer (roles/logging.configWriter) 角色是一个最小的预定义角色,可授予管理存储分区所需的权限。如需查看权限和角色的完整列表,请参阅 IAM 访问权限控制

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

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

  • 如需使用 BigQuery 查看日志存储桶中存储的数据,请执行以下操作:

创建存储桶

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

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

Google Cloud Console

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

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

    转到“日志存储”

  2. 点击创建日志存储桶

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

  4. 可选:升级您的存储桶以使用日志分析。

    1. 选择升级以使用日志分析

      升级存储桶以使用日志分析后,您可以使用 SQL 查询在日志分析页面中查询日志。您还可以使用日志浏览器继续查看您的日志。

      区域会自动设置为 global,保留期限设置为默认值。这些设置无法修改。

    2. 可选:如需在 BigQuery 中查看日志,请选择创建关联到此存储桶的新 BigQuery 数据集,然后输入唯一数据集名称。

      选择此选项后,BigQuery 可以读取您的日志存储桶中存储的数据。您现在可以在 BigQuery 界面中进行查询,以便联接日志数据,以及从其他工具(如 Looker Studio 和 Looker)访问数据。

  5. 可选:如需为日志选择存储区域,请点击选择日志存储桶区域菜单,然后选择一个区域。如果您未选择区域,则使用 global 区域,这意味着日志可以实际位于任何区域中。

    您无法为已升级为使用日志分析的日志存储分区设置区域。

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

    如果您为日志存储桶设置了自定义保留期限,并且想要将其升级以使用日志分析,则必须将保留期限更改为默认值。

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

    您还可以在创建存储桶后更新存储桶以应用自定义保留。

  7. 点击创建存储桶

    创建日志存储桶后,Logging 会升级该存储桶并创建数据集链接(如果选择了这些选项)。

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

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 控制台中的日志存储页面会跟踪日志存储分区提取的日志数据量。

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

转到“日志存储”

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

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

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

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

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

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

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

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

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

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

管理存储桶

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

更新存储桶

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

Google Cloud Console

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

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

    转到“日志存储”

  2. 对于要更新的存储桶,点击 更多

  3. 选择修改存储桶

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

  5. 点击更新存储桶

gcloud

如需更新存储桶的属性,请运行 gcloud logging bucket 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

如需升级现有存储桶以使用日志分析,请执行以下操作:

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

    转到“日志存储”

  2. 找到要升级的存储桶。

  3. 有可用的日志分析列显示升级时,您可以升级日志存储桶以使用日志分析。点击升级

    系统会打开一个对话框。点击确认

gcloud

如需升级日志存储桶以使用日志分析,您必须使用 Google Cloud 控制台。

API

如需升级日志存储桶以使用日志分析,您必须使用 Google Cloud 控制台。

如果您想要使用 BigQuery 的功能分析日志数据,请升级日志存储桶以使用日志分析,然后创建关联的数据集。借助此配置,您可以使用 BigQuery 读取存储在日志存储桶中的日志。

Google Cloud Console

如需为现有日志存储桶创建指向 BigQuery 数据集的链接,请执行以下操作:

  1. 请查看本文档中的准备工作部分。

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

    转到“日志存储”

  3. 找到日志存储桶,并验证 Log Analytics available 列是否显示打开

    如果此列显示升级,则表示日志存储桶尚未升级到使用日志分析。配置日志分析:

    1. 点击升级
    2. 在对话框中点击确认

    升级完成后,继续执行下一步。

  4. 在日志存储桶中,点击更多,然后点击修改存储桶

    系统会打开修改日志存储桶对话框。

  5. 选择创建关联到此存储桶的新 BigQuery 数据集,然后输入新数据集的名称。 您的 Google Cloud 项目的数据集名称必须是唯一的。

  6. 点击完成,然后点击更新存储桶

    Logging 在日志存储页面上显示关联的数据集名称后,可能需要几分钟时间才能识别 BigQuery。

gcloud

如需创建关联的数据集,您必须使用 Google Cloud 控制台。

API

如需创建关联的数据集,您必须使用 Google Cloud 控制台。

锁定存储桶

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

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

Google Cloud Console

Google 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

API

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

列出存储桶

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

Google Cloud Console

转到日志存储页面:

转到“日志存储”

名为日志存储分区的表会列出与当前 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

查看存储桶的详细信息

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

Google Cloud Console

转到日志存储页面:

转到“日志存储”

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

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

  • 名称:创建存储桶时,为存储桶指定的名称。
  • 说明:创建存储桶时为其分配的说明。
  • 保留期限:Cloud Logging 将对存储桶数据进行存储的天数。
  • 区域:用于对存储桶数据的地理位置进行存储。
  • 日志分析:指示您的存储桶是否已升级为使用日志分析。
  • BigQuery 分析:指示 BigQuery 数据集是否已关联到您的存储桶。
  • BigQuery 数据集:提供指向 BigQuery 数据集的链接,这会在 BigQuery SQL 工作区页面中打开。系统还会显示 BigQuery 关联的日期。

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

删除存储桶

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

Google Cloud Console

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

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

    转到“日志存储”

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

  3. 如果 BigQuery 中的关联数据集列显示了链接,请删除关联的 BigQuery 数据集:

    1. 点击修改存储桶

    2. 清除创建关联到此存储桶的新 BigQuery 数据集,点击完成,然后点击更新存储桶

      返回日志存储页面后,针对要删除的存储桶点击 更多,然后继续执行后续步骤。

  4. 选择删除存储桶

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

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

gcloud

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

gcloud logging buckets delete BUCKET_ID --location=LOCATION

API

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

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

恢复已删除的存储桶

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

Google Cloud Console

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

  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 项目、文件夹或组织。然后,父级资源中的接收器会将日志路由到目标位置,包括日志存储桶。当日志与接收器的过滤条件匹配并且接收器有权将日志路由到日志存储桶时,接收器会将日志路由到日志存储桶目标位置。

从存储桶读取

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

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

Google Cloud Console

您可以通过优化范围选项优化日志浏览器中显示的日志的范围。您可以只搜索当前 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 以选择数据。

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

配置自定义保留

创建日志存储桶时,您可以选择自定义 Cloud Logging 存储存储桶日志的时间段。您可以为任何用户定义的日志存储桶以及 _Default 日志存储桶配置保留期限。如果您为日志存储桶设置了自定义保留期限,并且想要将其升级以使用日志分析,则必须将保留期限更改为默认值。

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

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

Google Cloud Console

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

  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 参考文档。

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