Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,通俗的说就是 Elasticsearch 的web管理后台。可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用各种图表对数据进行多元化的分析和呈现。
安装
Elasticsearch安装请参考:ES安装说明
依赖JDK版本
JDK 1.8以上,没有安装jdk可以安装jdk,配置好Java环境变量。
通过压缩包安装
# 下载压缩包
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
# 解压缩
tar -xzf kibana-7.8.0-darwin-x86_64.tar.gz
# 进入安装目录
cd kibana-7.8.0-darwin-x86_64/
# 启动kibana
./bin/kibana
启动kibana通过http://localhost:5601/直接访问即可。
也可以直接到官网下载安装包
https://www.elastic.co/cn/downloads/kibana
提示: kibana默认配置无须账号和密码即可登录,自动连接本地安装的Elasticsearch,如果需要配置账号需要安装X-pack插件,其他配置参考后续章节。
docker安装
docker pull docker.elastic.co/kibana/kibana:7.8.0
kibana镜像详细配置可以参考:https://hub.docker.com/_/kibana
准备测试数据
导入数据
为了方便测试kibana的功能,我们直接使用kibana官网提供的测试数据,直接通过kibana后台导入测试数据即可,操作如下。
步骤1:
步骤2:
步骤3:
测试数据说明
下面是一条航班数据样本,介绍下部分字段信息
{
"_index": "kibana_sample_data_flights", // 航班索引名称
"_type": "_doc",
"_id": "MEkjEHMBJlts2AvaxCbj",
"_version": 1,
"_score": null,
"_source": {
"FlightNum": "SQIY3O9", // 航班编号
"DestCountry": "GB", // 目标国家简称
"OriginWeather": "Clear", // 出发天气
"OriginCityName": "Osaka", // 出发城市
"AvgTicketPrice": 644.8724392684487, // 平均价格
"DistanceMiles": 5948.821557153384, // 距离,英里
"FlightDelay": true, // 航班是否延误
"DestWeather": "Clear", // 目的地天气
"Dest": "London Gatwick Airport", // 目的地
"FlightDelayType": "Carrier Delay", // 航班延误原因
"OriginCountry": "JP", // 出发国家
"timestamp": "2020-07-02T15:28:44", // 时间
"DestLocation": { // 目的地经纬度
"lat": "51.14810181",
"lon": "-0.190277994"
},
"OriginLocation": { // 出发地经纬度
"lat": "34.4272995",
"lon": "135.2440033"
},
"DestCityName": "London", // 目的地城市
...忽略....
}
}
查询数据
通过kibana的Discover功能查询索引数据,首先需要创建一个索引模式(index pattern),索引模式其实就是一个支持通配符的索引名表达式,用于支持搜索多个索引的数据,后续章节会介绍索引模式。
前面导入测试数据的时候,已经自动创建了一个kibana_sample_data_flights的索引模式,直接进入Discover页面,效果如下
kibana的discover支持Kibana Query Language (KQL)语法,就是一套简单的查询语法,通过KQL可以编写查询条件查询数据。
提示:Kibana Query Language (KQL)语法不等同于Elasticsearch的查询语法,是一套全新的东西,不过KQL比较简单,KQL语法介绍。
例如:
查询航班编号等于LVOO2CA的航班信息
匹配语法:
字段名: 搜索值
查询表达式:FlightNum : LVOO2CA
通过图表呈现数据
kibana支持丰富的图表组件,结合ES聚合查询语句可以生成各种图表。
我们点击第一个图表[Flights] Airline Carrier,进入看看
这是统计各个航空公司的航班信息占比,后续的章节详细介绍各种图表的配置方式。
调试ES查询语句
前面提到通过KQL语法在Discover页面查询数据,其实也可以使用ES查询语句直接查询数据,如果想通过ES查询语句查询数据,进入控制台(console)页面即可