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

Kibana 入门教程


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)页面即可