与SqlServer和Oracle不同,Elasticsearch是另一种数据存储方式,初步总结如下(可能不对):
Elasticsearch里建立索引,相当于数据库的表,里面存放着json格式的数据,通过各节点进行数据操作。
虽然能有Elasticsearch head插件,但查询起来麻烦,还要懂那种语法。
于是就想:“有没有可以生成报表一类的什么东西?”
百度上查了一下,Elasticsearch还真有个配套的东西:Kibana,所以决定试一试。
首先,到官网上去下载:
elasticsearch各版本:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
kibana各版本:https://www.elastic.co/cn/downloads/past-releases#kibana
注意Kibana版本号要与Elasticsearch完全一致。
1.解压后,修改config文件夹下的kibana.yml文件:
server.port: 5601;server.host: "0.0.0.0";elasticsearch.url: [ElasticsearchIP地址:端口]
2.进入bin文件夹,直接双击运行kibana.bat,直到看到最后两行有个粉色的listenning,说明运行成功,但这个命令窗口不要关,关了就相当于退出kibana了。
(之前安装后各种红色报错,原因是本地没装Elasticsearch,不能直接去连服务器的Elasticsearch)
3.打开网页:[ kibana ] IP:5601 [ kibana.yml配置的端口 ]
目前用到的左侧菜单栏:Discover(浏览索引数据),Visualize(可视化),Dashboard(仪表盘),Management(管理)
【有条件的可以先在自己的外网电脑上安装Elasticsearch和kibana,使用有翻译页面的浏览器(我用的是谷歌)】
操作流程:
1.在Management中,选择Index Patterns(索引模式),Create index pattern(创建索引模式)
输入Elasticsearch中的索引名称,可精确输入完整的索引名字,进行单个索引匹配;也可以输入部分,后面加*号进行多个索引匹配,因为我的数据是每天按日期格式生成一个新的索引,所以我的创建的索引是svc_msg_master_20*(这样只有2020年的数据,如果以后也要用,那就写svc_msg_master_*)
2.创建时有时间筛选条件的选择,我的索引里有多个日期节点,选择一个即可,用于后面的数据按日期筛选。
3.索引模式创建完后,可在Discover中浏览数据,默认显示所有json,可点击下面列表中的节点名称,进行add添加,浏览仅需要的数据。
4.Visualize中,创建可视化图表,开始选择的是垂直条形图VerticalBar,但要展示的列太多,横着放标签名称会重叠,所以我又做了一遍,选择水平条形图HorizontalBar。
由于我只统计数量,所以Y轴默认的聚合方式就是Count,不做更改;
X轴上,我既想展示所有系统sys,又想展示各系统发出的消息msg,所以先在X轴选择最后一条聚合方式Terms,Field选择系统所在的节点sys,然后再点击下面的Add sub-buckets ,选择SplitSeries,聚合方式选Terms,Field选消息节点msg,点击上面菜单上的三角号运行,就可看到右边有图形统计了。
但是由于每个系统发送的消息种类不同,所以这中图表看起来不方便,所以,在Metrics&Axes,第二行的Mode,选择stacked,这样就将每个系统的消息堆在一起显示了,左侧标签也不会相互覆盖。
上面的是经过按数量排序后的,看起来美观一些。
5.在Dashboard(仪表盘)中,可以添加刚才创建并保存的可视化,点击Create new dashboard,在点击左上方的Add,选择刚才的可视化文件即可。
调整好大小和位置后,这个仪表盘就可以使用,也可添加多个可视化,在仪表盘上展示多个图表。
最后,在图表的右上角,有个选项,可以将图表的统计数据导出来。
但在查询时发现数据不对,原因为时区设置不对,修改如下:
这样,初步的可视化就算建立完成了,后面会写一下过滤条件,和数据转换的操作,今天先到这。