使用 Logging 查询语言构建和保存查询

本文档介绍了如何在使用 Logs Explorer,方法是在查询编辑器字段中编写查询, 从过滤条件菜单中选择这些选项。通过 全部使用 日志记录查询语言

您还可以在“日志浏览器”页面中保存查询,或者使用 Logging API 方法 savedQueries.create

准备工作

  • 如需构建查询,您必须拥有读取日志数据的权限。这些 权限包含在 Logging Viewer (roles/logging.viewer) 角色中。 如需详细了解必要的 IAM 权限,请参阅 Google Cloud 控制台的权限

  • 如需创建和使用专用查询,您的 Identity and Access Management 角色必须 包含 logging.queries.{list, create, get, update, delete} 权限。

  • 如需创建和使用共享查询,您的 Identity and Access Management 角色必须包含 logging.queries.{listShared, share, getShared, updateShared, deleteShared} 项权限。

构建查询

如需使用 Google Cloud 控制台构建查询,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

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

  2. 选择 Google Cloud 项目或其他 Google Cloud 您要查看其日志的资源。

    查看您从 Amazon Web Services (AWS) 发送的日志 添加到 Logging,然后选择 AWS 连接器项目 (位于 Google Cloud 控制台资源选择器中),然后使用 日志浏览器。 AWS 连接器项目会存储您的 AWS 账号的 Amazon 资源名称 (ARN),并将您的 AWS 账号关联到 Google Cloud 服务。如需了解详情,请参阅 从 AWS 账号收集指标
  3. 使用查询窗格构建查询。

    日志浏览器查询窗格。

    Query 窗格提供了多种构建和运行查询表达式的方法:

    • 搜索所有日志字段中的文本。
    • 从过滤条件菜单中选择所需选项。
    • 使用查询编辑器编写或修改查询。
    • 最近已保存建议视图中查看、修改或运行查询 和媒体库标签页。

跨日志字段搜索文本

如需在所有日志字段中搜索文本并查找所有匹配的日志条目,请执行以下操作: 在搜索字段中输入您的搜索字词:

查询窗格中的日志浏览器搜索字段。

您可以搜索字词和词组,搜索字词可包括 布尔值运算符正则表达式

  • 要执行区分大小写的搜索,您必须使用 正则表达式

  • 要沿词元边界执行不区分大小写的搜索,请输入搜索字词 不含反引号或双引号的字词。

    例如,要搜索包含字词 hello 和 单词 world,输入 hello world。此命令将转换为 SEARCH("hello world"),与包含令牌的日志条目匹配 helloworld,按任意顺序排列。由于搜索不区分大小写, 该搜索还与包含令牌 HelloWorld.搜索与令牌 worlds 不匹配。

  • 要沿着词法单元边界对词组执行不区分大小写的搜索, 用反引号将这个词组括起来。

    例如,要搜索词组“hello world”, 输入 `hello world`。 此命令将转换为 SEARCH("`hello world`")。 匹配包含令牌 hello world 的日志条目。 搜索与令牌 hello worlds 不匹配。

  • 要对子字符串执行不区分大小写的搜索,请将文本换行 双引号。例如,"hello world"Hello World 匹配,并且 Hello world.同一查询也与 hello worlds 匹配,因为 不会沿着词元边界执行搜索。

若要查看查询表达式中的搜索字词,请启用显示查询

输入搜索字词后,点击运行查询或按 Enter 键 键。查询结果会显示在查询结果窗格中。

布尔运算符

您的搜索字段条目会被转换为布尔表达式,这些表达式会指定 所选 Google Cloud 资源中所有日志条目的子集。

搜索字段支持使用布尔运算符 ANDORNOT.在搜索表达式中使用布尔运算符时,请注意 以下:

  • 您不能使用括号嵌套规则。搜索内容中的任何括号 表达式解析为搜索字词。
  • 必须将布尔运算符的首字母大写。小写 andor、 和 not 会解析为搜索字词,而不是运算符。

