在 Kibana 中使用 ES|QL
编辑在 Kibana 中使用 ES|QL
编辑您可以使用 Kibana 中的 ES|QL 来查询和聚合数据、创建可视化效果以及设置警报。
本指南将向您展示如何在 Kibana 中使用 ES|QL。要跟随查询进行操作,请通过在 Kibana 的 集成 页面中选择 示例数据,选择 其他示例数据集,然后点击 示例 Web 日志 卡片上的 添加数据 来加载“示例 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 帮助 按钮可打开产品内置的参考文档,其中包含所有命令和函数,或者获取有助于您入门的推荐查询。
为了更容易编写查询,自动完成功能会提供可能的命令和函数的建议
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
时间过滤
编辑要显示指定时间范围内的数据,可以使用标准时间过滤器、自定义时间参数或 WHERE 命令。
标准时间过滤器
编辑当您查询的索引具有名为 @timestamp
的字段时,将启用标准时间过滤器。
自定义时间参数
编辑如果您的索引没有名为 @timestamp
的字段,则可以使用 ?_tstart
和 ?_tend
参数来指定时间范围。这些参数适用于任何时间戳字段,并且会自动与时间过滤器同步。
FROM my_index | WHERE custom_timestamp >= ?_tstart AND custom_timestamp < ?_tend
您还可以将 ?_tstart
和 ?_tend
参数与 BUCKET
函数结合使用,以在 ES|QL 可视化效果中创建自动递增的时间桶。例如
FROM kibana_sample_data_logs | STATS average_bytes = AVG(bytes) BY BUCKET(@timestamp, 50, ?_tstart, ?_tend)
此示例使用 50
个桶,这是最大桶数。
WHERE 命令
编辑您还可以使用 WHERE
命令和 NOW
函数来限制时间范围。例如,如果时间戳字段名为 timestamp
,要查询最近 15 分钟的数据
FROM kibana_sample_data_logs | WHERE timestamp > NOW() - 15minutes
分析和可视化数据
编辑在查询栏和结果表之间,Discover 显示日期直方图可视化效果。默认情况下,如果您查询的索引不包含 @timestamp
字段,则不会显示直方图。但是,您可以将自定义时间字段与 ?_tstart
和 ?_tend
参数结合使用来启用它。
可视化效果会根据查询进行调整。查询的性质决定了可视化效果的类型。例如,此查询聚合每个目标国家/地区的总字节数
FROM kibana_sample_data_logs | STATS total_bytes = SUM(bytes) BY geo.dest | SORT total_bytes DESC | LIMIT 3
生成的可视化效果是显示前 3 个国家/地区的条形图
要更改可视化效果,例如更改可视化效果类型、轴和颜色,请点击铅笔按钮 ()。这将打开一个内联编辑器
您可以通过点击保存按钮 () 将可视化效果保存到新的或现有的仪表板。保存到仪表板后,您将被带到仪表板页面。您可以继续更改可视化效果。点击右上角的选项按钮 () 并选择 编辑 ES|QL 可视化效果以打开内联编辑器
向仪表板添加面板
编辑您可以使用 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
来限制返回的字段数量。