路由和存储概览

本文档介绍了 Cloud Logging 如何处理日志条目,以及 介绍 Logging 路由和存储的关键组件。 路由是指 Cloud Logging 用于确定如何处理新到达的日志条目的过程。您可以将日志条目路由到存储日志条目的 Logging 存储桶等目标位置,也可以路由到 Pub/Sub。如需将日志导出到第三方目的地,请将日志路由到 Pub/Sub 主题,然后授权第三方目的地订阅该 Pub/Sub 主题。

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

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

使用日志路由器路由日志

以下部分介绍了 Logging 使用接收器通过日志路由器路由日志。

日志路由器

在调用 entries.write 期间,日志条目会发送到 logName 字段中指定的 Google Cloud 资源

Cloud Logging 使用 Cloud Logging API 日志路由器。日志路由器中的接收器会针对每个 日志条目排除对象过滤器,然后确定哪些目标平台 包括 应向其发送日志条目的 Cloud Logging 存储分区。您可以使用接收器的组合将日志条目路由到多个目标位置。

日志路由器会临时存储日志条目。此行为 能够缓冲数据接收器期间可能发生的暂时性中断和中断 用于将日志条目路由到目的地。缓冲无法防范数据接收器 配置错误。如果接收器配置有误,则不会路由日志条目,系统会生成错误日志,并向您发送电子邮件通知您接收器配置错误。无法路由日志条目时,系统会舍弃它们。

日志路由器的临时存储不同于 Logging 存储桶提供的长期存储。

时间戳超过 日志保留期限过去或该时间点 超过 24 小时后才会被舍弃

接收器

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

  • 存储不太可能读取但必须出于合规性目的而保留的日志。
  • 以对您有用的格式将日志整理到存储桶中。
  • 针对日志使用大数据分析工具。
  • 将日志流式传输到其他应用、其他存储区或第三方。例如,如果您想从 Google Cloud 导出日志,以便在第三方平台上查看这些日志,则可以配置接收器,将日志条目路由到 Pub/Sub。

接收器属于给定的 Google Cloud 资源:Google Cloud 项目、结算账号、文件夹和组织。资源收到日志条目后,会根据该资源中包含的接收器来路由日志条目;如果已启用,则是属于资源层次结构下的任何祖先接收器日志条目会被发送到与每个匹配接收器关联的目标位置。

Cloud Logging 会为每个 Google Cloud 项目、结算账号、文件夹和组织提供两个预定义接收器:_Required_Default。在资源中生成的所有日志都会通过这两个接收器自动处理,然后存储在相应命名的 _Required_Default 存储桶中。

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

接收器路由哪些日志条目通过配置接收器的 包含项过滤条件排除项过滤条件。 根据接收器的配置,Cloud Logging 接收的每个日志条目都属于以下一个或多个类别:

  • 存储在 Cloud Logging 中且不路由到其他位置。

  • 存储在 Cloud Logging 中且路由到受支持的目标位置。

  • 未存储在 Cloud Logging 中,但路由到受支持的目标位置。

  • 既未存储在 Cloud Logging 中,也未路由到其他位置。

您通常在 Google Cloud 项目级层创建接收器,但如果要组合和路由 Google Cloud 组织或文件夹包含的资源中的日志,则可以创建汇总接收器

接收器仅路由在接收器创建之后收到的日志条目,因为在日志通过 Logging API 传递时会进行路由。 如果您需要路由日志条目 请参阅复制日志

“包含”过滤器

如果接收器未指定任何过滤条件,则所有日志条目都会匹配并路由到接收器的目标位置。您可设置包含过滤器来配置接收器,从而选择特定日志条目。您还可以设置一个或多个排除过滤器,以排除日志条目,使其不进行路由。

配置接收器时,您需要 指定其过滤条件 使用日志记录查询语言

接收器根据以下规则路由日志条目:

  • 如果日志条目与包含项过滤条件不匹配,则不会进行路由。如果接收器未指定包含项过滤条件,则每个日志条目 符合该过滤条件。

  • 如果日志条目与包含项过滤条件和至少一个排除项过滤条件匹配,则不会进行路由。

  • 相应日志条目符合包含项过滤条件,但不符合 匹配任何排除过滤条件,系统会将其路由到接收器的目标位置。

