在 Log Analytics 中查询和查看日志

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

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

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

准备工作

  • 确保您的日志存储桶已升级为使用 Log Analytics。日志存储页面列出了您的日志存储分区及其配置信息。

    在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择日志存储

    前往日志存储

  • 如需获取加载日志分析页面、运行查询和查看日志所需的权限,请让管理员授予您项目的以下 IAM 角色:

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

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

    日志分析页面上查看日志条目和运行查询所需的权限与在日志浏览器页面上查看日志所需的权限相同。如需了解查询用户定义的存储桶的视图或查询 _Default 日志存储桶的 _AllLogs 视图所需的其他角色,请参阅 Cloud Logging 角色

  • 如需获取查看日志存储分区的关联 BigQuery 数据集所需的权限,请让管理员授予您项目的 Log Link Accessor (roles/logging.linkViewer) IAM 角色。

  • 如需获取在 BigQuery 中查看数据所需的权限,请让管理员授予您项目的以下 IAM 角色:

查询日志视图

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

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

  1. 在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics

    转到 Log Analytics

  2. 日志视图列表中,找到相应视图,然后选择查询查询窗格中填充了默认查询,其中包括所查询的表的名称。

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

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

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

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

    此时将执行查询,并且查询的结果将显示在结果标签页中。

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

显示视图的架构

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

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

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

  1. 在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics

    转到 Log Analytics

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

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

保存查询

您运行的所有查询都会自动保存 30 天,您可以在日志分析页面上选择最近标签页来访问这些查询。您可以搜索、查看、运行和分享最近标签页上列出的查询。

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

每个 Google Cloud 项目可以节省 10,000 个查询。

控制台

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

  1. 在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics

    转到 Log Analytics

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

    如需填充查询窗格,您可以输入新查询、从最近标签页中选择一个查询,或者从已保存标签页中选择一项查询。

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

  3. 点击 Save 并填写 NameDescription 字段。您为这些字段设置的值会显示在已保存标签页中。

  4. 可选:如需允许有权访问 Google Cloud 项目视图的日志分析页面的所有用户,并运行已保存的查询,请启用与项目共享切换开关。

    默认情况下,此切换开关处于停用状态,只有您自己可以查看。

  5. 点击保存查询

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

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

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

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

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

API

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

您可以使用 savedQueries.create 方法的参考页面上的 API Explorer widget 执行该方法。对于 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 控制台的导航面板中,选择 Logging,然后选择 Log Analytics

    转到 Log Analytics

  2. Query 窗格中填充查询,然后点击 Run query

    如需填充查询窗格,您可以输入新查询、从最近标签页中选择一个查询,或者从已保存标签页中选择一项查询。

  3. 点击 分享链接

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

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

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

API

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

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

如需查看或重新运行查询,请选择日志分析页面上的最近标签页,然后找到相应查询:

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

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

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

使用 BigQuery 查询日志

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

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

  1. 在 Google Cloud 控制台的导航面板中,选择 Logging,然后选择 Log Analytics

    转到 Log Analytics

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

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

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

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

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

  4. 点击运行查询

后续步骤