kibana是elasticsearch(如下简称ES)的可视化平台,笔者平时使用kibana的dev tools
比较多,在这里能够更便捷的使用ES的各类命令,DSL查询语句等。json
可是kibana的可视化功能远不止于次。Kibana能够用来搜索,查看ES索引中的数据,能够轻松地进行高级数据分析,并可在各类图表,表格和地图中显示数据。而且能够基于浏览器的界面快速建立和共享动态仪表板,实时反馈ES中数据的更改。浏览器
因为kibana可视化的不少组件其实都是基于ES聚合的结果,因此看本篇文章建议对ES的聚合有所了解。服务器
本文使用的示例所有都是基于kibana自带的示例数据,读者本身有兴趣也能够实际操做一下。elasticsearch
本文操做使用的ES和kibana都是基于7.1.0版本。spa
index pattern是kibana可视化的前提。它至关于告诉kibana要使用哪些索引做为数据进行可视化展现。索引咱们第一步就来建立一个index pattern。日志
如上图所示,先在左侧菜单找到management
,而后点击index patterns
-- create index pattern
。新建一个index pattern,这里拿kibana自带的电商的索引举例。code
在上图中经过输入index pattern的名称,kibana会自动显示匹配的索引,而后点击next
。blog
选择索引中的时间维度的字段,若是有多个的话根据具体的业务场景选择。好比这里我选择的是订单的建立时间字段。
须要说明的是,这个时间字段是用来方便基于时间过滤数据用的。若是你的业务上不须要基于时间范围筛选,也能够不选择这一步。索引
到这里咱们的index pattern就建好了。读者本身能够参考上面的流程,为航班数据索引新建一个index pattern。字符串
discovery在日志搜索用的比较多,如今不少公司都会把服务的日志搜集到ES而后经过kibana的discovery功能查找日志。这样比之前登录到线上服务器一台台grep
方便不少。
如上图所示,在菜单中选择discovery
,而后就能看到咱们前面章节新建的index pattern。
在上图的1的位置,我选择了电商的index pattern,而后在2的位置选择时间进行过滤,这里我选择是的1年前的全部数据。时间过来的维度不少,你们能够一一尝试下。1的旁边有个搜索框,能够输入任意信息对索引进行搜索。除了通常的直接输入字符串进行搜索以外,这里还支持指定搜索某个字段,只须要在搜索框里输入相似下面:
user:"youssef"
就能够搜索user
字段值知足youssef
的数据。
在图中3的位置以直方图的形式汇总了数据的分布状况,能够看到咱们的数据主要都集中在2019年12月到2020年1月这段时间内。
图中4的位置就是数据自己了,能够支持table和json两种方式显示。左侧的菜单里支持过滤指定的字段显示,这里不展开来说了。
kibana自带了不少可视化的组件,方便咱们对聚合后的结果进行可视化的展现。下面来看一个例子。
在左侧菜单选择visualize
,而后点击右边的+
号,以下图所示:
这里有不少可视化组件,我这里以pie
饼图为例子说明。
如上图所示,咱们在左边选择分桶聚合模式,而后分桶的字段是用户性别字段,度量单位是count
,而后点击上方的三角按钮运行,结果就是上图中展现的效果。在这个图中能够看到男女的比例。
假如咱们还想看下男女各自的城市分布状况,能够添加一个子分桶,在左侧下方点击add sub buckets
。
如上图,在子分桶里咱们一样选择了terms
分桶,而后分桶的字段是用户所在的城市。运行以后就是上图中的效果。点击左上角的save
按钮,还能够把当前的可视化结果保存。保存了以后咱们就能够在dashboard上展现了。
dashboard能够理解为一个展现各类可视化组件的面板,咱们能够把以前保存的可视化结果添加到面板中进行展现。
点击左侧菜单中的dashboard
,而后点击create new dashboard
,而后点击add
,选择咱们前面保存的可视化组件。
下图是一个基于咱们前面讲的电商的index制做的面板展现示例