在 Log Analytics 中查询和查看日志

本文档介绍了如何查询和查看存储在已升级为使用 Log Analytics 的日志存储分区中的日志。您可以使用 SQL 查询这些存储分区中的日志,从而过滤和聚合日志。如需了解 Cloud Logging 的 Log Analytics 功能,请参阅日志分析概览

升级日志存储桶以使用 Log Analytics 时,不会限制对 Logs Explorer 的访问权限。您可以继续通过日志浏览器来排查问题并查看这些存储分区中的各个日志条目。

如需了解如何升级日志存储桶以使用 Log Analytics,请参阅以下文档:

准备工作

  1. 如需获取使用 Log Analytics 以及执行创建关联数据集等活动所需的权限,请让管理员授予您项目的以下 IAM 角色:

    • 如需查询 _Required_Default 日志存储分区,请执行以下操作: 日志查看器 (roles/logging.viewer)
    • 如需查询自定义日志存储分区,请执行以下操作: Logs View Accessor (roles/logging.viewAccessor)
    • (可选)如需创建关联的 BigQuery 数据集,请执行以下操作: Logs Configuration Writer (roles/logging.configWriter)
    • (可选)如需查看关联的 BigQuery 数据集,请执行以下操作: Log Link Accessor (roles/logging.linkViewer)
    • (可选)如需在 BigQuery 中运行查询,请执行以下操作: BigQuery Job User (roles/bigquery.jobUser)
    • (可选)如需在 BigQuery 中查看数据,请执行以下操作: BigQuery Data Viewer (roles/bigquery.dataViewer)
    • (可选)如需将图表保存到信息中心,请执行以下操作:Monitoring Editor (roles/monitoring.editor)

    如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

  2. 对于要查询的日志视图,请转到日志存储页面,并验证存储这些日志视图的日志存储分区是否已升级以使用 Log Analytics。如有必要,请升级日志存储桶。

    在 Google Cloud 控制台中,前往日志存储页面:

    前往日志存储

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

  3. 可选:如果要使用 BigQuery 数据集查询日志数据,请创建关联的 BigQuery 数据集

查询日志视图

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

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

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

    转到 Log Analytics

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

  2. 日志视图列表中,找到该视图,然后选择查询Query 窗格中填充默认查询,该查询包含所查询的表的名称。

    您还可以在查询窗格中输入查询,或修改显示的查询。

    如需设置查询的时间范围,请使用时间范围选择器或添加指定 timestamp 字段的 WHERE 子句。我们建议您使用时间范围选择器来指定时间范围。

    如果您在查询中指定时间戳,则该时间戳将替换时间范围选择器中所选时间范围,并且时间范围选择器将被停用。如需使用时间范围选择器,请从查询的 WHERE 子句中移除时间戳表达式。

  3. 点击工具栏中的运行查询

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

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

显示视图的架构

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

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

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

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

    转到 Log Analytics

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

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

    此时会显示表的架构。您可以使用过滤条件字段找到特定字段。您无法修改架构。

保存查询

您运行的所有查询都会自动保存 30 天,您可以通过选择 Log Analytics 页面上的近期标签页来访问您运行的所有查询。您可以搜索、查看、运行和共享最近标签页中列出的查询。

如果您希望将查询保留以供将来使用,请使用对您有用的信息对其进行注释,或让团队成员查看和运行您的查询,然后保存该查询。您可以按名称、说明和可见性标签对已保存的查询进行搜索和排序。您还可以修改和删除这些查询。系统会保留您保存的查询,直到您将其删除。

每个 Google Cloud 项目可以保存 10,000 个查询。

控制台

如需保存查询,请执行以下操作:

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

    转到 Log Analytics

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

  2. 使用查询填充 Query 窗格。

    如需填充 Query 窗格,您可以输入新查询、从 Recent 标签页选择查询,或从 Saved 标签页中选择查询。

    Query 窗格中的查询有效时,系统会启用 Save

  3. 点击 保存,然后填写名称说明字段。您为这些字段设置的值会显示在 Saved 标签页中。

  4. 可选:若要让有权访问 Google Cloud 项目视图的 Log Analytics 页面的所有人并运行您保存的查询,请开启与项目共享切换开关。

    默认情况下,此切换开关处于停用状态,且公开范围仅限您自己。

  5. 点击保存查询

  6. 可选:如需查看、排序和运行您可见的已保存查询,请选择已保存标签页。

    您可以按名称、说明和可见性标签对已保存的查询进行排序和过滤。您还可以按查询内容进行过滤。

您可以使用已保存标签页中的选项来修改和删除您创建的查询:

  • 如需修改查询,请点击 更多选项,然后选择修改。您可以修改 NameDescription 字段的值;但是,查询本身无法修改。

  • 如需删除已保存的查询,请点击 更多选项,然后选择删除

API

如需使用 Logging API 保存查询,请使用 savedQueries.create 方法。如需详细了解此方法、其参数和响应数据,请参阅 savedQueries.create 的参考页面。

您可以使用方法参考页面上的 APIs Explorer 微件来执行 savedQueries.create 方法。对于 Log Analytics 查询,您必须指定 opsAnalyticsQuery 字段。以下示例展示了包含 SavedQuery 实例的示例请求正文:

{
  "parent": "projects/my-project/locations/global"
  "saved_query":
  {
     "ops_analytics_query":
     {
        "sql_query_text" :
           "SELECT
           timestamp, log_name, severity, json_payload, resource, labels
           FROM
           `TABLE`
           WHERE
           timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
           ORDER BY timestamp ASC
           LIMIT 100"
     }
     "visibility": "PRIVATE"
  }
}

共享查询

控制台

排查问题时,或看到异常结果时,您可能需要与团队成员分享查询及其结果。在 Log Analytics 页面上查看查询结果时,您可以复制一个网址,该网址在打开后会显示您运行的查询及其结果。

如需与团队成员共享查询和结果,请执行以下操作:

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

    转到 Log Analytics

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

  2. 查询窗格中填充查询,然后点击运行查询

    如需填充 Query 窗格,您可以输入新查询、从 Recent 标签页选择查询,或从 Saved 标签页中选择查询。

  3. 点击 分享链接

  4. 将链接发送给您的团队成员。

    当您的团队成员打开链接时,Log Analytics 页面会打开。此页面显示您运行的查询以及查询结果。

    如需成功打开该网址,团队成员在 Google Cloud 项目的 Identity and Access Management 角色必须包含查看 Logging 页面所需的权限。

API

如需使用 Logging API 创建共享查询,您可以使用 savedQueries.Create 方法并在 visibility 字段中指定 SHARED 值。

查看和运行最近的查询或已保存的查询

如需查看或重新运行查询,请选择 Log Analytics 页面上的近期标签页,然后找到相应查询:

  • 如需运行查询,请点击运行
  • 如需查看查询,请使用 更多选项菜单中的选项。

如需查看、修改或运行已保存的查询,请选择 Log Analytics 页面上的已保存标签页,然后找到相应查询:

  • 如需运行查询,请点击运行
  • 如需修改、查看或删除查询,请使用 更多选项菜单中的选项。

使用 BigQuery 查询日志

如果您的日志存储桶已升级为使用 Log Analytics,您还可以通过创建关联的 BigQuery 数据集来查看 BigQuery 中的数据。通过此配置,您可以使用 BigQuery 将日志数据(可通过关联的数据集访问)与其他商家数据相联接。如需了解如何创建关联数据集,请参阅授予 BigQuery 对日志存储桶的查看权限

如需查询关联的数据集,请执行以下操作:

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

    转到 Log Analytics

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

  2. 日志视图列表中,找到该视图,然后选择查询Query 窗格中填充默认查询。

    您还可以在查询窗格中输入查询,或修改显示的查询。

  3. 点击工具栏中的在 BigQuery 中运行

    BigQuery Studio 页面随即会打开。查询的 FROM 语句已修改为使用 BigQuery 表路径语法指定关联数据集上的视图路径。

    您还可以修改显示的查询。

  4. 点击运行查询

后续步骤