Kibana Discover功能,主要用于查询Elasticsearch数据,通过Kibana Query Language (KQL)查询语法实现数据查询。
创建索引模式
索引模式介绍
要使用Discover的功能首先需要创建索引模式(Index patterns), 索引模式其实就是包含通配符(*)的索引名,我们需要查询ES的数据,首先得知道要查询的索引(index)名字,但是有时候,我们想查询一批索引的数据。
例如:
同时查询下面索引的数据
- tizi365_log_202005
- tizi365_log_202006
- tizi365_log_202007
那么我们可以使用 tizi365_log_* 作为索引模式,可以匹配以tizi365_log_为前缀的所有索引名。
例子
我们依然使用前面导入的航班数据,下面介绍如何创建新的索引模式
步骤1:打开管理页面(Management)
步骤2:
因为前面的章节导入航班数据的时候,自动创建了一个名字叫kibana_sample_data_flights的航班数据索引,如果我们只想搜索kibana_sample_data_flights索引的数据,则不需要通配符,直接使用kibana_sample_data_flights这个名字作为索引模式即可,如下图
因为导入测试数据的时候,自动创建了同名的索引模式,为了演示,我们这里使用kibana_sample_data_flig* 作为索引模式(使用了通配符星号,代表匹配任意字符)。
步骤3:
配置时间过滤器,主要用于排序和作为默认的数据过滤条件。
到此为止索引模式已经创建好了,下面我切换到Discover页面看看。
Discover 功能介绍
进入Discover页面,默认展示的索引数据不一定是我们想看的数据,可以点击change切换到kibana_sample_data_flig* 索引模式,如下图
查询数据
我们可以通过KQL查询语法查询ES数据,可以把你感兴趣的字段名称和值当做搜索的条件,对于数字字段您可以使用比较运算符,例如大于(>)、小于(<)或等于(=)。您可以使用逻辑运算符 AND,OR 和 NOT 连接搜索条件。
提示:KQL查询语法和ES查询语法不一样,KQL是一种比ES查询语法更简单的语法规则,KQL语法介绍。
例如:
查询航班机票平均价格大于300且小于600的航班信息
AvgTicketPrice > 300 and AvgTicketPrice < 600
查询航班编号等于 1MAEYXT 的航班信息
FlightNum : 1MAEYXT
例子:
过滤字段
默认查询结果展示索引的所有字段,信息比较多,我们可以选择展示指定的文档字段。
Discover左侧可以直接选择需要展示的文档字段。
上图我们仅展示航班编号和平均票价