在 Kibana 中使用 ES|QL
编辑在 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。
查询栏编辑
切换到 ES|QL 模式后,查询栏会显示一个示例查询。例如
from kibana_sample_data_logs | limit 10
每个查询都以源命令开头。在此查询中,源命令是FROM
。FROM
从数据流、索引或别名检索数据。在本例中,数据是从 kibana_sample_data_logs
检索的。
源命令后可以跟一个或多个处理命令。在此查询中,处理命令是LIMIT
。LIMIT
限制检索的行数。
单击帮助图标 () 可打开所有命令和函数的产品内参考文档。
为了更容易编写查询,自动完成功能会提供可能的命令和函数的建议
ES|QL 关键字不区分大小写。以下查询与前一个查询相同
FROM kibana_sample_data_logs | LIMIT 10
展开查询栏编辑
为了便于阅读,您可以将每个处理命令放在新行上。以下查询与前一个查询相同
FROM kibana_sample_data_logs | LIMIT 10
为了更容易编写多行查询,请单击双箭头按钮 () 以展开查询栏
要返回到紧凑的查询栏,请单击最小化编辑器按钮 ()。
警告编辑
查询可能会导致警告,例如在查询不受支持的字段类型时。发生这种情况时,查询栏中会显示警告符号。要查看详细警告,请展开查询栏,然后单击警告。
查询历史记录编辑
您可以在查询栏中重复使用最近的 ES|QL 查询。在查询栏中,单击显示最近的查询
然后,您可以滚动浏览最近的查询
结果表编辑
对于示例查询,结果表显示 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 可视化以打开内联编辑器
向仪表板添加面板编辑
您可以使用 ES|QL 查询在仪表板上创建面板。要向仪表板添加面板,请在仪表板下,单击添加面板按钮并选择 ES|QL。
通过单击“面板过滤器”按钮 () 检查 ES|QL 查询
您也可以从此处编辑 ES|QL 可视化。单击右上角的选项按钮 () 并选择编辑 ESQL 可视化以打开内联编辑器。
创建充实策略编辑
ES|QL ENRICH
命令使您能够使用来自另一个数据集的字段充实您的查询数据集。在使用 ENRICH
之前,您需要创建并执行充实策略。如果策略存在,自动完成功能会建议该策略。否则,请单击单击以创建以创建一个策略。
接下来,您可以输入策略名称、策略类型、源索引以及可选的查询
单击下一步以选择匹配字段和充实字段
最后,单击创建并执行。
现在,您可以在 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 查询创建规则。接下来,您可以测试查询、添加连接器并保存规则。
限制编辑
- 当 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 的响应过长。请使用DROP
或KEEP
限制返回的字段数量。