路由和存储概览

本页面介绍了 Cloud Logging 如何处理日志条目,以及 Logging 路由和存储的关键组件。

概括来讲,了解 Cloud Logging 如何路由和存储日志条目:

演示 Cloud Logging 如何路由日志条目的图。

日志路由器

Cloud Logging 通过可在其中传递日志路由器的 Cloud Logging API 接收日志条目。日志路由器中的接收器会根据现有的包含项过滤条件排除项过滤条件检查每个日志条目,以确定是否应将日志条目发送到存储目标位置(包括 Cloud Logging 存储桶),还是完全从 Cloud Logging 提取中排除。您可以使用接收器将日志路由到多个目标位置。

为了可靠地路由日志,日志路由器还会临时存储日志,以便在任何接收器上发生临时中断时提供缓冲。请注意,日志路由器的临时存储不同于 Logging 存储桶提供的长期存储。

接收器

接收器控制 Cloud Logging 路由日志的方式。通过接收器,您可以将部分或全部日志路由到支持的目标位置,或者排除日志条目,使其不存储在 Cloud Logging 中。您可能希望控制日志路由方式的一些原因如下所示:

  • 存储不太可能读取但必须出于合规性目的而保留的日志。
  • 针对日志使用大数据分析工具。
  • 将日志流式传输到其他应用、其他存储区或第三方。

Cloud Logging 会为每个 Google Cloud 项目提供两个预定义日志接收器:_Required_Default。在 Google Cloud 项目中生成的所有日志都通过这两个日志接收器自动处理,然后存储在 _Required_Default 这两个相应的日志存储桶中。

日志接收器彼此独立运作。无论预定义的日志接收器如何处理日志条目,您都可以创建自己的日志接收器,将部分或全部日志路由到各种受支持的目标位置或完全不由 Cloud Logging 存储。

写入 Cloud Logging API 的所有日志条目都会通过日志路由器。每当日志条目到达 Cloud 项目、文件夹、结算帐号或组织资源时,Logging 都会将日志条目与与该资源关联的接收器的过滤条件进行比较。

根据日志接收器的配置,Cloud Logging 接收的每个日志条目都属于以下一个或多个类别:

  • 存储在 Cloud Logging 中并且不路由到其他位置
  • 存储在 Cloud Logging 中并路由到支持的目标
  • 未存储在 Cloud Logging 中,但路由到支持的目标
  • 既未存储在 Cloud Logging 中,也不会存储在其他位置
    • 以下日志会被完全排除

接收器路由日志属于父资源;您通常在 Google Cloud 项目级层创建接收器。您还可以创建汇总接收器以组合和路由 Google Cloud 组织或文件夹和 Google Cloud 组织和文件夹包含的结算帐号的日志。

您无法路由 Logging 在创建接收器之前收到的日志条目,因为路由仅适用于新日志条目。如果您需要追溯路由日志条目,请参阅复制日志

包含项过滤条件

创建接收器时,您需要设置包含项过滤条件,以选择要包含在接收器目标位置的日志。您可以使用 Logging 查询语言创建包含项过滤条件。

如果没有为接收器设置过滤条件,则 Cloud 项目的每个日志条目都会路由到目标位置,除非通过接收器的排除项过滤条件明确排除该条目。

排除过滤器的数量

创建接收器时,您可以设置多个排除项过滤条件,以免将匹配的日志条目从路由到接收器的目标位置或由 Cloud Logging 提取。您可以使用 Logging 查询语言创建排除项过滤条件。

Logging API 接收日志后,会排除这些日志。因此,排除日志不会减少 entries.write API 调用的数量。

日志浏览器中不显示排除的日志条目;它们不适用于 Error Reporting 或 Cloud Debugger。

用户定义的基于日志的指标是根据包含和排除的日志中的日志条目计算的。如需了解详情,请参阅监控日志

支持的目标

您可以使用日志路由器将某些日志路由到任何 Cloud 项目中的受支持目标。Logging 支持以下接收器目标:

  • Cloud Storage:存储在 Cloud Storage 存储桶中的 JSON 文件;提供经济实惠的长期存储空间。
  • BigQuery:在 BigQuery 数据集中创建的表;提供大数据分析功能。
  • Pub/Sub:传送至 Pub/Sub 主题的 JSON 格式的消息;支持将 Splunk 等第三方服务与 Logging 集成。
  • Cloud Logging:保存在日志存储桶中的日志条目;提供具有可自定义保留期限的 Cloud Logging 存储空间。

如需详细了解如何将日志路由到支持的目标,请参阅配置接收器

日志存储桶

Cloud Logging 使用日志存储分区作为 Google Cloud 项目中的容器来存储和整理您的日志数据。您存储在 Cloud Logging 中的日志会编入索引、进行优化并传送,以便您可以实时分析日志。这些存储实体与名称类似的 Cloud Storage 存储分区不同。

对于每个 Cloud 项目,Logging 都会自动创建两个日志存储分区:_Required_Default。Logging 会自动创建名为 _Required_Default 的日志接收器,并在默认配置中自动将日志路由到相应命名的存储桶。请注意,您可以停用或限制路由到 _Default 日志存储分区的日志。

