查询和查看日志概览

本文档介绍了如何使用 Google Cloud 控制台查询、查看和分析日志条目。您可以使用两个界面,即日志浏览器和 Log Analytics。您可以使用这两个界面查询、查看和分析日志;不过,它们使用不同的查询语言,并且具有不同的功能。如需排查问题和探索日志数据,我们建议使用日志浏览器。如需生成数据分析和趋势,我们建议您使用 Log Analytics。您可以发出 Logging API 命令来查询日志并保存查询。您还可以使用 Google Cloud CLI 查询日志。

日志浏览器

日志浏览器旨在帮助您排查服务和应用性能问题并进行分析。例如,直方图会显示错误率。如果您发现错误猛增或发现了有趣的内容,可以找到并查看相应的日志条目。当日志条目与错误组相关联时,日志条目会带有选项菜单注释,以便您访问有关错误组的更多信息。

Cloud Logging API、Google Cloud CLI 和日志浏览器支持相同的查询语言。为了简化使用日志浏览器时的查询构建过程,您可以通过使用菜单、输入文本以及在某些情况下使用显示单个日志条目时包含的选项来构建查询

Logs Explorer 不支持汇总操作,例如统计包含特定模式的日志条目数。如需执行汇总操作,请对日志存储桶启用分析,然后使用 Log Analytics。

如需详细了解如何使用日志浏览器搜索和查看日志,请参阅使用日志浏览器查看日志

Log Analytics

借助 Log Analytics,您可以运行查询来分析日志数据,然后查看或以图表形式显示查询结果。借助图表,您可以识别日志在一段时间内的模式和趋势。以下屏幕截图展示了 Log Analytics 中的图表功能:

Log Analytics 的界面。

例如,假设您正在排查问题,并且想要了解在一段时间内向特定网址发出的 HTTP 请求的平均延迟时间。将日志存储桶升级为使用 Log Analytics 后,您可以使用 SQL 查询来查询存储在日志存储桶中的日志。这些 SQL 查询还可以包含管道语法。通过对日志进行分组和汇总,您可以深入了解日志数据,从而缩短问题排查时间。

借助 Log Analytics,您可以查询日志视图。日志视图具有固定的架构,与 LogEntry 数据结构相对应。

您还可以使用 BigQuery 查询日志视图。例如,假设您想使用 BigQuery 将日志中的网址与已知恶意网址的公开数据集进行比较。若要让您的日志数据对 BigQuery 可见,请升级存储桶以使用 Log Analytics,然后创建关联的数据集

您可以继续使用日志浏览器排查问题,并查看升级后的日志分桶中的各个日志条目。

限制

  • 如需将现有日志存储桶升级为使用 Log Analytics,请遵循以下限制:

    • 日志存储桶处于解锁状态,除非是 _Required 存储桶。
    • 该存储桶没有待处理的更新。
  • 对于已升级为使用 Log Analytics 的日志存储分区,您无法移除 Log Analytics 支持。

  • 只有在升级完成后写入的日志条目才可用于分析。

  • 如果日志存储桶已配置字段级访问权限控制,您将无法使用 Log Analytics 页面查询日志视图。不过,您可以通过 Logs Explorer 页面发出查询,也可以查询关联的 BigQuery 数据集。由于 BigQuery 不遵循字段级访问权限控制,因此如果您查询关联的数据集,则可以查询日志条目中的所有字段。

  • 如果您查询使用不同 Cloud KMS 密钥配置的多个日志存储分区,除非满足以下约束条件,否则查询将失败:

    • 日志存储分区位于同一位置。
    • 作为日志分桶的父级资源的文件夹或组织配置了默认密钥
    • 默认密钥与日志存储分区位于同一位置。

    满足上述约束条件后,父级的 Cloud KMS 密钥会对 Log Analytics 查询生成的所有临时数据进行加密。

  • 系统不会在运行查询之前移除重复的日志条目。这种行为与您使用日志浏览器查询日志条目时不同,后者会通过比较日志名称、时间戳和插入 ID 字段来移除重复条目。如需了解详情,请参阅问题排查:Log Analytics 结果中存在重复的日志条目

价格

Cloud Logging 不会对将日志路由到受支持的目标位置收费;但目标位置可能会收费。除了 _Required 日志存储桶外,Cloud Logging 会对将日志流式传输到日志存储桶以及存储时间超过日志存储桶默认保留期限的部分收费。

Cloud Logging 不会对复制日志、定义日志范围或通过日志浏览器Log Analytics 页面发出的查询收费。

有关详情,请参阅以下文档:

升级存储桶以使用 Log Analytics,然后创建关联的数据集时,您无需支付 BigQuery 提取或存储费用。为日志存储桶创建关联的数据集时,您无需将日志数据注入到 BigQuery。而是通过关联的数据集获得对日志存储桶中存储的日志数据的读取权限。

对 BigQuery 关联的数据集运行 SQL 查询(包括使用 BigQuery Studio 页面、BigQuery API 和 BigQuery 命令行工具)时,需要支付 BigQuery 分析费用。

博客

如需详细了解 Log Analytics,请参阅以下博文:

后续步骤