本文档介绍了如何查询和分析已升级为使用 Log Analytics 的日志存储分区中存储的日志数据。您可以使用 SQL 查询这些存储分区中的日志,从而过滤和汇总日志。如需查看查询结果,您可以使用表格形式,也可以使用图表直观呈现数据。您可以将这些表格和图表保存到自定义信息中心。
您可以查询日志存储桶的日志视图。当您查询日志视图时,架构与 LogEntry
数据结构的架构相对应。
您可以使用日志浏览器查看存储在项目日志桶中的日志条目,无论日志存储桶是否已升级为使用 Log Analytics。
Log Analytics 不会删除重复的日志条目,这可能会影响您编写查询的方式。此外,使用 Log Analytics 时也存在一些限制。 如需详细了解这些主题,请参阅以下文档:
关联的数据集简介
Log Analytics 支持创建关联的 BigQuery 数据集,以便 BigQuery 对底层数据拥有读取权限。如果您选择创建关联的数据集,则可以执行以下操作:
- 将日志条目数据与其他 BigQuery 数据集联接。
- 从其他服务(例如 BigQuery Studio 页面或 Looker 数据洞察)查询日志数据。
- 通过在 BigQuery 预留槽中运行从 Log Analytics 运行的查询,提升查询性能。
- 创建用于监控 SQL 查询结果的提醒政策。如需了解详情,请参阅使用提醒政策监控 SQL 查询结果。
本文档未介绍如何创建关联的数据集,也未介绍如何配置 Log Analytics 以针对预留的槽运行查询。如果您对这些主题感兴趣,请参阅在 BigQuery 中查询关联的数据集。
准备工作
本部分介绍了在使用 Log Analytics 之前必须完成的步骤。
配置日志存储分区
确保您的日志存储分区已升级为使用 Log Analytics:
-
在 Google Cloud 控制台中,转到日志存储页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
- 对于包含您要查询的日志视图的每个日志存储桶,请确保日志分析可用列显示 Open。如果系统显示升级,请点击升级并完成对话框。
配置 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 角色。 -
如需查询
查询日志视图
排查问题时,您可能需要统计字段与模式匹配的日志条目或计算 HTTP 请求的平均延迟时间。您可以通过对日志视图运行 SQL 查询来执行这些操作。
如需向日志视图发出 SQL 查询,请执行以下操作:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在日志视图列表中,找到相应视图,然后选择查询。查询窗格会填充默认查询,其中包含所查询日志视图名称的表名称。此名称的格式为
project_ID.region.bucket_ID.view_ID
。您还可以在查询窗格中输入查询,或修改显示的查询。如需查看示例查询,请参阅查询示例。
如需指定时间范围,我们建议您使用时间范围选择器。不过,您可以添加一个用于指定
timestamp
字段的WHERE
子句。如果查询包含timestamp
字段,则该时间戳会替换时间范围选择器中所选的时间范围,并且时间范围选择器会被停用。确保工具栏中显示标签为运行查询的按钮。
如果工具栏显示 Run in BigQuery(在 BigQuery 中运行),请点击 settings Settings(设置),然后选择 Log Analytics(默认)。
运行查询。
系统会执行查询,并在结果标签页中显示查询结果。
您可以使用工具栏选项设置查询格式、清除查询,以及打开 BigQuery SQL 参考文档。
可选:创建图表或将结果保存到自定义信息中心。
默认情况下,查询结果会以表格的形式显示。不过,您可以创建图表,也可以将表格或图表保存到自定义信息中心。
如需了解如何创建和配置图表,以及如何将查询结果保存到信息中心,请参阅用图表显示 SQL 查询结果。
显示日志视图的架构
日志视图的架构定义了其结构以及每个字段的数据类型。这些信息对您来说非常重要,因为它们决定了您构建查询的方式。例如,假设您要计算 HTTP 请求的平均延迟时间。您需要了解如何访问延迟时间字段,以及该字段是存储为整数(例如 100
)还是存储为字符串(例如 "100"
)。当延迟时间数据存储为字符串时,查询必须先将值转换为数字值,然后才能计算平均值。
当列的数据类型为 JSON 时,架构不会列出该列可用的字段。例如,日志条目可以包含一个名为 json_payload
的字段。将日志存储桶升级为使用 Log Analytics 后,该字段会映射到数据类型为 JSON 的列。架构不会指明列的子字段。也就是说,您无法使用架构来确定 json_payload.url
是否为有效的引用。
如需确定日志视图的架构,请执行以下操作:
-
在 Google Cloud 控制台中,前往 Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在日志视图列表中,找到日志视图,然后选择日志视图的名称。
系统会显示架构。您可以使用过滤条件字段查找特定字段。您无法修改架构。