如果不包含任何运算符,所有搜索字词和词组都会由 AND.您可以省略搜索字词之间的 AND 运算符。

ANDOR 运算符为 短路运算符。 您可以在同一表达式中合并 ANDOR 规则。例如,当 两个运算符混合使用,表达式 a AND b OR c AND d 将转换为 以下 Logging 查询语言表达式:

"a"
"b" OR "c"
"d"

NOT 运算符具有最高优先级,其次是 ORAND

NOT 运算符会对后续项执行否定。例如: NOT error 会返回不包含 error 的日志条目。您也可以将 NOT 运算符与 -(减号)运算符搭配使用。例如,以下两个 都是一样的:

"response" AND "successful" AND NOT "error"
"response successful" -"error"

此逻辑也适用于短语,但前提是 -(减号)运算符位于 引号。例如,以下两个查询是相同的:

-"response successful"
NOT "response successful"

使用过滤条件菜单构建查询

您可以使用查询窗格中的过滤条件菜单添加资源、日志名称 和日志严重性参数添加到查询编辑器字段中。这些选项 对应于所有日志的 LogEntry 字段 Logging。

资源日志名称菜单中的选项来源于 Cloud Logging 存储的日志条目。

查询编辑器的过滤菜单

  • 资源:可让您指定 resource.type 和 关联的resource.labels。您可以使用 此过滤条件菜单,以及零个或多个要应用于 查询。资源参数由逻辑运算符 AND 连接。
  • 日志名称:允许您指定 logName。您可以选择 要应用于查询的多个日志名称选择多个日志时 则使用逻辑运算符 OR
  • 严重程度:可让您指定严重程度。您可以选择 多个严重级别,以应用于您的查询。 选择多个严重级别时,逻辑运算符 OR 为 。

如需使用任何过滤条件菜单,请执行以下操作:

  1. 在任意设备上展开 菜单 Query 窗格中过滤条件菜单的位置。

  2. 优化过滤器参数。

  3. 点击应用。您会在查询编辑器字段中看到参数。

    若要查看查询表达式中的搜索字词,请启用显示查询

  4. 查看查询后,点击运行查询。使用 查询结果窗格中会显示查询内容。

对于某些 Compute Engine 资源类型,例如 gce_instancegce_network 时,您会看到资源名称以辅助文本形式显示资源 ID。对于 例如,对于 gce_instance 资源类型,您会看到虚拟机名称 以及虚拟机 ID资源名称可帮助您识别 可用于构建查询的资源 ID。

按时间范围查看日志

您可以通过以下两种方式显示在特定时间范围内写入的日志:

  1. 使用时间范围选择器。
  2. 在查询编辑器字段中添加时间戳表达式。

使用时间范围选择器

默认时间范围是 1 小时,但您可以从预设的时间选项中进行选择 您可以自行指定开始和结束时间,也可以将时间范围设为 时间戳。例如,如果您想查看 过去一周的数据,然后从时间范围中选择过去 1 周 选择器。

您还可以使用时间范围选择器设定时区偏好设置。

在查询编辑器字段中包含时间戳表达式

如需直接将时间戳表达式添加到查询编辑器字段,请执行以下操作: 使用 日志记录查询语言

如果查询编辑器字段包含带时间戳的表达式,则 时间范围选择器已停用,并且查询将时间戳表达式用作 时间范围限制如果查询不使用时间戳表达式,则 查询使用时间范围选择器作为其时间范围限制。

使用 Logging 查询语言编写高级查询

您可以使用 要构建的日志记录查询语言 日志浏览器查询编辑器字段中的更多高级查询:

  1. 如果在 Query 窗格中没有看到查询编辑器字段,请启用 显示查询

  2. 直接在查询编辑器字段中输入查询表达式。

    如果您在搜索字段中添加了任何搜索字词 参数,那么这些参数也会显示在过滤器菜单中 查询编辑器字段进行求值,并作为查询表达式的一部分进行求值。

  3. 检查查询后,点击运行查询

    与您的查询匹配的日志列在 查询结果 窗格。通过 直方图日志字段 窗格也会根据查询表达式进行调整。

