本文档介绍了如何为日志存储桶创建关联的数据集,以及如何查询和查看该数据集中的日志。例如,您可以创建关联的数据集,以便使用预留的 BigQuery 槽位在 Log Analytics 上运行查询。同样,您可能需要关联的数据集,以便在 BigQuery 或 Looker Studio 中编写查询,将日志数据与其他业务数据联接起来。
如果您不熟悉 Log Analytics,请参阅 Log Analytics 概览。
何时需要关联的数据集
使用默认的 Cloud Logging 服务时,您无需关联 BigQuery 数据集,即可向 Log Analytics 页面上的日志视图发出查询。您可以保存和分享查询,还可以将结果保存到自定义信息中心。
如需执行以下任一操作,您都需要关联的 BigQuery 数据集:
- 将日志条目数据与其他 BigQuery 数据集联接。
- 从其他服务(例如 BigQuery Studio 页面或 Looker 数据洞察)查询日志数据。
- 通过在 BigQuery 预留槽中运行从 Log Analytics 运行的查询,提升查询性能。
- 创建用于监控 SQL 查询结果的提醒政策。如需了解详情,请参阅使用提醒政策监控 SQL 查询结果。
通过日志存储桶的关联 BigQuery 数据集,BigQuery 可以读取日志存储桶中的数据。
如果您在预留的 BigQuery 槽上运行查询,则查询需遵循容量计算价格。此外,如果您使用 Log Analytics 以外的服务查询数据,则可能需要根据相应服务支付其他费用。请参阅您所用服务的价格页面。
准备工作
本部分介绍了在使用 Log Analytics 之前必须完成的步骤。
配置日志存储分区
确保您的日志存储分区已升级为使用 Log Analytics:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
- 对于包含您要查询的日志视图的每个日志存储桶,请确保日志分析可用列显示打开。如果系统显示升级,请点击升级并完成对话框。
配置 IAM 角色和权限
本部分介绍使用 Log Analytics 所需的 IAM 角色或权限:
-
如需获得使用 Log Analytics 和查询日志视图所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
如需查询
_Required
和_Default
日志存储分区,请使用以下角色:Logs Viewer (roles/logging.viewer
) -
如需查询项目中的所有日志视图,请使用以下角色:
Logs View Accessor (
roles/logging.viewAccessor
)
您可以通过以下任一方式将主账号限制为只能访问特定的日志视图:向项目级别授予的日志视图访问权限角色授予中添加 IAM 条件,或者向日志视图的政策文件中添加 IAM 绑定。如需了解详情,请参阅控制对日志视图的访问权限。
这些权限与您在 Logs Explorer 页面上查看日志条目时所需的权限相同。如需了解查询用户定义的存储桶中的视图或查询
_Default
日志存储桶的_AllLogs
视图所需的其他角色,请参阅 Cloud Logging 角色。 -
如需查询
-
如需获得创建和查询关联数据集所需的权限,请让管理员向您授予存储日志存储桶的项目的以下 IAM 角色:
-
如需创建和查看关联的数据集,请使用以下角色:Logs Configuration Writer (
roles/logging.configWriter
) -
如需使用预留的 BigQuery 槽位对关联的数据集运行查询,请执行以下操作:
-
BigQuery User (
roles/bigquery.user
) -
BigQuery Job User (
roles/bigquery.jobUser
)
-
BigQuery User (
-
如需在 BigQuery Studio 中查看关联的数据集,请授予本步骤中提及的所有角色以及以下角色。您可以向数据集或项目授予此角色:
BigQuery Data Viewer (
roles/bigquery.dataViewer
)
-
如需创建和查看关联的数据集,请使用以下角色:Logs Configuration Writer (
验证您的 BigQuery 版本
如果您想使用预留的 BigQuery 槽位从 Log Analytics 页面查询日志数据,并且您使用的项目具有虚拟私有云 (VPC) 服务控制功能,请确保您使用的是 BigQuery 企业版。如需了解详情,请参阅了解 BigQuery 版本。
创建关联的 BigQuery 数据集
如需使用 BigQuery 功能分析日志数据,请升级日志存储桶以使用 Log Analytics,然后创建关联的数据集。采用此配置时,Logging 会存储日志数据,但 BigQuery 可以读取日志数据。
Google Cloud 控制台
如需为现有日志存储桶创建指向 BigQuery 数据集的链接,请执行以下操作:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到日志存储桶,然后验证“Log Analytics 可用”列是否显示“打开”。
如果此列显示“升级”,则表示日志存储桶尚未升级为使用 Log Analytics。配置 Log Analytics:
- 点击升级。
- 在对话框中点击确认。
升级完成后,请继续执行下一步。
在日志存储桶上,点击更多图标 more_vert,然后点击修改存储桶。
系统随即会打开修改日志存储桶对话框。
选择创建关联到此存储桶的新 BigQuery 数据集,然后输入新数据集的名称。
每个 Google Cloud 项目的数据集名称不得重复。如果您输入现有数据集的名称,则会收到以下错误:
Dataset name must be unique in the selected region.
点击完成,然后点击更新存储桶。
在 Logging 在日志存储空间页面上显示关联的数据集名称后,BigQuery 可能需要几分钟时间才能识别该数据集。
gcloud
如需为已升级为使用日志分析的日志存储桶创建关联数据集,请运行 gcloud logging links create
命令:
gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
您提供的 LINK_ID 将用作 BigQuery 数据集的名称,并且此字段的值必须在您的 Google Cloud 项目中具有唯一性。
links create
命令是异步的。异步方法的返回值是一个 Operation
对象,其中包含有关方法进度的相关信息。方法完成后,Operation
对象会包含状态。如需了解详情,请参阅异步 API 方法。
links create
命令需要几分钟才能完成。
例如,以下命令会为名为 my-bucket
的日志存储桶创建名为 mylink
的关联数据集:
gcloud logging links create mylink --bucket=my-bucket --location=global
每个 Google Cloud 项目的数据集名称不得重复。如果您尝试创建与现有数据集同名的其他数据集,则会收到以下错误:
BigQuery dataset with name "LINK_ID" already exists.
如果您尝试为未升级为使用 Log Analytics 的日志存储桶创建关联的数据集,系统会报告以下错误:
A link can only be created for an analytics-enabled bucket.
REST
如需为使用 Log Analytics 升级的现有日志存储桶创建关联的 BigQuery 数据集,请调用 Cloud Logging API 的异步 projects.locations.buckets.links.create
方法。
请按以下步骤准备方法的参数:
- 构建
create
命令的请求正文。请求正文的格式为Link
对象。 - 对于该命令的查询参数,请使用
linkId=LINK_ID
。您提供的 LINK_ID 将用作 BigQuery 数据集的名称,并且此字段的值必须在您的 Google Cloud 项目中具有唯一性。
对异步方法的响应是一个 Operation
对象。此对象包含有关该方法进度的相关信息。方法完成后,Operation
对象会包含状态。如需了解详情,请参阅异步 API 方法。
links.create
方法需要几分钟才能完成。
每个 Google Cloud 项目的数据集名称不得重复。如果您尝试创建与现有数据集同名的其他数据集,则会收到以下错误:
BigQuery dataset with name "LINK_ID" already exists.
如果您尝试为未升级为使用 Log Analytics 的日志存储桶创建关联的数据集,系统会报告以下错误:
A link can only be created for an analytics-enabled bucket.
从 BigQuery 运行查询
如果您有一个使用 Log Analytics 和关联的数据集的日志存储桶,则可以使用 BigQuery Studio 页面查看和查询关联的数据集。采用这种配置后,您可以使用仅在 BigQuery Studio 中提供的命令、工作流和数据集来分析数据集。
如需从 Log Analytics 打开 BigQuery,然后查询关联的数据集,请执行以下操作:
确保您要查询的日志视图所在的日志存储桶存在关联的数据集:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到日志存储桶,然后验证 BigQuery 关联的数据集列是否显示了网址。如果该条目为空,则必须创建关联数据集。如需了解这些步骤,请参阅创建关联的 BigQuery 数据集
-
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在日志视图列表中,找到日志视图,然后选择查询。查询窗格中会填充默认查询。您还可以在查询窗格中输入查询,或修改显示的查询。
在工具栏中,展开标记为运行查询或在 BigQuery 中运行的按钮,然后选择在 BigQuery 中打开。
系统会打开 BigQuery Studio 页面。修改了查询的
FROM
语句,以使用 BigQuery 表路径语法指定关联数据集上日志视图的路径。您还可以修改显示的查询。
在 BigQuery Studio 页面上,点击运行查询。
对预留的 BigQuery 槽运行 Log Analytics 查询
如需尽可能缩短 Log Analytics 查询的执行时间,请在预留的 BigQuery 槽中运行这些查询。Log Analytics 页面已预配置为使用默认的 Log Analytics 服务,这意味着您的查询必须与其他查询竞争有限的槽位空间。如果没有可用的槽,查询的执行会延迟。您可以通过在预留的 BigQuery 槽上运行查询来消除这些延迟。
如需向日志视图发出 SQL 查询,请执行以下操作:
确保您要查询的日志视图所在的日志存储桶存在关联的数据集:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
找到日志存储桶,然后验证 BigQuery 关联的数据集列是否显示了网址。如果该条目为空,则必须创建关联数据集。如需了解这些步骤,请参阅创建关联的 BigQuery 数据集
-
确保您已配置预留的 BigQuery 槽:
配置 Log Analytics 以便在预留的 BigQuery 槽上运行查询:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在日志视图列表中,找到相应视图,然后选择查询或输入查询。
如果查询窗格显示引用
FROM
语句的错误消息,则无法将表解析为特定的日志视图。如需了解如何解决此失败问题,请参阅错误FROM clause must contain exactly one log view
。前往工具栏,确保系统显示标签为在 BigQuery 上运行的按钮。
如果工具栏显示 Run Query,请点击 settings Settings,然后选择 BigQuery。
如果 Run on BigQuery(在 BigQuery 中运行)按钮处于停用状态,则需要创建关联的数据集。
运行查询。
您可以使用工具栏选项设置查询格式、清除查询,以及打开 BigQuery SQL 参考文档。
-