日志记录数据导出的设计模式

本文介绍了一系列文章,探讨了针对常见日志记录导出方案的设计模式和最佳做法。

Cloud Logging 为日志提供操作数据存储区,并提供丰富的导出功能。您可能出于多种原因需要导出日志,例如为了满足合规性要求保留长期存储日志(数月或数年),或者为了根据从日志中提取的指标运行数据分析。Cloud Logging 可以导出到 Cloud Storage、BigQuery 和 Pub/Sub,还可以导出到 Elasticsearch。

导出日志

Cloud Logging 可以使用汇总接收器功能导出组织的所有日志记录,或使用日志导出功能导出特定 Google Cloud 项目的所有日志记录。借助日志记录过滤器,您可以包含或排除特定的项目或云资源。例如,您可以导出所有 Compute Engine 日志,但可以不导出来自 Cloud Load Balancing 的大量日志。通过此方法,您可以灵活地导出所有日志或特定日志。

使用汇总接收器,组织可以从所有项目或单个文件夹导出日志。凭借此功能,您可以在组织的所有项目中强制执行日志记录导出政策。您可以使用组织级 IAM 控件将用户的访问权限限制为仅修改日志记录导出配置。

作为汇总接收器的替代方法,日志导出针对项目而非整个组织启用。否则,日志导出就与汇总接收器完全相同了。

导出方式

您可以通过以下三种方式从 Cloud Logging 中导出日志:

  • 到文件:存储在 Cloud Storage 中的 JSON 文件。
  • 到 BigQuery:在 BigQuery 数据集中创建的日志记录表。
  • 到 Pub/Sub:递送至 Pub/Sub 主题的 JSON 消息。

导出内容

如需了解 Cloud Logging 中可用的日志类型,请参阅可用日志

日志记录格式

根据日志类型,有以下三种不同的日志记录负载格式。

textPayload
内容以单个字符串的形式表示。Cloud Logging 代理报告的日志(包括 syslog)和 Cloud SQL 日志都是采用此格式的日志示例。
protoPayload
内容以协议缓冲区的形式表示,根据记录的特定内容而各有不同。管理员活动审核日志和数据访问审核日志都以此格式导出。根据导出的条目类型,这些日志在 BigQuery 中具有不同的 JSON 和表结构。
jsonPayload
内容以 JSON 对象的形式表示,根据记录的特定内容而各所不同。Compute Engine 和 Compute Engine 自动扩缩器中的活动日志都是采用此格式的示例。

架构和字段文档详细介绍了如何将日志格式映射到 BigQuery 表和 JSON 导出文件结构。在针对 BigQuery 导出编写查询,或者在解析文件或 Pub/Sub 导出 JSON 文件时,请考虑日志记录载荷格式。LogEntry 的 API 定义中列出了详细的日志格式。

日志记录导出场景

本系列文章介绍了您可能需要导出日志的场景。每个场景都详细说明了要求、设置、使用情况,以及共享导出的方式。

后续步骤