排除过滤条件

创建接收器时,您可以设置 多个排除过滤器。利用排除过滤器,您可以 匹配包含过滤器的日志条目不会被路由到 接收器的目标位置 存储在日志存储桶中。您可以使用 日志记录查询语言

排除的日志条目消耗 entries.write API 配额,因为它们 在 Logging API 收到日志后排除在外。 您无法通过排除日志条目来减少 entries.write API 调用的数量。

日志浏览器中不提供排除的日志条目。

未路由到至少一个日志存储桶的日志条目(通过排除过滤器显式排除,或者由于它们与任何具有 Logging 存储目标位置的接收器都不匹配)也会从 Error Reporting 中排除。因此,这些日志条目无法为您提供帮助 来排查故障 用户定义的基于日志的指标是根据所包含二者中的日志条目计算得出的 和排除的日志条目。如需了解详情,请参阅 监控您的日志

支持的目标

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

  • Cloud Logging 存储桶:在 Cloud Logging 中提供存储空间。日志存储桶可存储日志条目 发送给多个 Google Cloud 项目的数据 日志存储桶可以位于日志条目来源的项目中,也可以位于其他项目中。如需了解如何查看存储在日志存储分区中的日志条目,请参阅 查询和查看日志概览查看路由到 Cloud Logging 存储分区的日志

    您可以将 通过升级日志存储桶来使用 Cloud Logging 数据和其他数据 Log Analytics,然后创建关联的数据集,该数据集是只读的, 可通过 BigQuery StudioLooker Studio 查询的数据集 页面。

  • BigQuery 数据集:在可写入的 BigQuery 数据集中提供日志条目的存储空间。BigQuery 数据集 可以属于日志条目所属的同一项目,也可以位于不同的 项目。 您可以对存储的日志条目使用大数据分析功能。 如需了解如何查看路由到 BigQuery 的日志条目,请参阅 查看路由到 BigQuery 的日志

  • Cloud Storage 存储桶:提供 Cloud Storage 中的日志条目存储。 Cloud Storage 存储桶可以位于日志条目来源的项目中,也可以位于其他项目中。日志条目存储为 JSON 文件。 如需了解如何查看路由到 Cloud Storage 的日志条目, 请参阅查看路由到 Cloud Storage 的日志
  • Pub/Sub 主题:为第三方集成提供支持。 日志条目会格式化为 JSON 格式,然后路由到 Pub/Sub 主题。主题可以位于日志条目来源的项目中,也可以位于其他项目中。了解如何查看路由到以下实例的日志条目: Pub/Sub,请参阅 查看路由到 Pub/Sub 的日志

  • Google Cloud 项目:将日志条目路由到另一个 Google Cloud 项目。在此配置中,目标项目中的接收器会处理日志条目。

如需了解详情,请参阅将日志路由到支持的目的地

存储、查看和管理日志

以下部分详细介绍了日志如何存储在 Cloud Logging 中,以及如何查看和管理日志。

日志存储桶

Cloud Logging 使用日志存储桶作为 Google Cloud 项目、结算账号、文件夹和组织中的容器,用于存储和整理日志数据。您存储在 Cloud Logging 中的日志条目已编入索引、经过优化, 供您实时分析日志 Cloud Logging 存储分区 是与具有类似名称的 Cloud Storage 存储分区不同的存储实体。

对于每个 Google Cloud 项目、结算账号、文件夹和组织,Logging 都会自动创建两个日志存储桶:_Required_Default。Logging 会自动创建名为 _Required_Default,它们在默认配置中会路由 日志条目上传到相应命名的存储分区中。

您可以停用 _Default 接收器,它会将日志条目路由到 _Default 日志存储桶。您还可以为以下对象更改 _Default 接收器的行为: 任何新的 Google Cloud 项目或文件夹。如需了解详情,请参阅为组织和文件夹配置默认设置

您无法更改 _Required 存储桶的路由规则。

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

您可以创建接收器,以将所有或一部分日志条目路由到任何日志存储桶。这种灵活性让您可以选择存储日志条目的 Google Cloud 项目,并可将来自多个资源的日志条目存储在一个位置。

