对日志进行区域化

本文档介绍了如何使用 _Default 接收器来路由日志 特定区域的 Cloud Logging 存储桶中。对于列表 请参阅位置

您还可以为新的 _Default_Required 设置默认存储位置 存储分区。对于 更多信息, 请参阅设置默认存储位置

本指南将介绍 使用将所有日志重定向到一个 区域。此过程包括以下步骤:

  1. 在指定区域中创建日志存储桶以存储日志。

  2. 重定向 _Default 接收器以将日志路由到新的日志存储桶。

  3. 在日志浏览器中搜索日志。

概览

在 Logging 中,日志存储桶是区域资源:用于存储、索引和搜索日志的基础架构位于特定的地理位置。Google Cloud 管理着该基础架构,以便您的应用在该区域内的各可用区之间以冗余方式提供。

您的组织可能需要将其日志数据存储在特定区域中。在选择存储日志的区域时,主要的考虑因素包括满足您的组织的延迟时间、可用性或合规性要求。为日志存储选择区域时,请考虑您的应用使用的其他 Google Cloud 产品和服务的位置。

主要概念

以下主要概念适用于 Logging 的数据区域性。

日志路由器位置

日志路由器会处理写入 Cloud Logging API 的所有日志条目。它会根据现有规则检查每个日志条目,从而确定在 Logging 存储桶中存储哪些日志条目以及使用接收器将哪些日志条目路由到受支持的目标位置。为了可靠地路由日志,日志路由器还会临时存储日志,以便在任何接收器上发生临时中断时提供缓冲。

日志路由器在接收到日志的区域中处理日志。 根据接收器的具体定义,或者如果您选择了与另一项 Google Cloud 服务(如 Security Command Center Threat Detection)共享日志数据,日志路由器可能会将日志发送到不同的区域。无论位于哪个区域,接收器都会以同等方式应用于日志。

日志存储分区位置

日志存储分区是存储分区中的容器 Google Cloud 项目、结算账号、文件夹和组织,用于存储和 整理日志数据

对于每个 Google Cloud 项目、结算账号、文件夹和组织, Logging 会自动创建两个日志存储分区:_Required_Default,位于 global 位置。 您无法更改现有存储桶的位置。不过,您的组织可以创建政策 以便为这些存储分区设置不同的默认位置。如需了解详情,请参阅为组织和文件夹配置默认设置

您还可以为任何 Google Cloud 项目创建用户定义的日志存储桶。创建用户定义的日志存储桶时,可以执行以下操作: 指定日志存储桶的位置。创建日志存储桶后,您就不能再更改其位置,但您可以创建新的存储桶,然后使用接收器将日志条目定向到新的日志存储桶。如需了解如何为存储桶设置位置,请参阅区域化存储日志

Logging 支持同时查询多个区域的 在这种情况下,查询会在与存储分区中的存储分区相同的位置 并在收到查询的区域进行汇总,以返回 结果。

准备工作

如需完成本指南中的步骤,请执行以下操作:

  1. 确定将存储日志条目的 Google Cloud 项目。
  2. 确定用于存储日志条目的日志存储桶的名称和位置。
  3. 确定要路由到日志存储桶的日志条目。在本指南中,我们介绍了由 _Default 接收器路由的所有日志。

支持的区域

创建日志存储桶时,您可以选择日志的存储位置。 如需查看受支持区域的列表,请参阅位置

创建日志存储桶

日志存储分区会存储日志条目。项目、文件夹和组织包含 用于将日志条目路由到日志存储分区或其他目标位置的日志接收器。 当接收器的目标位置是日志存储桶时,该日志存储桶可以 日志接收器位于同一资源中,或在其他资源中。 如需了解详情,请参阅配置日志存储分区

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

  1. 转到 Google Cloud 控制台:

    前往 Google Cloud 控制台

  2. 在工具栏中,点击  激活 Cloud Shell

  3. 如需创建日志存储桶,请在 Cloud Shell 中运行 gcloud logging buckets create 命令。在运行示例命令之前,请先进行以下替换:

    • BUCKET_ID:日志存储桶的名称或 ID。
    • LOCATION:日志存储桶的位置。
    • PROJECT_ID:项目的标识符。

    示例命令:

    gcloud logging buckets create BUCKET_ID \
      --location=LOCATION \
      --project=PROJECT_ID
    
  4. 验证存储分区是否已创建:

    gcloud logging buckets list --project=PROJECT_ID
    

创建日志存储分区后,您可以更改一些属性,例如说明和数据保留期限。如需进行这些更改,请使用 gcloud logging buckets update 命令。

重定向“_Default”日志接收器

您可以通过创建接收器将日志路由到日志存储桶。接收器包含过滤条件(用于选择要通过接收器导出的日志条目)以及目标位置。在本指南中,我们会更新现有的 _Default 接收器,以路由 在上一步中创建的日志存储桶中导入日志条目。

如需更新接收器,请运行 gcloud logging sinks update 命令。在运行示例命令之前,请先进行以下替换: 进行以下替换:

  • _Default:此示例会更新名为 _Default 的接收器的目标位置。如果您想更新另一个接收器 更改此变量的名称。
  • BUCKET_ID:日志存储桶的名称或 ID。
  • LOCATION:日志存储桶的位置。
  • PROJECT_ID:项目的标识符。

示例命令:

gcloud logging sinks update _Default \
  logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
  --log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT
    LOG_ID("externalaudit.googleapis.com/activity") AND NOT
    LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT
    LOG_ID("externalaudit.googleapis.com/system_event") AND NOT
    LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT
    LOG_ID("externalaudit.googleapis.com/access_transparency")' \
  --description="Updated the _Default sink to route logs to the LOCATION region"

创建日志条目以测试接收器

如要验证您是否正确更新接收器,请完成以下步骤:

  1. 使用 gcloud logging write 命令将测试日志消息发送到您的区域化存储桶。在运行示例命令之前,请先进行以下替换:

    • LOG_NAME:日志的名称。
    • BUCKET_ID:日志存储桶的名称或 ID。
    • PROJECT_ID:项目的标识符。

    示例命令:

    gcloud logging write LOG_NAME "Test to route logs to BUCKET_ID" \
    --project=PROJECT_ID
    
  2. 查看日志条目:

    1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

      前往 Logs Explorer

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

    2. 在工具栏中,点击优化范围,然后选择当前项目

      日志浏览器配置为显示来自您项目的日志条目。

    3. 日志字段窗格中,选择全球性资源类型。

    4. 您的测试日志条目会显示在查询结果面板中。

在 Google Cloud 控制台中搜索日志

如需查看日志存储桶中的日志条目,请转到 Google Cloud 控制台,然后完成以下步骤:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

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

  2. 选择优化范围

  3. 优化范围面板上,选择日志视图

  4. 选择与您的 BUCKET_NAME 关联的 _AllLogs 视图。

  5. 点击应用

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

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

后续步骤