1. 简介
- Kibana 是一个开源的数据分析和可视化平台。使用Kibana能可视化展示和分析Elasticsearch数据,然后构建美观的可视化和仪表板。
- Kibana 也是一个管理Elastic Stack的用户界面。提供安全设置、分配用户角色、获取快照等功能。
- Kibana 也是Elastic解决方案的管理中心。从日志分析到文档发现再到SIEM, Kibana是访问这些功能和其他功能的门户。
2. 安装Kibana
本文安装环境基于Mac操作系统。安装步骤如下:
- 打开官方网站下载地址,下载对应操作系统的安装包。
- 解压安装包到指定的Kibana工作目录$KIBANA_HOME:
tar -xvf kibana-7.6.2-darwin-x86_64.tar.gz
- 修改配置文件$KIBANA_HOME/config/kibana.yml,设置参数elasticsearch.hosts指向Elasticsearch实例。
- 启动运行Kibana:
bin/kibana
出现如下图所示,表示Kibana服务已经启动。
- 浏览器上输入http://localhost:5601访问验证,显示如下图所示:
- 打开Kibana服务器状态页http://localhost:5601/status,查看服务器的资源使用信息和安装的插件,显示如下图所示:
3. Kibana基本配置
Kibana服务启动时,会读取$KIBANA_HOME/config目录下配置文件kibana.yml,下面介绍一下Kibana基本的配置参数。
- console.enabled:是否启用开发工具中的console功能,默认启用,设置为false表示禁用console功能。
- elasticsearch.hosts: 查询的Elasticsearch实例URL,支持配置多个节点,但这些节点必须是同一个集群的,默认值[ "http://localhost:9200" ] 。
- elasticsearch.requestTimeout:等待Elasticsearch响应时间,单位ms,默认值是30000,即默认等待响应时间最长30秒。
- server.host:该设置指定Kibana服务器的主机。如果需要允许远程用户连接,那么该值设置为Kibana服务器的IP地址或DNS名称,默认为localhost。
- server.name:Kinana实例的标识名称。默认为主机名。
- server.port:该设置指定要Kibana服务器使用的端口,默认值为5601。
4. Kibana基础使用
4.1 连接Elasticsearch索引
通过以下步骤,将已经存在的Elasticsearch索引数据在Kibana页面展示:
(1)打开manager页,点击 Index Patterns。
(2)点击Create index pattern.
(3)填写索引表达式匹配Elasticsearch索引名称集合。
(4)点击下一步,选择包含时间戳的索引字段用于执行基于时间比较。如果索引没有基于时间的数据,请选择I don 't want to use the time filter。
(5)最后点击Create index pattern。
4.2 查看和管理索引
可以通过Kibana查看索引信息并对索引进行管理。
(1)点击Index Management。
(2)点击Indices,获取索引列表。索引列表会展示索引名称、是否健康、状态、分片、副分片、文件统计等数据。
(3)点击具体索引,查看索引详情信息,会展示索引的总体信息、mapping、setting信息。
(4)点击Manager可以对索引进行管理操作。包括删除、合并、刷新等操作。
查看和管理操作步骤如下图所示:
4.3 查看和管理字段
(1)点击Management,点击Index patterns,然后点击具体的索引名称,打开索引的字段列表页。
(2)索引字段列表页展示了字段的名称、类型、格式、是否可搜索、是否可聚合等,并且提供了修改字段类型功能。
4.4 搜索索引数据
Kibana通过Discover界面提供了多维度搜索数据和展示的功能。支持KQL(Kibana查询)语法和Lucene查询语法,可以指定索引名称或选择索引模型来查询,下面选择索引kibana_sample_data_ecommerce来简单示例,Discover页面如下:
等值查询
统计customer_id为"27"且category为"Men's Clothing",并且时间跨度为2020-10-01之前1年的订单数据。查询条件及结果如下图所示:
短语搜索
搜索数据中出现"Clothing",并且时间跨度为2020-10-01之前1年的订单数据。查询条件及结果如下图所示:
过滤搜索
过滤排除sku等于ZO0102601026的订单数据,并且时间跨度为2020-10-01之前1年的订单数据。查询条件及结果如下图所示:
多值查询
输入customer_id : ("27" or "28") ,表示查询用户id为27或28的订单数据。
范围查询
比如输入products.price >100 or products.price <10,表示商品价格小于10或大于100订单数据。
复杂查询
输入category: "Clothing" and not (customer_id:"27" or customer_id :"20" ),表示查询类别为Clothing,但是排除用户id27和用户id28的订单数据。括号优先级高于and,and的优先级高于or。
通配符查询
输入category: Men*,表示查询类别字段分词后以Men开头的订单数据。
4.5 构建可视化
通过Kibana的可视化支持聚合统计、分组等功能。
(1)点击Visualize,点击Create visualization。
(2)选择可视化类型,然后选择数据源。
(3)添加Metrics,添加Bucket,计算不同价格区间的商品平均价格、最高价格、最低价格等,如图所示。
5. 结语
Kibana提供的功能非常丰富,强大,本文只是介绍了一小部分,如有需要,可通过Kibana官方文档进一步了解学习。