使用 Log Analytics 查询和分析日志

本文档介绍了如何查询和分析已升级为使用 Log Analytics 的日志存储桶中存储的日志数据。您可以使用 SQL 查询这些存储分区中的日志, 用于过滤和汇总日志如需查看查询结果,请执行以下操作: 您可以使用表格形式,也可以使用图表直观呈现数据。 您可以将这些表格和图表保存到自定义信息中心。

您可以使用日志浏览器查看 日志存储桶,无论该日志存储桶是否已 已升级为使用 Log Analytics。

使用 Log Analytics 时存在一些限制。如需更多信息 请参阅 Log Analytics:限制

关于关联的数据集

Log Analytics 支持 关联的 BigQuery 数据集 BigQuery 拥有对底层数据的读取权限。如果您选择 创建关联数据集,然后可以执行以下操作:

  • 将日志条目数据与其他 BigQuery 数据集联接起来。
  • 从其他服务(例如 BigQuery Studio 页面或 Looker 数据洞察)查询日志数据。
  • 提高通过 Log Analytics 运行的查询的性能 来运行这些命令 BigQuery 预留槽

本文档未介绍如何创建关联的数据集,也未介绍如何配置 Log Analytics 以针对预留的槽运行查询。如果您对这些主题感兴趣,请参阅在 BigQuery 中查询关联的数据集

准备工作

在使用 Log Analytics 之前,请执行以下操作:

  • 如需获取使用 Log Analytics 所需的权限, 请让管理员授予您 项目的以下 IAM 角色:

    • 如需查询 _Required_Default 日志存储桶,请使用以下角色: Logs Viewer (roles/logging.viewer)
    • 如需查询项目中的所有日志视图,请使用以下角色: Logs View Accessor (roles/logging.viewAccessor)

    您可以通过以下任一方式将主账号限制为只能访问特定日志视图:向项目级别授予的日志视图访问权限角色授予中添加 IAM 条件,或者向日志视图的政策文件中添加 IAM 绑定。如需了解详情,请参阅控制对日志视图的访问权限

    这些权限与您查看日志条目所需的权限相同 在 Logs Explorer 页面上。如需了解查询用户定义的存储桶中的视图或查询 _Default 日志存储桶的 _AllLogs 视图所需的其他角色,请参阅 Cloud Logging 角色

  • 确保您的日志存储分区已升级为使用 Log Analytics:

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

      前往日志存储

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

    2. 对于包含您要查询的日志视图的每个日志存储桶,请确保日志分析可用列显示打开。如果系统显示升级,请点击升级并完成对话框。

查询日志视图

排查问题时,您可能需要统计字段与模式匹配的日志条目计算 HTTP 请求的平均延迟时间。您可以通过对日志视图运行 SQL 查询来执行这些操作。

如需向日志视图发出 SQL 查询,请执行以下操作:

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

    转到 Log Analytics

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

  2. 日志视图列表中,找到该视图,然后选择查询。通过 Query 窗格填充有默认查询, 包含查询的日志视图名称的表名称。 此名称的格式为 project_ID.region.bucket_ID.view_ID

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

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

  3. 在工具栏中,确保显示了名为 Run query 的按钮。

    如果工具栏显示“在 BigQuery 中运行”,则: 点击 设置,然后选择 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. 日志视图列表中,找到日志视图,然后选择 日志视图的名称。

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

后续步骤