本文档介绍了 Cloud Logging 如何处理日志条目,还介绍了 Logging 路由和存储的关键组件。路由是指 Cloud Logging 用于确定如何处理新收到的日志条目的过程。您可以将日志条目路由到用于存储存储分区的 Logging 存储分区等目标位置或 Pub/Sub。如需将日志导出到第三方目标位置,请将日志路由到 Pub/Sub 主题,然后授权第三方目标位置订阅 Pub/Sub 主题。
概括来讲,了解 Cloud Logging 如何路由和存储日志条目:
使用日志路由器注入和路由日志
以下部分介绍了 Logging 如何提取日志并使用接收器通过日志路由器进行路由。
日志路由器
在调用 entries.write
期间,日志条目会发送到 logName
字段中指定的 Google Cloud 资源。
Cloud Logging 通过 Cloud Logging API 接收日志条目,这些条目在此 API 中通过日志路由器进行传递。日志路由器中的接收器会根据现有包含过滤器和排除过滤器检查每个日志条目,以确定日志条目应发送到哪些目标位置(包括 Cloud Logging 存储桶)。您可以使用接收器的组合将日志路由到多个目标位置。
为了路由日志,日志路由器还会暂时存储日志(并非图片中描述),以缓冲任何接收器上的临时中断。请注意,日志路由器的临时存储不同于 Logging 存储桶提供的长期存储。
时间戳超过日志保留期限或超过 24 小时的传入日志条目将被舍弃。
接收器
接收器控制 Cloud Logging 路由日志的方式。通过接收器,您可以将部分或全部日志路由到支持的目标位置。您可能希望控制日志路由方式的一些原因如下所示:
- 存储不太可能读取但必须出于合规性目的而保留的日志。
- 以对您有用的格式将日志整理到存储桶中。
- 针对日志使用大数据分析工具。
- 将您的日志流式传输到其他应用、其他存储库或第三方。例如,如果您要从 Google Cloud 导出日志,以便您可以在第三方平台上查看这些日志,请配置一个接收器,以将日志条目路由到 Pub/Sub。
接收器属于给定的 Google Cloud 资源:Cloud 项目、结算帐号、文件夹和组织。资源收到日志条目后,会根据该资源中包含的接收器来路由日志条目;如果已启用,则是属于资源层次结构下的任何祖先接收器日志条目会被发送到与每个匹配接收器关联的目标位置。
Cloud Logging 会为每个 Cloud 项目、结算帐号、文件夹和组织提供两个预定义接收器:_Required
和 _Default
。在资源中生成的所有日志都会通过这两个接收器自动处理,然后存储在相应命名的 _Required
或 _Default
存储桶中。
接收器彼此独立运行。无论预定义的接收器如何处理日志条目,您都可以创建自己的接收器,将部分或全部日志路由到各种受支持的目标位置或不由 Cloud Logging 存储。
每个接收器的路由行为通过为接收器配置包含项过滤条件和排除项过滤条件进行控制。根据接收器的配置,Cloud Logging 接收的每个日志条目都属于以下一个或多个类别:
存储在 Cloud Logging 中且不路由到其他位置。
存储在 Cloud Logging 中且路由到受支持的目标位置。
未存储在 Cloud Logging 中,但路由到受支持的目标位置。
既未存储在 Cloud Logging 中,也未路由到其他位置。
您通常在 Cloud 项目级层创建接收器,但如果要组合和路由 Google Cloud 组织或文件夹包含的资源中的日志,则可以创建汇总接收器。
您无法路由在创建接收器之前 Logging 收到的日志条目,因为在日志通过 Logging API 传递时会进行路由,并且新的路由规则仅适用于在创建这些规则后写入的日志。如果您需要追溯路由日志条目,请参阅复制日志。
包含项过滤条件
对于任何新的接收器,如果未指定过滤条件,则所有日志都会匹配并路由到接收器的目标位置。您可设置包含过滤器来配置接收器,从而选择特定日志。您还可以设置一个或多个排除过滤器,从接收器目标位置排除日志。
在配置接收器时,您可以使用 Logging 查询语言来创建包含过滤器。接收器还可以包含多个排除过滤器。
Logging 收到的每个日志条目都会根据以下过滤规则进行路由:
接收器的排除项过滤条件会覆盖其定义的任何包含项过滤条件。如果日志与接收器中的任何排除项过滤条件匹配,则无论包含项过滤条件如何定义,日志都与接收器不匹配。日志条目不会路由到接收器的目标位置。
如果接收器没有包含过滤器件,则会出现以下情况:
- 如果日志条目与任何排除项过滤条件匹配,则不会路由到接收器的目标位置。
- 如果日志条目与任何排除过滤器都不匹配,系统会将其路由到接收器的目标位置。如果包含过滤器为空,系统会选择所有日志。
如果接收器包含包含项过滤条件,则会出现以下情况:
- 如果日志条目与包含项过滤条件匹配,则会路由到接收器的目标位置。
- 如果日志条目与包含项过滤条件不匹配,则不会路由到接收器的目标位置。
排除过滤条件
创建接收器时,您可以设置多个排除项过滤器。借助排除项过滤器,您可以排除匹配的日志条目,使其不路由到接收器的目标位置或被 Cloud Logging 提取。您可以使用 Logging 查询语言创建排除项过滤器。
Logging API 在收到日志条目后会将其排除,因此这些日志条目会占用 entries.write
API 配额。您无法通过排除日志条目来减少 entries.write
API 调用的次数。
日志浏览器或 Cloud Debugger 中不提供排除的日志条目。
未路由到至少一个日志存储桶的日志条目(无论是明确地使用排除过滤条件,还是由于与 Logging 存储目标中的任何接收器都不匹配)也会从 Error Reporting 中排除。因此,这些日志无法帮助进行问题排查。
用户定义的基于日志的指标是根据包含和排除的日志中的日志条目计算的。如需了解详情,请参阅监控日志。
未排除的日志条目可能会产生费用。如需了解详情,请参阅 Cloud Logging 价格信息。
支持的目标
您可以使用日志路由器将某些日志路由到任何 Cloud 项目中受支持的目标位置。Logging 支持以下接收器目标:
- Cloud Logging 日志存储分区:提供 Cloud Logging 中的存储空间。日志存储桶可以存储多个 Google Cloud 项目注入的日志。您可以将 Cloud Logging 数据与其他数据相结合,将您的日志存储在已升级为使用日志分析的日志存储分区中,然后创建关联的 BigQuery 数据集。如需了解如何查看日志,请参阅查询和查看日志概览以及查看路由到 Cloud Logging 存储分区的日志。
- Google Cloud 项目:将日志条目路由到其他 Google Cloud 项目。将日志路由到其他 Cloud 项目时,目标项目的日志路由器会接收日志并对其进行处理。从中路由日志的项目不需要定义目标项目如何处理日志。
- Pub/Sub 主题:支持第三方集成(例如 Splunk 与 Logging)。日志条目的格式设置为 JSON,然后传送到 Pub/Sub 主题。如需了解如何查看这些日志及其组织,以及如何配置第三方集成,请参阅查看路由到 Pub/Sub 的日志。
- BigQuery 数据集:提供日志条目在 BigQuery 数据集中的存储情况。您可以对存储的日志使用大数据分析功能。为了将您的 Cloud Logging 数据与其他数据源相结合,我们建议您将日志存储在已升级为使用日志分析的日志存储分区中,然后创建关联的 BigQuery 数据集。如需了解如何查看路由到 BigQuery 的日志,请参阅查看路由到 BigQuery 的日志。
- Cloud Storage 存储分区:提供费用低廉的 Cloud Storage 日志数据长期存储服务。日志条目以 JSON 文件的形式存储。 如需了解如何查看这些日志、如何整理这些日志以及如何处理延迟日志,请参阅查看路由到 Cloud Storage 的日志。
如需了解详情,请参阅将日志路由到受支持的目的地。
存储、查看和管理日志
以下部分详细介绍了日志如何存储在 Cloud Logging 中,以及如何查看和管理日志。
日志存储桶
Cloud Logging 使用日志存储桶作为 Google Cloud 项目、结算帐号、文件夹和组织中的容器,用于存储和整理日志数据。您存储在 Cloud Logging 中的日志会编入索引、进行优化并传送,以便您可以实时分析日志。Cloud Logging 存储桶是与名称类似的 Cloud Storage 存储桶不同的存储实体。
对于每个 Cloud 项目、结算帐号、文件夹和组织,Logging 都会自动创建两个日志存储桶:_Required
和 _Default
。Logging 会自动创建名为 _Required
和 _Default
的接收器,在默认配置中,这些接收器会将日志路由到相应命名的存储桶。
您可以停用 _Default
接收器,这会将日志路由到 _Default
日志存储桶。如需更改为组织中创建的任何新 Cloud 项目或文件夹创建的 _Default
接收器的行为,您可以为组织配置默认设置。
您无法更改 _Required
存储桶的路由规则。
此外,您还可以为任何 Cloud 项目创建用户定义的存储桶。
您可以创建接收器,以将所有或一部分日志路由到任何日志存储桶。这种灵活性让您可以选择存储您的日志的 Cloud 项目,以及与其一起存储哪些其他日志。
如需了解详情,请参阅配置日志存储分区。
_Required
日志存储桶
Cloud Logging 会自动将以下类型的日志路由到 _Required
存储桶:
Cloud Logging 会将 _Required
存储桶中的日志保留 400 天;您无法更改此保留期限。
您无法修改或删除 _Required
存储桶。您无法停用将接收器路由到 _Required
存储桶的 _Required
接收器。
提取价格和存储价格都不适用于存储在 _Required
日志存储桶中的日志数据。
_Default
日志存储桶
非 _Required
存储桶提取的任何日志条目都由 _Default
接收器路由到 _Default
存储桶,除非您停用或修改 _Default
接收器。如需了解如何修改接收器,请参阅管理接收器。
Cloud Logging 会自动将以下类型的日志路由到 _Default
存储桶:
除非您为存储桶配置自定义保留,否则 Cloud Logging 会将 _Default
存储桶中的日志保留 30 天。
您无法删除 _Default
存储桶。
Cloud Logging 价格适用于保存在 _Default
存储桶中的日志数据。
用户定义的日志存储分区
您还可以在任何 Cloud 项目中创建用户定义的日志存储分区。通过将接收器应用于用户定义的日志存储桶,您可以将日志的任何子集路由到任何日志存储桶,这样一来,您便可以选择将日志存储在哪个 Cloud 项目中以及与其一起存储哪些其他日志。
例如,对于 Project-A 中生成的任何日志,您都可以配置接收器,以将该日志路由到 Project-A 或 Project-B 中用户定义的存储分区。
无论日志类型如何,Cloud Logging 价格都适用于保留在此存储桶中的日志数据。
您可以为存储桶配置自定义保留期限。
如需了解如何管理用户定义的日志存储分区,包括删除或更新这些存储分区,请参阅配置和管理日志存储分区。
地区化
日志存储桶属于区域性资源。对日志进行存储、编入索引和搜索的基础架构位于特定的地理位置。Google 管理着该基础架构,以便您的应用在该区域内的各可用区之间以冗余方式提供。
创建日志存储桶或设置组织级区域政策时,您可以选择将日志存储在以下任一区域中:
美洲
区域名称 | 区域说明 | 日志分析支持 |
---|---|---|
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 |
巴黎 |
中东
区域名称 | 区域说明 | 日志分析支持 |
---|---|---|
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
视图无法修改,您无法删除。
自定义日志视图为您提供了一种高级且精细的方式来控制对日志数据的访问权限。例如,设想一个场景,您将组织的所有日志存储在一个中央 Cloud 项目中。由于日志存储分区可能包含来自多个 Cloud 项目的日志,因此您可能需要控制不同用户可以查看哪些 Cloud 项目中的日志。使用自定义日志视图,您可以仅允许一位用户访问单个 Cloud 项目中的日志,而向其他用户授予对所有 Cloud 项目中日志的访问权限。
如需了解如何配置日志视图,请参阅配置存储桶级访问权限。
在 Google Cloud 生态系统中使用日志
以下部分介绍了如何在更广泛的 Google Cloud 中使用日志。
基于日志的指标
基于日志的指标是从日志条目内容派生的 Cloud Monitoring 指标。例如,如果 Cloud Logging 收到的 Cloud 项目的日志条目与其中一个 Cloud 项目的指标过滤条件匹配,则该日志条目将计入指标数据中。
基于日志的指标与路由的交互方式有所不同,具体取决于基于日志的指标是由系统还是由您定义。以下部分介绍了这些差异。
基于日志的指标和排除过滤器
接收器排除过滤条件适用于系统定义的基于日志的指标,这些指标仅统计 Cloud 项目为注入而添加的日志。
接收器排除过滤器不适用于用户定义的基于日志的指标。即使您不让 Cloud Logging API 提取日志,并且日志未存储在任何 Logging 存储分区中,您也可以查看这些指标中计入的这些日志。
基于日志的指标的范围
系统定义的基于日志的指标适用于 Cloud 项目级。这些指标由日志路由器计算,并且仅适用于收到日志的 Cloud 项目中的日志。
用户定义的基于日志的指标可以应用于 Cloud 项目级,也可以应用于特定日志存储桶级:
- 项目级指标的计算方式类似于系统定义的基于日志的指标;这些用户定义的基于日志的指标仅适用于接收它们的 Cloud 项目中的日志。
无论生成日志条目的 Cloud 项目是什么,存储桶级指标都适用于接收这些日志的日志中的日志。
使用存储桶级基于日志的指标时,您可以创建基于日志的指标,以便在在以下情况下评估日志:
- 从一个项目路由到另一个项目中的存储桶的日志。
- 通过汇总接收器路由到存储桶的日志。
如需了解详情,请参阅基于日志的指标概览。
查找受支持的目标位置的日志
如需了解路由日志条目的格式以及日志在目标位置的整理方式,请参阅查看接收器目标位置的日志。
常见使用场景
如需处理路由和存储日志的常见使用场景,请参阅以下文档和教程:
合规性需求
如需了解将路由用于数据治理的最佳做法,请参阅以下文档:
使用 IAM 控制访问权限
如需了解如何使用 Identity and Access Management (IAM) 角色和权限来控制对 Cloud Logging 数据的访问权限,请参阅 IAM 访问权限控制。
价格
如需了解注入和存储价格,请参阅 Cloud Logging 价格信息。
Cloud Logging 不会对路由日志收费,但可能会产生目标位置费用。如需了解详情,请查看相应服务的价格详情:
后续步骤
为帮助您路由和存储 Cloud Logging 数据,请参阅以下文档:
如需创建接收器以将日志路由到支持的目标,请参阅配置接收器。
如需了解路由和接收器问题排查,请参阅路由和接收器问题排查。