一架梯子,一头程序猿,仰望星空!

Kibana Discover数据查询


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左侧可以直接选择需要展示的文档字段。

上图我们仅展示航班编号和平均票价