如需了解详情,请参阅 配置日志存储分区

_Required 日志存储分区

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

Cloud Logging 将 _Required 存储桶中的日志条目保留 400 天;您无法更改此保留期限

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

_Default 日志存储分区

未存储在 _Required 存储桶中的任何日志条目都通过 _Default 接收器到 _Default 存储桶(除非您停用或以其他方式修改) _Default 接收器。如需了解如何修改接收器,请参阅管理接收器

例如,Cloud Logging 会自动路由以下类型的 将日志条目保存到 _Default 存储桶:

Cloud Logging 将 _Default 存储桶中的日志条目保留 30 天,除非您 为目标客户配置自定义保留 存储桶。

您无法删除 _Default 存储分区。

用户定义的日志存储分区

您还可以 创建用户定义的日志存储分区 Google Cloud 项目。通过将接收器应用于用户定义的日志存储分区, 也可以将日志条目的任意子集路由到任何日志存储桶 选择 Google Cloud 项目 其中存储了日志条目,可用于存储来自多个 集中管理多个资源

例如,对于项目 A 中生成的任何日志,您都可以配置接收器,以将这些日志条目路由到项目 A 中的用户定义的存储桶或项目 B 中的日志存储桶。

您可以为以下对象配置自定义保留: 存储桶。

了解如何管理用户定义的日志存储分区,包括删除 或更新日志,请参阅配置和管理日志存储分区

地区化

日志存储桶属于区域性资源。用于存储 编入索引,并搜索日志条目位于特定地理位置 位置。Google Cloud 管理着该基础架构,以便您的应用在该区域内的各可用区之间以冗余方式提供。

创建日志存储桶或设置 组织级区域级政策,您可以 选择将日志条目存储在以下任一区域中:

非洲

区域名称 区域说明
africa-south1 约翰内斯堡

美洲

区域名称 区域说明
northamerica-northeast1 蒙特利尔
northamerica-northeast2 多伦多
southamerica-east1 圣保罗
southamerica-west1 圣地亚哥
us-central1 爱荷华
us-east1 南卡罗来纳
us-east4 北弗吉尼亚
us-east5 哥伦布
us-south1 达拉斯
us-west1 俄勒冈
us-west2 洛杉矶
us-west3 盐湖城
us-west4 拉斯维加斯

亚太地区

区域名称 区域说明
asia-east1 台湾
asia-east2 香港
asia-northeast1 东京
asia-northeast2 大阪
asia-northeast3 首尔
asia-south1 孟买
asia-south2 德里
asia-southeast1 新加坡
asia-southeast2 雅加达
australia-southeast1 悉尼
australia-southeast2 墨尔本

欧洲

区域名称 区域说明
europe-central2 华沙
europe-north1 芬兰
europe-southwest1 马德里
europe-west1 比利时
europe-west2 伦敦
europe-west3 法兰克福
europe-west4 荷兰
europe-west6 苏黎世
europe-west8 米兰
europe-west9 巴黎
europe-west10 柏林
europe-west12 都灵

中东

区域名称 区域说明
me-central1 多哈
me-central2 达曼
me-west1 特拉维夫

其他

区域名称 区域说明
eu 日志存储在欧盟境内的数据中心;不提供额外的冗余保障
us 存储在美国境内数据中心的日志;没有其他 冗余保证
global 存储在全球任何数据中心中的日志;没有额外冗余 保证

将位置设置为global后,您无需指定您的 系统以物理方式存储日志条目

您可以自动将特定存储区域应用于在组织或文件夹中创建的 _Default_Required 存储桶。如需了解详情,请参阅 为组织和文件夹配置默认设置

如需详细了解数据区域性以及可在哪里存储日志数据,请参阅了解数据区域性

组织政策

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

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

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

此外,您还可以在组织或文件夹中为 _Default_Required 存储桶配置默认存储位置。如果您配置的组织政策限制了数据的存储位置,则必须确保您指定的默认存储位置与该限制条件一致。如需了解详情,请参阅为组织和文件夹配置默认设置

保留

