Kibana学习笔记
Kibana 是为Elasticsearch设计的开源分析和可视化平台,利用Kibana可以很容易对Elasticsearch中的数据实现图表可视化、搜索等功能。当然熟悉Kibana的前提是对Elasticsearch有一定的了解,这是kibana的官方手册: https://www.elastic.co/guide/cn/kibana/current/index.html ,本篇文章主要是Lucene查询语法,添加索引,以及如何使用Kibana的可视化平台(图表和仪表盘)。
Kibana的安装
tar.gz 包的方式安装很简单,解压即用 https://www.elastic.co/guide/cn/kibana/current/targz.html
为了方便我选择docker安装:
1docker pull kibana:6.4.0
2
3docker run --name my_kibana \
4 -p 5601:5601 \
5 -e ELASTICSEARCH_HOSTS=http://192.168.31.86:9200 \
6 -d kibana:6.4.0
docker-compose方式:
1services:
2 kibana:
3 image: docker.elastic.co/kibana/kibana:6.4.0
4 volumes:
5 - ./kibana.yml:/usr/share/kibana/config/kibana.yml
6 environment:
7 SERVER_NAME: kibana.example.org
8 ELASTICSEARCH_URL: http://xxx.xxx.xx.xx:9200
自定义kibana.yml或者环境变量覆盖都是没问题的,只需要将Elasticsearch的地址配置好就OK了。
另外kibana在启动后可以导入一些示例数据(在Kibana6.4.0版本里,这些示例数据是航空飞行的一些数据),可以看看通过这些demo数据构成的图表:
在 Kibana 6.7 以后系统开始支持中文了,如果需要设置为中文 vim config/kibana.yml 添加如下配置即可
1i18n.locale: "zh-CN"
Kibana的搜索
其实Kibana的搜索很简单,大部分情况下都是直接使用K=V过滤的方式来完成,首先选择左边的索引,再搜索k=v即可,比如在示例数据里我需要查询国家(DestCountry)为US,天气是下雨(OriginWeather)的数据,并且时间范围是今天内的数据:
其实这种KV的写法属于Lucene查询语法,除了KV的写法,其实还有很多Lucene表达式,为了能在Kibana中实现更多种查询,下面来看看更多的Lucene查询语法吧:
单词查询
通配符查询
?
匹配单个字符,*
匹配0或多个字符
模糊查询
~
在一个单词后面加上~
启用模糊搜索,可以搜到拼写错误的单词,比如 Cleoeland~
匹配到 Cleveland
近似/距离查询
在短语后面加上~
,可以搜到被隔开或顺序不同的单词,例如"foo bar"~4
两者之间间隔4个词的距离
范围查询
DistanceKilometers:[7600 TO 7700]
、DistanceKilometers:{7600 TO 7700}
, []
表示端点数值包含在范围内,{}
表示端点不包含在范围内
优先级查询
如果单词的匹配度很高,一个文档中或者一个字段中可以匹配多次,那么可以提升该词的相关度。使用符号^
提高相关度。比如 US^2 IT
逻辑操作 & 括号分组
AND OR NOT ,分别可用 &&
||
!
代替,这个在上面最开始的时候已经介绍过了。
如果查询的字符里面包括了
\+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
就需要用转义字符替代
Kibana添加索引
Management ->
Kibana Index Patterns ->
Index Patterns ->
Create Index Pattern
Kibana添加图表
Kibana可视化控件基于 Elasticsearch 的查询。利用一系列的 Elasticsearch 查询聚合功能来提取和处理数据,再通过创建图表来呈现数据分布和趋势,点击Visualize菜单,进入可视化图表创建界面,Kibana自带有上10种图表,来创建一个直方图 —— 用于统计每天飞行距离的平均值:
先设置Y轴,值设置为飞行距离的平均值:
再设置X轴,以天为单位进行统计:
再比如对目的地做一个标签云:
Kibana仪表盘
新建仪表盘,把自己新建的图标添加进仪表盘,就可以完成丰富的仪表盘了: