汇总导出

您可以创建汇总导出接收器,该接收器可以导出 Google Cloud Platform 组织的所有项目、文件夹和结算帐号中的日志条目。例如,您可以将组织项目中的审核日志条目汇总并导出到一个中心位置。

概念

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

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

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

创建导出目标位置

必须通过 gcloud 命令行工具、GCP Console 或 GCP API 在创建日志接收器之前创建该接收器的导出目标位置。

对于导出接收器,支持的导出目标位置如下:

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

创建汇总导出接收器

如需在 GCP 文件夹、结算帐号或组织中创建汇总导出接收器,您可以使用 Stackdriver Logging APIgcloud 命令行工具

Logging API

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

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

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

    • includeChildren 设置为 True

    • 设置 filter 属性。请注意,您所有项目中的日志条目都将与该过滤条件进行匹配。

      如需查看一些实用过滤条件示例,请转到将过滤条件与汇总导出结合使用

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

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

  4. 从 API 响应中检索用于创建接收器的服务帐号名称。

  5. 授权该服务帐号向导出目标位置写入内容。

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

    如需详细了解如何为资源授予服务帐号权限,请查看将角色授予服务帐号

gcloud

如需创建日志记录接收器,请使用 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 Cloud IAM 角色才能创建接收器。如需详细了解 Logging Cloud IAM 角色,请查看访问权限控制指南

    • 如需查看一些实用过滤条件示例,请转到将过滤条件与汇总导出结合使用

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

  3. 授权该服务帐号向导出目标位置写入内容。

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

    如需详细了解如何为资源授予服务帐号权限,请查看将角色授予服务帐号

将过滤条件与汇总导出结合使用

与任何导出接收器一样,汇总导出接收器包含一个用于选择个别日志条目的过滤条件。如需详细了解过滤条件,请转到高级日志过滤条件

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

  • : 是子字符串运算符。请勿替换为 = 运算符。
  • ... 表示任何其他过滤条件比较。
  • 变量用方括号 [] 表示。请用有效值替换变量。

选择审核日志

如需导出审核日志,请选择以下示例比较之一:

log_name:"/logs/cloudaudit.googleapis.com"
log_name:"/logs/cloudaudit.googleapis.com%2Factivity" AND...
log_name:"/logs/cloudaudit.googleapis.com%2Fdata_access" AND...
log_name:"/logs/cloudaudit.googleapis.com%2Fsystem_event" AND...

如需了解审核日志,请转到 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 ... 

选择资源

如仅需从项目中的某个特定资源导出日志,请使用多项比较来准确指定资源:

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 函数

如需详细了解 Stackdriver Logging 过滤条件,请转到高级日志过滤条件

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Stackdriver Logging
需要帮助?请访问我们的支持页面