此外,您还可以为任何 Google Cloud 项目创建用户定义的存储分区

您可以创建接收器,以将所有或一部分日志路由到任何日志存储桶。这种灵活性让您可以选择存储您的日志的 Cloud 项目,以及与其一起存储哪些其他日志。

如需了解详情,请参阅配置和管理日志存储桶

_Required 日志存储分区

Cloud Logging 会自动将以下类型的日志路由到 _Required 存储分区:

Cloud Logging 会将日志在此存储分区中保留 400 天;您无法更改此保留期限。

您无法修改或删除 _Required 存储分区。您无法停用将接收器路由到 _Required 存储分区的 _Required 接收器。

提取价格和存储价格都不适用于存储在 _Required 日志存储分区中的日志数据。

_Default 日志存储分区

_Required 存储分区提取的任何日志条目都由 _Default 接收器路由到 _Default 存储分区,除非您停用或修改 _Default 接收器。如需了解如何修改接收器,请参阅管理接收器

您无法删除 _Default 存储分区。

保留在 _Default 存储分区中的日志会保留 30 天,除非您为该存储分区配置自定义保留期限

Cloud Logging 价格适用于保存在 _Default 存储分区中的日志数据。

用户定义的日志存储分区

您还可以在任何 Cloud 项目中创建用户定义的日志存储分区。通过将日志接收器应用到用户定义的日志存储分区,您可以将日志的任何子集路由到任何日志存储分区,这样一来,您便可以选择将日志存储在哪个 Cloud 项目中以及与其一起存储哪些其他日志。

例如,对于 Project-A 中生成的任何日志,您都可以配置接收器,以将该日志路由到 Project-A 或 Project-B 中用户定义的存储分区。

无论日志类型如何,Cloud Logging 价格都适用于保留在此存储分区中的日志数据。

您可以为存储分区配置自定义保留期限

如需了解如何管理用户定义的日志存储桶(包括删除或更新这些存储桶),请参阅配置和管理日志存储桶

地区化

创建日志存储分区时,您可以选择将日志存储在以下任何区域中:

区域
亚洲 asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-southeast1
澳大利亚 australia-southeast1
欧洲 europe-central2
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west6
北美洲 northamerica-northeast1
us-central1
us-east1
us-east4
us-west1
us-west2
us-west3
南美洲 southamerica-east1

除了这些区域之外,您还可以选择将位置设置为 global,这样您就无需指定日志的实际存储位置。

组织政策

您可以创建组织政策,以确保您的组织满足您的法规遵从和监管需求。使用组织政策,您可以指定组织可在哪些区域创建新的日志存储分区。您还可以限制您的组织不在指定区域新建日志存储分区。

Cloud Logging 不会对您现有的日志存储分区强制执行新创建的组织政策;它只会对新日志存储分区强制执行该政策。

如需了解如何创建基于位置的组织政策,请参阅限制资源位置

日志保留

Cloud Logging 根据适用于保留日志的日志存储分区类型的保留规则保留日志。

您可以配置 Cloud Logging,将日志保留期限设为 1 到 3650 天之间的任意值。自定义保留规则适用于存储分区中的所有日志,无论日志类型如何或日志是否从其他位置复制过。

如需了解如何为日志存储桶设置保留规则,请参阅配置自定义保留期限

停止提取日志

要了解如何停止将日志提取到 Google Cloud 项目中,请参阅停止日志提取

日志视图

借助日志视图,您可以控制有权访问您的日志存储分区中的日志的人员。

Cloud Logging 会自动为每个存储分区创建 _AllLogs 视图,该视图显示所有日志。Cloud Logging 还会为名为 _Default_Default 存储桶创建视图,其中显示了除数据访问审核日志之外的所有日志。

由于日志存储桶可以包含来自多个 Cloud 项目的日志,因此您可能需要控制不同用户可以查看哪些 Cloud 项目的日志。您可以创建自定义日志视图,可让您对这些存储桶进行更精细的访问权限控制。

如需了解详情,请参阅管理日志视图

基于日志的指标

基于日志的指标指的是基于日志条目内容的 Cloud Monitoring 指标。如果 Cloud Logging 收到与某个 Cloud 项目指标的过滤条件匹配的 Cloud 项目的日志条目,则该日志条目会反映在指标数据中。

接收器排除项过滤条件不会应用于基于日志的指标。即使您不让 Cloud Logging API 提取日志,并且这些日志未存储在任何日志存储分区中,您也可以查看基于日志的指标中计入的这些日志。

如需了解详情,请参阅基于日志的指标概览

限制

请注意以下限制:

价格

Cloud Logging 不会对路由日志收费,但可能会产生目标位置费用。如需了解详情,请查看相应服务的价格详情:

另请注意,如果您在发送 Virtual Private Cloud 流日志后又从 Cloud Logging 中排除这些日志,则除了目标位置费用外,还需支付 VPC 流日志生成费用

后续步骤

为帮助您路由和存储 Cloud Logging 数据,请参阅以下文档: