使用 Log Analytics 查询和分析日志

本文档介绍了如何查询和分析已升级为使用 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:

  1. 在 Google Cloud 控制台中,转到日志存储页面:

    前往日志存储

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 对于包含您要查询的日志视图的每个日志存储桶,请确保日志分析可用列显示 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 查询,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Log Analytics 页面:

    转到 Log Analytics

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 日志视图列表中,找到相应视图,然后选择查询查询窗格会填充默认查询,其中包含所查询日志视图名称的表名称。此名称的格式为 project_ID.region.bucket_ID.view_ID

    您还可以在查询窗格中输入查询,或修改显示的查询。如需查看示例查询,请参阅查询示例

    如需指定时间范围,我们建议您使用时间范围选择器。不过,您可以添加一个用于指定 timestamp 字段的 WHERE 子句。如果查询包含 timestamp 字段,则该时间戳会替换时间范围选择器中所选的时间范围,并且时间范围选择器会被停用。

  3. 确保工具栏中显示标签为运行查询的按钮。

    如果工具栏显示 Run in BigQuery(在 BigQuery 中运行),请点击 Settings(设置),然后选择 Log Analytics(默认)

  4. 运行查询。

    系统会执行查询,并在结果标签页中显示查询结果。

    您可以使用工具栏选项设置查询格式、清除查询,以及打开 BigQuery SQL 参考文档。

  5. 可选:创建图表或将结果保存到自定义信息中心。

    默认情况下,查询结果会以表格的形式显示。不过,您可以创建图表,也可以将表格或图表保存到自定义信息中心

    如需了解如何创建和配置图表,以及如何将查询结果保存到信息中心,请参阅用图表显示 SQL 查询结果

显示日志视图的架构

日志视图的架构定义了其结构以及每个字段的数据类型。这些信息对您来说非常重要,因为它们决定了您构建查询的方式。例如,假设您要计算 HTTP 请求的平均延迟时间。您需要了解如何访问延迟时间字段,以及该字段是存储为整数(例如 100)还是存储为字符串(例如 "100")。当延迟时间数据存储为字符串时,查询必须先将值转换为数字值,然后才能计算平均值。

当列的数据类型为 JSON 时,架构不会列出该列可用的字段。例如,日志条目可以包含一个名为 json_payload 的字段。将日志存储桶升级为使用 Log Analytics 后,该字段会映射到数据类型为 JSON 的列。架构不会指明列的子字段。也就是说,您无法使用架构来确定 json_payload.url 是否为有效的引用。

如需确定日志视图的架构,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Log Analytics 页面:

    转到 Log Analytics

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 日志视图列表中,找到日志视图,然后选择日志视图的名称。

    系统会显示架构。您可以使用过滤条件字段查找特定字段。您无法修改架构。

后续步骤