区域化存储日志

本文档介绍了如何使用 _Default 接收器将日志条目路由到特定区域中的 Cloud Logging 存储桶。如需查看受支持区域的列表,请参阅位置

您还可以为组织或文件夹配置默认设置,从而为新的 _Default_Required 存储桶设置默认存储位置。如需了解详情,请参阅设置默认存储位置

本指南通过将所有日志重定向到一个区域的示例,引导您完成此过程。此过程包括以下步骤:

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

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

  3. 在 Logs Explorer 中搜索日志。

概览

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

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

主要概念

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

日志路由器位置

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

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

日志存储分区位置

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

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

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

Logging 支持同时查询多个区域中的日志,此时,查询将在与所查询的存储桶相同的位置进行处理,然后在接收查询的来源区域中聚合以返回结果。

日志存储桶的区域会显示在日志存储页面和某些对话框中。例如,当您前往 Logs Explorer 页面并使用优化范围选择器列出日志视图时,系统也会显示区域信息。对于此选择器,当区域为 global 时,区域和当前存储位置都以类似于 GLOBAL (US-WEST4) 的格式显示。

准备工作

  1. 确定将存储日志条目的 Google Cloud 项目。
  2. 确定将存储日志条目的日志存储桶的名称和位置。
  3. 确定您要路由到日志存储桶的日志条目。在本指南中,包含由 _Default 接收器路由的所有日志。
  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    支持的区域

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

    创建日志存储桶

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

    1. 打开 shell。

      例如,如需使用 Cloud Shell,请执行以下操作:

      1. 前往 Google Cloud 控制台:

        前往 Google Cloud 控制台

      2. 在工具栏中,点击 激活 Cloud Shell
    2. 如需创建日志存储桶,请在 shell 中运行 gcloud logging buckets create 命令。在运行示例命令之前,请先进行以下替换:

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

      示例命令:

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

      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. 在工具栏中,点击优化范围,然后选择当前项目

        Logs Explorer 已配置为显示源自您的项目的日志条目。

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

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

    在 Google Cloud 控制台中搜索日志

    如需查看日志存储桶中的日志条目,请前往Google Cloud 控制台并完成以下步骤:

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

      前往 Logs Explorer

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

    2. 选择优化范围

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

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

    5. 点击应用

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

      如需了解如何使用 Logs Explorer,请参阅使用 Logs Explorer 查看日志

    后续步骤