日志导出概览

本页面提供了导出接收器的概念性概览,这些接收器可控制 Cloud Logging 路由日志的方式。

使用接收器,您可以将部分或全部日志路由到支持的目标,或排除存储在 Cloud Logging 中的日志条目。出于以下原因,您可能希望控制日志的路由方式:

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

接收器的工作原理

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

Cloud Logging 收到的每个日志条目都属于以下一个或多个类别,具体取决于日志接收器的配置:

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

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

日志接收器彼此独立运作。无论预定义的日志接收器如何处理您的日志条目,您都可以创建接收器以将部分或全部日志路由到各种支持的目标,或将它们完全排除在 Cloud Logging 的存储范围之外。

接收器通常在 Google Cloud 项目中创建。如需在组织、文件夹或结算帐号级层设置接收器,请使用汇总接收器

如需详细了解接收器路由日志,请参阅日志路由器概览

支持的目标

路由日志涉及创建一个接收器,该过滤条件选择了您要路由的日志条目,并可以从以下选项中选择目标:

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

接收器属性和术语

接收器具有许多属性,包括上述过滤条件和目标:

  • 接收器标识符:接收器的名称,例如 my-vm-error-sink

  • 父级资源:您在其中创建接收器的 Google Cloud 资源。父项可以是以下任一值:

    • projects/PROJECT_ID
    • folders/FOLDER_ID
    • billingAccounts/BILLING_ACCOUNT_ID
    • organizations/ORGANIZATION_ID

    接收器属于其父级资源的路由日志。您还可以使用汇总接收器合并和路由来自 Google Cloud 组织的所有 Cloud 项目、文件夹和结算帐号的日志。

    接收器的完整资源名称包括其父级资源和接收器标识符。例如:

    projects/PROJECT_ID/sinks/SINK_ID

  • 包含项过滤条件:选择要通过此接收器路由哪些日志条目。如需了解包含过滤条件的示例,请参阅查询示例

  • 排除项过滤条件:选择要从路由中明确排除的日志条目,即使日志条目与接收器的包含项过滤条件匹配也是如此。

    请注意,接收器可以包含多个排除项过滤条件。如果任何日志条目与任一过滤条件匹配,则系统会从路由中排除该日志条目。

  • 目标:表示要将与您的过滤条件匹配的日志条目发送到哪个位置。以下是支持的目标的名称:

    • Cloud Storage 存储分区:storage.googleapis.com/BUCKET_ID

    • BigQuery 数据集:bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID

    • Pub/Sub 主题:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID

    • Logging 日志存储分区:logging.googleapis.com/projects/PROJECT_ID/locations/REGION/buckets/BUCKET_ID

    日志浏览器中,您还可以在创建接收器以将日志从一个 Cloud 项目发送到另一个 Cloud 项目中的目标时指定自定义目标选项。

    如果目标授权给写入者的服务帐号,您可以将日志路由到任何 Cloud 项目中的目标。

  • 写入者身份:服务帐号名称。目标的所有者必须向此服务帐号授予写入目标的权限。路由日志时,Logging 会使用此身份进行授权。为了提高安全性,新接收器将获得唯一的服务帐号:

    GENERATED_ID_1@GENERATED_ID_2.iam.gserviceaccount.com

    如需了解详情,请参阅目标权限

  • includeChildren汇总接收器中介绍了此属性。它仅与为组织、文件夹或结算帐号创建的接收器相关。

如需详细了解接收器,请参阅 LogSink 类型。

访问权限控制机制

如需创建或修改接收器,您必须在接收器的父级资源中拥有 OwnerLogging/Logs Configuration Writer Identity and Access Management 角色。如需查看现有接收器,您必须在接收器的父级资源中拥有 ViewerLogging/Logs Viewer IAM 角色。如需了解详情,请参阅访问权限控制

如需将日志路由到目标,接收器的写入者服务帐号必须具备对目标的写入权限。如需详细了解写入者身份,请参阅本页面上的接收器属性

价格

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

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

后续步骤

路由日志

如需了解如何创建和管理接收器以路由日志,请参阅以下页面:

查找和使用日志

如需了解路由日志条目的格式以及日志在目标的组织方式,请参阅使用导出的日志

探索 Logging 路由场景

以下教程介绍了您可能需要路由日志的场景。每个教程都详细说明了要求、设置和用法,并展示了如何共享路由日志。