如需了解您想要使用的常见查询示例,请参阅使用日志浏览器的查询示例

使用近期查询

当您运行任何查询时,系统会将该查询添加到最近的查询列表中, ,其中包含 30 天内的最后 10,000 次唯一查询。

如需查看最近的查询,请在 Query 窗格中选择 Recent 标签页。 在近期标签页中,您会看到以下选项:

  • Stream:如需运行查询并流式传输结果,请选择此项 选项。
  • 运行:如需运行查询,请选择此选项。
  • 更多选项: 可让您查看查询表达式以及运行查询或保存选项的选项 并将其保存到已保存查询列表中。您也可以直接选择查询来获取这些选项。

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

    1. 点击另存为保存查询对话框随即会打开。
    2. 填写以下字段:

      • 名称(必需):为查询提供名称。名称限制为 64 个字符。
      • 说明(可选):提供说明以帮助标识查询的用途。
      • 包含摘要字段(可选):启用包含摘要字段 然后输入您要显示的摘要字段
      • 截断摘要字段(可选):启用 截断摘要字段,然后选择 截断至,以及是否截断 字段。
    3. 点击保存查询。您现在可以在“已保存的查询”列表中找到该查询。

您还可以对近期查询进行排序和过滤;过滤条件与文本匹配 。

保存和共享查询

通过已保存的查询,您可以存储查询表达式,以便更深入地探索日志 。日志浏览器的查询窗格 已保存标签页,方便您访问已保存的查询。您还可以 使用 Logging API 方法保存查询 savedQueries.create.

您可以保存查询,使其不对外公开,并且只有您自己可以查看 可与 Google Cloud 项目的其他成员共享。分享 查询,则您以及项目中的所有成员都不再拥有该查询 即可访问该查询

控制台

如需保存您在查询编辑器字段中构建的查询表达式,请执行以下操作: 以下:

  1. 点击 Query 窗格中的 Save保存查询对话框随即会打开, 在查询编辑器字段中使用查询表达式。

  2. 填写以下字段:

    • 名称(必需):为查询提供名称。名称限制为 64 个字符。
    • 说明(可选):提供说明以帮助标识查询的用途。
    • 添加自定义摘要字段(可选):启用包含摘要 字段中,然后输入所需的摘要字段。 要显示的内容。
    • 截断摘要字段(可选):启用 截断摘要字段,然后选择 截断至,以及是否截断 字段。
    • 与项目共享:(可选)启用与项目共享以执行以下操作: 与 Google Cloud 项目的其他成员共享您的查询。
  3. 点击保存查询。您保存的查询会显示在 列表。

如需运行已保存的查询,请点击运行。运行查询并流式传输 结果,点击直播

您还可以对已保存的查询进行排序和过滤;过滤条件与文本匹配 。

API

如需使用 Logging API 保存查询,请使用 savedQueries.create 方法结合使用。有关此方法的详情, 参数和响应数据,请参阅 savedQueries.create.

您可以使用savedQueries.create 方法参考页面上的 APIs Explorer 微件。 对于日志浏览器查询,您必须指定 loggingQuery 字段。以下示例展示了示例请求正文 包含 SavedQuery 的一个实例:

{
"parent": "projects/my-project/locations/global"
"savedQueryId": "compute-query"
{
  "displayName": "compute-admin-activity-query",
  "description": "Queries for Compute Engine Admin Activity logs.",

  "loggingQuery":
    {
      "filter": resource.type="gce_instance" AND log_id("cloudaudit.googleapis.com/activity"),
    },
  "visibility": "PRIVATE"
}
}

如需与 Google Cloud 项目的其他成员共享查询,请指定 visibility 字段中的值为 SHARED

  1. 在查询编辑器字段中输入查询。

  2. 点击保存

  3. 填写保存查询对话框中的字段。

  4. 启用与项目共享

  5. 点击保存查询

您的查询现已与 Google Cloud 项目的其他用户共享。

如需分享已保存的查询,请执行以下操作:

  1. 选择已保存标签页。
  1. 选择 更多选项,然后选择 修改,或直接选择查询。

  2. 修改查询对话框中填写信息。

    例如,要与其他成员共享查询,请启用 与项目共享,然后点击更新查询

查看已保存的查询

您可以查看不公开查询以及与其他成员共享的查询 在 Google Cloud 项目的已保存标签页中:

控制台

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

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

  2. 选择 Google Cloud 项目或其他 Google Cloud 您要查看其日志的资源。

  3. 点击全部

  4. 公开范围列进行排序。

Visibility(可见性)列指示是否共享查询以及如何共享:

Visibility(可见性)列指示查询是否已共享:

  • 共享:与 Google Cloud 项目。
  • 不公开:您已保存且只有您可以看到的查询。

API

您可以使用 Logging API 来查看私有和共享 使用 savedQueries.list 方法查询查询。

例如,以下请求正文列出了所有共享日志浏览器 带有通配符位置 ID 的查询:

{
"parent": "name": projects/PROJECT_ID/locations/-
    "visibility": "SHARED"
    "filter": "explorer"
}

使用建议的查询

Logging 会根据您的上下文,生成建议的查询, Google Cloud 项目,例如您使用的 Google Cloud 产品。 建议的查询可帮助您发现问题并提供数据洞见 系统的整体健康状况例如,检测您 使用 Google Kubernetes Engine,Logging 可能会建议一个查询, 查看容器的所有错误日志

要查看和运行建议的查询,请选择建议的标签页 Query 窗格。建议标签会显示一系列查询,每个查询都包含 和以下选项:

  • Stream:如需运行查询并流式传输结果,请选择此项 选项。
  • 运行:如需运行查询,请选择此选项。
  • 更多选项: 可让您查看查询表达式的详细信息以及运行查询的选项 或保存该查询。您也可以直接选择查询来获取这些选项。

    如需查看建议查询的详细信息,请执行以下任一操作:

    • 选择查询所在的行。

    • 点击 更多 然后选择查看。此时将打开 Query details 对话框。

    查询详情对话框中,您会看到该查询以及用于运行 在线播放另存为

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

      1. 点击另存为
      2. 填写保存查询对话框中的字段。

      修改后的查询会显示在已保存列表中,您可以在其中选择 稍后运行查询。

    • 如需立即运行查询,请点击运行。查询会运行,并显示于 查询编辑器字段。

    • 如需立即运行查询并流式传输结果,请点击流式传输

    • 要关闭对话框并返回到建议的查询列表,请点击 关闭

请注意以下预期行为:

  • 后续网页加载可能不会以相同的顺序显示相同的查询。
  • 您可能会看到没有任何建议的查询。
  • 有时,运行建议的查询会返回零个日志。

从库中选择查询

Logging 基于常见用途提供了一个查询库 支持请求和 Google Cloud 产品。这些查询可以帮助您 在时间关键的问题排查会话期间查找日志并浏览日志 以更好地了解可用的日志记录数据。

如需查看并运行库的查询,请执行以下操作:

  1. Query 窗格中选择 Library 标签页。

  2. 所有查询列中,您会看到各种可用的 基于 Google Cloud 产品构建的查询和查询子集。 要缩小显示的查询范围,请点击 产品。

    您还可以使用搜索字段按 类别、说明或查询表达式的内容。

  3. 如需查看查询表达式,请执行以下任一操作:

    a. 点击查询所在的行。

    b. 点击 更多,然后选择查看

  4. 查询详细信息对话框中,您会看到该查询以及用于 运行流式传输另存为

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

      1. 点击另存为
      2. 填写保存查询对话框中的字段。

      修改后的查询会显示在已保存列表中,您可以在其中选择 稍后运行查询。

    • 如需立即运行查询,请点击运行。查询会运行,并显示于 查询编辑器字段。

    • 如需立即运行查询并流式传输结果,请点击流式传输

    • 要关闭对话框并返回到建议的查询列表,请点击 关闭

后续步骤