Cloud Logging 根据适用于日志的保留规则来保留日志 保存日志的存储桶类型。有关保留期限的信息 有关不同类型的日志,请参阅 配额和限制

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

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

日志视图

借助日志视图,您可以向用户授予对日志存储桶中存储的日志条目的部分内容的访问权限。如需了解如何配置日志视图以及如何授予对特定日志视图的访问权限,请参阅在日志存储桶上配置日志视图

Cloud Logging 会自动为每个日志存储桶创建 _AllLogs 视图,该视图会显示存储在该存储桶中的所有日志。Cloud Logging 还会为 _Default 存储桶创建一个名为 _Default 的视图。_Default 视图 _Default 存储桶会显示除数据访问审核日志之外的所有日志。通过 _AllLogs_Default 视图不可修改,也无法删除 _Default日志视图

自定义日志视图为您控制访问权限提供了一种高级且精细的方式 日志数据例如,考虑这样一个场景,您在一个中央 Google Cloud 项目中存储组织的所有日志。由于日志存储桶可以包含来自多个 Google Cloud 项目的日志,因此您可能需要控制不同用户可以查看哪些 Google Cloud 项目的日志。使用自定义日志 那么可以只授予一位用户访问日志的权限 而您允许其他用户访问来自单个 Google Cloud 项目的日志, 所有 Google Cloud 项目

在 Google Cloud 生态系统中使用日志

以下部分介绍了如何在更广泛的 Google Cloud 中使用日志。

基于日志的指标

基于日志的指标是指从日志条目内容派生的 Cloud Monitoring 指标。例如,如果 Cloud Logging 收到与某个 Google Cloud 项目指标的过滤条件匹配的 Google Cloud 项目的日志条目,则该日志条目会计入指标数据中。

基于日志的指标与路由的互动方式不同,具体取决于基于日志的指标是由系统定义还是由您定义。以下部分介绍了这些差异。

基于日志的指标和排除项过滤器

接收器排除过滤器适用于系统定义的基于日志的指标, 仅限存储在日志存储分区中的日志。

接收器排除过滤器不适用于用户定义的基于日志的指标。即使 不会将日志存储在任何 Logging 存储分区中, 您可以看到这些指标计入了这些指标中

基于日志的指标的范围

系统定义的基于日志的指标适用于 Google Cloud 项目级。 这些指标由日志路由器计算,仅适用于 Google Cloud 项目。

用户定义的基于日志的指标可应用于 Google Cloud 项目 或在特定日志存储桶的级别创建:

  • 项目级指标的计算方式与系统定义的基于日志的指标类似; 这些用户定义的基于日志的指标仅适用于日志 位于接收它们的 Google Cloud 项目中。
  • 存储桶级指标适用于接收它们的日志存储桶中的日志,无论日志条目来自哪个 Google Cloud 项目

    借助存储桶级基于日志的指标,您可以创建基于日志的指标 可以在以下情况下评估日志:

    • 从一个项目路由到另一个项目中的存储桶的日志。
    • 通过汇总接收器路由到存储桶的日志。

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

查找受支持的目标位置的日志

如需了解路由日志条目的格式以及日志在目标位置的整理方式,请参阅查看接收器目标位置的日志

常见使用场景

如需处理路由和存储日志的常见使用场景,请参阅以下文档和教程:

合规性需求

如需了解使用路由进行数据治理的最佳实践,请参阅以下内容 文档:

使用 IAM 进行访问权限控制

如需了解如何使用 Identity and Access Management (IAM) 角色和权限控制对 Cloud Logging 数据的访问,请参阅使用 IAM 进行访问权限控制

价格

Cloud Logging 不会将日志路由到 支持的目标位置;不过,目标位置可能会产生费用。 除了 _Required 日志存储桶之外, Cloud Logging 将日志流式传输到日志存储分区和 超过日志存储桶默认保留期限的存储。

Cloud Logging 不收取复制日志的费用, 用于定义日志范围 或通过 日志浏览器日志分析页面。

有关详情,请参阅以下文档:

后续步骤

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

  • Error Reporting 可以分析日志条目并向您报告错误。 如需详细了解此服务(包括何时可以分析日志条目的信息),请参阅错误报告概览