在 Kibana 中使用 ES|QL编辑

您可以在 Kibana 中使用 ES|QL 查询和聚合数据、创建可视化以及设置警报。

本指南介绍如何在 Kibana 中使用 ES|QL。要跟随查询进行操作,请加载“示例 Web 日志”示例数据集,方法是单击 Kibana 主页中的尝试示例数据,选择其他示例数据集,然后单击示例 Web 日志卡片上的添加数据

启用或禁用 ES|QL编辑

默认情况下,ES|QL 在 Kibana 中处于启用状态。可以使用高级设置中的 enableESQL 设置将其禁用。

这将隐藏各种应用程序中的 ES|QL 用户界面。但是,用户将能够访问现有的 ES|QL 项目,例如保存的搜索和可视化。

ES|QL 入门编辑

要在 Discover 中开始使用 ES|QL,请打开主菜单并选择Discover。接下来,从“数据视图”菜单中选择语言:ES|QL

esql data view menu

查询栏编辑

切换到 ES|QL 模式后,查询栏会显示一个示例查询。例如

from kibana_sample_data_logs | limit 10

每个查询都以源命令开头。在此查询中,源命令是FROMFROM 从数据流、索引或别名检索数据。在本例中,数据是从 kibana_sample_data_logs 检索的。

源命令后可以跟一个或多个处理命令。在此查询中,处理命令是LIMITLIMIT 限制检索的行数。

单击帮助图标 (静态) 可打开所有命令和函数的产品内参考文档。

为了更容易编写查询,自动完成功能会提供可能的命令和函数的建议

esql kibana auto complete

ES|QL 关键字不区分大小写。以下查询与前一个查询相同

FROM kibana_sample_data_logs | LIMIT 10

展开查询栏编辑

为了便于阅读,您可以将每个处理命令放在新行上。以下查询与前一个查询相同

FROM kibana_sample_data_logs
| LIMIT 10

为了更容易编写多行查询,请单击双箭头按钮 (esql 图标展开查询栏) 以展开查询栏

esql expanded query bar

要返回到紧凑的查询栏,请单击最小化编辑器按钮 (esql 图标最小化查询栏)。

警告编辑

查询可能会导致警告,例如在查询不受支持的字段类型时。发生这种情况时,查询栏中会显示警告符号。要查看详细警告,请展开查询栏,然后单击警告

查询历史记录编辑

您可以在查询栏中重复使用最近的 ES|QL 查询。在查询栏中,单击显示最近的查询

esql discover show recent query

然后,您可以滚动浏览最近的查询

esql discover query history

结果表编辑

对于示例查询,结果表显示 10 行。省略 LIMIT 命令,结果表默认最多显示 1000 行。使用 LIMIT,您可以将限制增加到最多 10,000 行。

10,000 行的限制仅适用于查询检索并显示在 Discover 中的行数。任何查询或聚合都在完整数据集上运行。

对于示例查询,每行显示两列:一列包含 @timestamp 字段,另一列包含完整文档。要显示文档中的特定字段,请使用KEEP 命令

FROM kibana_sample_data_logs
| KEEP @timestamp, bytes, geo.dest

要将所有字段显示为单独的列,请使用 KEEP *

FROM kibana_sample_data_logs
| KEEP *

Discover 中的最大列数为 50。如果查询返回的列数超过 50,则 Discover 仅显示前 50 列。

排序编辑

要对其中一列进行排序,请单击要排序的列名,然后选择排序顺序。请注意,这将执行客户端排序。它仅对查询检索到的行进行排序,由于(隐式)限制,这些行可能不是完整的数据集。要对完整数据集进行排序,请使用SORT 命令

FROM kibana_sample_data_logs
| KEEP @timestamp, bytes, geo.dest
| SORT bytes DESC

时间过滤编辑

要在指定的时间范围内显示数据,请使用时间过滤器。仅当您查询的索引具有名为 @timestamp 的字段时,时间过滤器才启用。

