汇总接收器

本页面介绍了如何创建汇总接收器,以便从 Google Cloud 组织的所有 Google Cloud 项目、文件夹和结算帐号中路由日志条目。例如,您可以将组织的 Cloud 项目中的审核日志条目汇总并路由到一个中央目标位置。

概念

如果没有汇总接收器功能,接收器只能从创建接收器的确切资源(Google Cloud 项目、组织、文件夹或结算帐号)中路由日志条目。

如需使用汇总接收器,请在 Google Cloud 组织或文件夹中创建接收器,并将接收器的 includeChildren 参数设置为 True。然后,该接收器就可以从组织或文件夹中路由日志条目,也可以(以递归方式)从其包含的任何文件夹、结算帐号或项目中导出日志条目。您可以使用接收器的过滤条件指定项目、资源类型或命名日志中的日志条目。

如需了解接收器及其创建方法,请转到导出 API 中的日志使用命令行工具创建接收器

创建目标

您必须首先通过 gcloud 命令行工具、Cloud Console 或 Google Cloud API 创建日志接收器的目标位置,然后再创建接收器。

接收器支持的目标位置如下:

如果日志接收器中的服务帐号有权向目标位置写入内容,则可以在任何 Cloud 项目、任何组织中创建目标位置。

创建汇总接收器

要在 Google Cloud 文件夹、结算帐号或组织中创建汇总接收器,您可以使用 Cloud Logging APIgcloud 命令行工具

API

如需创建日志记录接收器,请使用 Logging API 中的 organizations.sinks.createfolders.sinks.createbillingAccounts.sinks.create。请按以下步骤准备方法的参数:

  1. parent 参数设置为要在其中创建接收器的 Google Cloud 组织、文件夹或结算帐号。parent 必须是以下三项之一:

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • billingAccounts/BILLING_ACCOUNT_ID
  2. 在方法请求正文中的 LogSink 对象中,执行以下操作:

    • includeChildren 设置为 True

    • 设置 filter 属性。Logging 会将所有项目中的所有日志条目与该过滤条件匹配。

      如需查看一些实用过滤条件示例,请转到为汇总接收器创建过滤条件

    • 像设置任何接收器一样设置其余 LogSink 字段。如需了解详情,请参阅创建接收器

  3. 调用 organizations.sinks.createfolders.sinks.create 以创建接收器。

  4. 从 API 响应返回的 writer_identity 字段中检索服务帐号名称。

  5. 授权该服务帐号向接收器目标位置写入内容。

    如果您无权对接收器目标位置进行更改,请将该服务帐号名称发送给可以代您执行更改的人员。

    如需详细了解如何为资源授予服务帐号权限,请查看接收器目标位置的以下链接:

command-line

如需创建日志记录接收器,请使用 logging sinks create 命令。

  1. 提供接收器名称、接收器目标位置、过滤条件以及文件夹、结算帐号或组织的 ID。

    例如,在文件夹级层设置汇总接收器,如下所示:

    gcloud logging sinks create SINK_NAME \
    storage.googleapis.com/BUCKET_NAME --include-children \
    --folder=FOLDER_ID --log-filter="logName:activity"

    注意:

    • 如需在组织级层创建接收器,请将 --folder=[FOLDER_ID] 替换为 --organization=[ORGANIZATION_ID]。如需在结算帐号级层创建接收器,则将其替换为 --billing-account=[BILLING_ACCOUNT_ID]

    • 如需让接收器包含组织内的所有项目,必须设置 --include-children 标志,即使 --organization 标志传递给 create 也是如此。如果将此标志设置为 false(默认值),接收器将仅从主机资源路由日志。

    • 您必须具有 parent 的 Logs Configuration Writer IAM 角色才能创建接收器。如需详细了解 Logging IAM 角色,请参阅访问权限控制指南

    • 如需查看实用过滤条件的一些示例,请转到创建接收器gcloud 命令行工具示例。

  2. 从命令输出中检索用于创建接收器的服务帐号名称。

  3. 授权该服务帐号向接收器目标位置写入内容。

    如果您无权对接收器目标位置进行更改,请将该服务帐号名称发送给可以代您执行更改的人员。

    如需详细了解如何为资源授予服务帐号权限,请查看接收器目标位置的以下链接:

为汇总接收器创建过滤条件

与任何接收器一样,汇总接收器中包含一个用于选择单个日志条目的过滤条件。如需详细了解过滤条件,请转到日志记录查询语言

以下是一些在使用汇总接收器功能时有用的过滤条件比较示例。部分示例使用以下表示法:

  • : 是子字符串运算符。请勿将其替换为 = 运算符。
  • ... 表示任何其他过滤条件比较。
  • 变量用彩色文本表示。请用有效值替换变量。

选择日志源

如需路由来自特定 Cloud 项目、文件夹或组织的日志,请使用以下示例比较之一:

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

选择受监控的资源

如仅需从 Cloud 项目中的特定受监控的资源路由日志,请使用多项比较来准确指定资源:

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

如需查看资源类型列表,请转到受监控的资源类型

选择日志条目示例

如需路由随机选取的日志条目,请添加 sample 内置函数。例如,要仅路由与当前过滤条件匹配的 10% 的日志条目,请使用以下添加函数:

sample(insertId, 0.10) AND ...

如需了解详情,请查看 sample 函数

如需详细了解 Cloud Logging 过滤条件,请参阅 Logging 查询语言

价格

路由日志可免费使用,但可能会产生目标位置费用。如需了解详情,请查看相应产品的价格页面: