保存和共享 SQL 查询

本文档介绍了如何保存和共享您在 Log Analytics 中创建的查询。

本文档假定您熟悉 Log Analytics 以及如何使用 Log Analytics 页面查询日志数据。如果您不熟悉这些主题,请参阅查询和分析日志

如需了解如何将查询结果绘制成图表,以及如何将这些图表保存到自定义信息中心,请参阅以图表形式显示 SQL 查询结果

准备工作

本部分介绍了在使用 Log Analytics 之前必须完成的步骤。

配置日志存储分区

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

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

    前往日志存储

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

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

配置 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 角色

保存查询

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

如果您想保留某个查询以供日后使用,请为其添加对您有用的信息注释,或者让同事查看和运行您的查询,然后保存该查询。您可以按名称、说明和公开范围标签搜索和排序已保存的查询。您还可以修改和删除这些查询。您保存的查询会一直保留,直到您将其删除。

每个 Google Cloud 项目最多可以保存 1 万个查询。

控制台

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

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

    转到 Log Analytics

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

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

    您可以通过输入新查询、从最近标签页中选择查询,或从已保存标签页中选择查询来填充查询窗格。

    查询窗格中的查询有效时, Save 会处于启用状态。

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

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

    默认情况下,此切换开关处于停用状态,并且仅对您可见。

  5. 点击保存查询

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

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

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

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

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

API

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

您可以使用方法参考页面上的 API 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_NAME_OF_LOG_VIEW`
           WHERE
           timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
           ORDER BY timestamp ASC
           LIMIT 100"
     }
     "visibility": "PRIVATE"
  }
}

共享查询

您可以与有权访问您的 Google Cloud 项目的所有人分享已保存的查询。不过,主账号的 IAM 角色决定了能否运行查询以及查询返回的数据。

控制台

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

如需与同事共享查询和结果,请执行以下操作:

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

    转到 Log Analytics

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

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

    您可以通过输入新查询、从最近标签页中选择查询,或从已保存标签页中选择查询来填充查询窗格。

  3. 点击 Share link(分享链接)。

  4. 将链接发送给您的队友。

    您的同事打开链接后,系统会打开 Log Analytics 页面。此页面会显示您运行的查询及其结果。

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

API

您可以使用 Logging API 通过 savedQueries.Create 方法创建共享查询,并在 visibility 字段中指定值 SHARED。如需了解详情,请参阅 savedQueries.create 参考页面。

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

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

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

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

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

后续步骤