如果您的索引没有名为 @timestamp 的时间戳字段,则可以使用WHERE 命令和NOW 函数来限制时间范围。例如,如果时间戳字段名为 timestamp,要查询最后 15 分钟的数据

FROM kibana_sample_data_logs
| WHERE timestamp > NOW() - 15minutes

分析和可视化数据编辑

在查询栏和结果表之间,Discover 显示日期直方图可视化。如果您查询的索引不包含 @timestamp 字段,则不会显示直方图。

可视化会根据查询进行调整。查询的性质决定了可视化的类型。例如,此查询聚合每个目标国家/地区的总字节数

FROM kibana_sample_data_logs
| STATS total_bytes = SUM(bytes) BY geo.dest
| SORT total_bytes DESC
| LIMIT 3

生成的可视化是显示前 3 个国家/地区的条形图

esql kibana bar chart

要更改可视化,例如更改可视化类型、轴和颜色,请单击铅笔按钮 (esql 图标编辑可视化)。这将打开一个内联编辑器

esql kibana in line editor

您可以通过单击保存按钮 (esql 图标保存可视化) 将可视化保存到新的或现有的仪表板。保存到仪表板后,您将进入“仪表板”页面。您可以继续更改可视化。单击右上角的选项按钮 (esql 图标选项) 并选择编辑 ESQL 可视化以打开内联编辑器

esql kibana edit on dashboard

向仪表板添加面板编辑

您可以使用 ES|QL 查询在仪表板上创建面板。要向仪表板添加面板,请在仪表板下,单击添加面板按钮并选择 ES|QL。

esql dashboard panel

通过单击“面板过滤器”按钮 (面板标题上的面板过滤器按钮) 检查 ES|QL 查询

esql dashboard panel query

您也可以从此处编辑 ES|QL 可视化。单击右上角的选项按钮 (esql 图标选项) 并选择编辑 ESQL 可视化以打开内联编辑器。

esql dashboard panel edit visualization

创建充实策略编辑

ES|QL ENRICH 命令使您能够使用来自另一个数据集的字段充实您的查询数据集。在使用 ENRICH 之前,您需要创建并执行充实策略。如果策略存在,自动完成功能会建议该策略。否则,请单击单击以创建以创建一个策略。

esql kibana enrich autocomplete

接下来,您可以输入策略名称、策略类型、源索引以及可选的查询

esql kibana enrich step 1

单击下一步以选择匹配字段和充实字段

esql kibana enrich step 2

最后,单击创建并执行

现在,您可以在 ES|QL 查询中使用充实策略

FROM kibana_sample_data_logs
| STATS total_bytes = SUM(bytes) BY geo.dest
| SORT total_bytes DESC
| LIMIT 3
| ENRICH countries

创建警报规则编辑

您可以使用 ES|QL 查询来创建警报。在 Discover 中,单击警报并选择创建搜索阈值规则。这将打开一个面板,使您能够使用 ES|QL 查询创建规则。接下来,您可以测试查询、添加连接器并保存规则。

esql kibana create rule

限制编辑

  • 当 Discover 处于 ES|QL 模式时,用于过滤数据的用户界面处于禁用状态。要过滤数据,请编写使用WHERE 命令的查询。
  • Discover 最多显示 10,000 行。此限制仅适用于查询检索并显示在 Discover 中的行数。查询和聚合在完整数据集上运行。
  • Discover 最多显示 50 列。如果查询返回的列数超过 50,则 Discover 仅显示前 50 列。
  • 从 Discover 导出的 CSV 文件最多显示 10,000 行。此限制仅适用于查询检索并显示在 Discover 中的行数。查询和聚合在完整数据集上运行。
  • 一次查询多个索引而不使用任何过滤器可能会导致 Kibana 中出现错误,如下所示:[esql] > Elasticsearch 意外错误:内容长度 (536885793) 超过最大允许字符串长度 (536870888)。ES|QL 的响应过长。请使用 DROPKEEP 限制返回的字段数量。