介绍
介绍
Elasticsearch是一款主流的实现全文检索的软件,前面福哥已经带着大家学会了使用Docker搭建ES运行环境的方法了。ES是基于HTTP协议的,我们对ES的所有操作都要以HTTP方式来提交,而且ES的命令参数还是JSON格式的,在没有任何辅助工具的情况下,我们只能通过curl命令来操作ES,实在是太不方便了!
那么有没有一个方便管理Elasticsearch的工具让我们更加高效地操作ES呢?答案是有的,这就是elastic官方提供的用于管理ES的工具Kibana。
今天我们就来学习Kibana工具的安装。因为福哥的Elasticsearch的版本是6.8.18版本,所以Kibana的版本也应该是6.8.18版本。
Kibana是ELK组合里面的K,今天我们就来把这个“K”搞明白!
环境
镜像版本 | kibana:6.8.18 |
操作系统 | CentOS 7 x86_64 2009 |
服务器 | TFCentOS7x64 |
IP | 192.168.168.68 |
端口 | 5601 |
安装
镜像
Kibana工具的版本必须和Elasticsearch的版本一致,所以福哥用的是kibana:6.8.18这个版本。
拉取镜像kibana:6.8.18,添加到registry.tongfu.net:5000私有仓库里面。
docker pull kibana:6.8.18 docker tag kibana:6.8.18 registry.tongfu.net:5000/kibana:6.8.18 docker rmi kibana:6.8.18 docker images | grep kibana
启动Elasticsearch
先把Elasticsearch启动起来,没有这个Kibana什么都干不了。
docker start tfelasticsearch
启动Kibana
使用下面的命令基于kibana:6.8.18镜像启动一个容器,将5601端口映射到宿主机上面。
Kibana默认会寻找主机名为elasticsearch、端口为9200的Elasticsearch进行绑定,但是福哥的ES的主机名是tfelasticsearch,这里需要用link改一下主机名。
docker run -tid \ --name tfkibana \ -h tfkibana \ --net tfnet \ -p 5601:5601 \ --link tfelasticsearch:elasticsearch \ registry.tongfu.net:5000/kibana:6.8.18
使用
打开浏览器,输入网址http://192.168.168.68:5601/进入Kibana。
上来就问我们“要不要使用他们的演示数据”,还是用我们自己的数据吧,点击“Explore on my own”按钮!
这是Kibana的默认首页!又问我们“愿不愿意帮助他们提升产品体验”,不就是想采集我们的数据吗?不行!
Kibana没有使用数据库,所有的设置都是存在浏览器的本地存储(Local storage)里的,所以换了浏览器就要重新设置一遍~
调试工具Dev Tools
点击左侧菜单里的Dev Tools,这是一个调试工具,可以用来执行ES命令。图形化的界面加上各种自动完成的支持,使得这个工具操作ES变得非常舒服!
默认会有一个查询全部数据的命令,我们可以直接运行看看!
我们在下面写一个插入数据的命令,往user索引里面插入几条数据,这次要加上那些日期字段的值。
福哥一共插入了6条数据,一个7天前的,三个3天前的,两个昨天的。
POST /user/user/_bulk {"index":{"_id":1}} {"userId": 1, "userName": "鬼谷子叔叔", "createDT": "2023-10-11T09:15:21"} {"index":{"_id":2}} {"userId": 2, "userName": "福哥", "createDT": "2023-10-15T10:25:12"} {"index":{"_id":3}} {"userId": 3, "userName": "鬼谷子叔叔学Kibana", "createDT": "2023-10-15T08:55:18"} {"index":{"_id":4}} {"userId": 4, "userName": "福哥玩Kibana", "createDT": "2023-10-15T11:15:21"} {"index":{"_id":5}} {"userId": 5, "userName": "TONGFU", "createDT": "2023-10-17T15:10:32"} {"index":{"_id":6}} {"userId": 6, "userName": "TONGFU.net", "createDT": "2023-10-17T16:19:06"}
然后查一下刚刚插入的数据。
现在有数据了,我们拿这几条数据学学Kibana的各种功能吧!
发现Discover
点击左侧菜单里的Discover,这个是发现功能,可以针对一个或者一组索引进行管理。默认是没有索引模式的,福哥写了一个“user”匹配我们的user索引。点击Next step继续。
这里要我们选择一个时间字段,福哥选择的是“createDT”。点击Create index pattern创建索引模式。
索引模式创建完成了,这里列出了索引的字段信息。
再次回到Discover页面,发现什么数据都没有,这是怎么回事?哦,想起来了,福哥添的数据的createDT时间是过去的时间,所以Kibana默认的“Last 15 minutes”肯定就查不出来了!
点击右上角的“Last 15 minutes”改成“This month”看看!这下有数据了!
视图Visualize
点击左侧菜单的Visualize,这是视图功能,可以将ES里的数据以各种图表形式展示出来,包括曲线图、柱状图、饼状图等等。
点击Create a visualization创建一个视图。
在图表类型里面选择实心曲线图Area。
点击user索引模式,用这个来提供数据。
默认的图表是这样的,X轴只有一个all。
这叫什么玩意儿啊?!福哥给它改改!
点击左下的Buckets > X-Axis编辑X轴设置。
点击Aggregation选择“Date Histogram”。
点击“播放”按钮使设置生效,可以看到右边的图表显示正常的数据了。
这个尖尖的不太好看啊,我们调一调!
点击Metrics & Axes标签页,修改Metrics > Count > Chart Type设置为“bar”,点击“播放”看看效果,好看多了~
点击最上面的Save按钮保存视图,福哥起的名字是“visual by tongfu”。
看板Dashboard
点击左侧菜单Dashboard,这个是看板功能,看板就是把一堆的视图放到一起,方便查看各种数据的。我们刚刚已经创建了一个视图“visual by tongfu”,现在我们把这个视图放到一个看板里面。
点击Create new dashboard创建一个看板。
点击中间的Add按钮添加元素到看板里。
在Visualization里点击刚刚创建的视图“visual by tongfu”将它添加到看板里。
完成后的看板效果就是这样的了!
点击最上面的Save按钮保存视图,福哥起的名字是“dashboard by tongfu”。
时间序列Timelion
点击左侧菜单Timelion,这个是时间序列功能,福哥后面再找时间给大家讲啊!
图表Canvas
点击左侧菜单Canvas,这个是图表功能,就是可以自己绘制图表显示各种数据,福哥后面再找时间给大家讲啊!
地图Maps
点击左侧菜单Maps,这个是地图功能,福哥后面再找时间给大家讲啊!
机器学习Machine Learning
这是Kibana的研发的一套机器学习的模块,它提供了一些基本的功能,要体验完整的功能是收费的,但是我们可以试用30天。
这个模块的功能福哥打算单独讲解,敬请期待吧~
基础设施Infrastructure
点击左侧菜单Infrastructure,这个是基础设施管理,就是针对各种场合ELK提供了各种解决方案,福哥后面再找时间给大家讲啊!
日志Logs
点击左侧菜单Logs,这个是日志管理,就是把基础设置里的日志给抽出来了!
应用程序性能监控APM
点击左侧菜单APM,这个是应用程序性能监控,就是跟踪应用程序的运行过程中的性能变化,福哥后面再找时间给大家讲啊!
启动时间Uptime
点击左侧菜单Uptime,这个是在线时间功能,就是监听ES服务器心跳产生在线状态信息,福哥后面再找时间给大家讲啊!
监视器Monitoring
点击左侧菜单Monitoring,这个是监视器功能,就是监听ES服务器CPU、内存、磁盘状态信息,福哥后面再找时间给大家讲啊!
管理Management
点击左侧菜单Management,这个是管理功能,包括Elasticsearch的管理和Kibana的管理。我们常用的就是Elasticsearch的索引管理Index Management,还有Kibana的索引模式管理Index Patterns。
索引管理界面是这样的。
索引模式管理界面是这样的。
总结
今天福哥带着大家学习了ELK的Kibana的安装和使用方法,通过Kibana可以更加方便的操作Elasticsearch搜索引擎的索引数据,Kibana还提供了大量的实用功能,可以利用ES解决更多的难题,可以更加系统地管理ES。
这个ELK的最后一个Logstash福哥会在后面给大家讲解,敬请期待吧~