ELK-kibana绘图
之前已经完成了nginx日志的收集。还记得之前定义的nginx的日志格式么?这么多的字段,我可以在kibana中根据各种维度来绘图,话不多说,开干吧。
一、简单了解
在开始之前,先了解下可以绘制哪些图
点击"可视化"–>"新建可视化"可以看到所有可以绘制的类型
二、统计客户端类型
饼图应该算是比较常用的了,其实像是客户端类型、异常状态码这种结果不止一个但是数量又不是很多的字段是非常合适的。
那就先用饼图话一个客户端类型的图吧。
创建一个饼图来到索引选择界面
选择logstash-nginx-access.log-*
这个索引,进入到配置页面。
各个字段的详细说明官网中解释的非常清楚,我这边就不做搬运工了。直接看官网-饼图即可。
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"拆分切片"
3,在"聚合"中选择"词"
4,在"字段"中选择"mobileSystem.keyword"
5,在"排序依据"中选择"指标:计数"
6,点击"应用更改"使配置生效
完成上面的6步之后,一个饼状图就生成了。
但是看了图例之后,除了"Android"和"iOS"之外,还有一个图例是"-"的,这个是我们的web页面访问产生的。我这里只想看移动端的饼状图,需要将web端的给排除掉,怎么排除呢?
还可以点击"数据"边上的"选项"这个tab,里面可以设置是否为"圆环形"、图例的位置、是否显示标签等。我这里设置为饼状、显示标签,看一下效果
这样,一个客户端(移动端)类型的饼状图就完成了,最后我们来保存下这个图。
点击左上角的"保存",并在弹框中输入此图的标题,点击"确认保存"即可。
三、统计访问源城市
用标签云来做一个访问源城市-top10。
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"标记"
3,在"聚合"中选择"词"
4,在"字段"中选择"geoip.city_name.keyword"
5,在"排序依据"中选择"指标:计数"
6,在"顺序"中选择降序,"大小"就看你想展示多少个城市名称,我这里选择10
7,点击"应用更改"使配置生效
想再"骚"一点的话,可以点击"数据"边上的"选项"这个tab,里面可以对"文本比例"、“方向”、“字体大小范围"进行修改,这里我就将"方向"的值由默认的"单个"改为"直角”,再来看看效果。
有水平方向的,又有竖直方向的,增加了一份骚气。
还有,配置好别忘了保存。
四、统计访问源IP
用"数据表"来做一个访问源IP-top10
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"拆分行"
3,在"聚合"中选择"词"
4,在"字段"中选择"clientip.keyword"
5,在"排序依据"中选择"指标:计数"
6,在"顺序"中选择降序,"大小"就看你想展示多少个IP,我这里选择10
7,点击"应用更改"使配置生效
五、画一个坐标地图
用"坐标地图"来展示客户端地址的热力图
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"地理坐标"
3,在"聚合"中选择"Geohash"
4,在"字段"中选择"geoip.location"
5,在"选项"tab中的"地图类型"选择"热力"
6,点击"应用更改"使配置生效
这样,一个客户端地址的热力图生成好了。
六、异常状态码统计
用"饼图"画一个异常状态码统计图
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"拆分切片"
3,在"聚合"中选择"词"
4,在"字段"中选择"status.keyword"
5,在"排序依据"中选择"指标:计数"
6,在"顺序"中选择降序,"大小"选择5
7,点击"应用更改"使配置生效
8,排除正常返回码
9,在"选项"tab中勾选"显示标签"
10,点击"应用更改"使配置生效
这样,一个异常状态码的饼状图就生成好了。
七、日志数量统计
用"指标"来统计日志数量
1,在"指标"–>“聚合"中选择"计数”
2,在"存储桶"中点击"Add",添加一个"拆分组"
3,在"聚合"中选择"日期范围"
4,在"字段"中选择"@timestamp"
5,点击"应用更改"使配置生效
这样,一个日志数量统计图就生成好了。
八、聚合视图
在聚合之前,如果你觉得kibana默认的浅色背景色有点low,可以在"管理"中开启"深色模式"。
在"仪表板"中,点击"创建新的仪表板",可以把之前创建的图表都添加进来,并且可以自由的排序、设置大小等。我这里设置完成之后如下: