Kibana的图形化——Tile Map
来源:互联网 发布:火影忍者手游pk网络卡 编辑:程序博客网 时间:2024/06/10 00:46
参考:https://www.digitalocean.com/community/tutorials/how-to-map-user-location-with-geoip-and-elk-elasticsearch-logstash-and-kibana
简介
当我们查看访问网站的流量的来源时,往往通过awk+sed或其他工具分析日志文件,有没有一种方式可以实时查看并且在地图上直观的表现出来?当然,我们的Kibana就可以做到,下面我们来看看如何配置吧。
配置
本文是在http://http://blog.csdn.net/yanggd1987/article/details/50460246博文基础上进行配置,所有的配置文件都可在博文中找到。
1.安装GeoIP数据库
- 1
- 2
- 3
2.配置logstash使用GeoIP
只需要在原来的logstash.conf中添加filter即可
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
3.重启logstash即可。
Kibana出图及trouble shooting
访问10.10.10.16:5601,登录kibana
1.“Settings”刷新“Index Patterns”
刷新后,我们就可以看到geoip的相关字段了。
2.“Visualize”新建Tile map
3.通过聚合器来创建map
如图:报错“No Compatible Fields: The “[nginx-access-]YYYY-MM” index pattern does not contain any of the following field types: geo_point”
原因:索引格式为[nginx-access-]YYYY-MM的日志文件由logstash输出到Elasticsearch;在 elasticsearch 中,所有的数据都有一个类型,什么样的类型,就可以在其上做一些对应类型的特殊操作。geo信息中的location字段是经纬度,我们需要使用经纬度来定位地理位置;在 elasticsearch 中,对于经纬度来说,要想使用 elasticsearch 提供的地理位置查询相关的功能,就需要构造一个结构,并且将其类型属性设置为geo_point,此错误明显是由于我们的geo的location字段类型不是geo_point。
我们可以通过以下方式验证一下:
- 1
- 2
其中”location”:{“type”:”double”},字段类型是double,而不是geo_point,因此会报图中的错误。
**解决方法:**Elasticsearch 支持给索引预定义设置和 mapping(前提是你用的 elasticsearch 版本支持这个 API,不过估计应该都支持)。其实ES中已经有一个默认预定义的模板,我们只要使用预定的模板即可,我们在ES中看下模板。
那为什么还会报错呢?因为默认预定义的模板必须只有匹配 logstash-* 的索引才会应用这个模板,由于我们在logstash中使用的是[nginx-access-]YYYY-MM索引方式,因此不会匹配到默认模板,我们只需要改一下索引方式即可,如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
将索引改为index => “logstash-nginx-access-%{+YYYY-MM}”即可,重启logstash,登录Kibana刷新后即可。
4.生成图片并保存
ok,每个城市的访问量就在map上显示了。
5.“Dashboard”载入Visual保存的map即可进行图形化展示了。
总结
由于我们的nginx日志格式使用的是json,因此在logstash中的filter中配置比较简单;若nginx日志不是使用的是json,在logstash中的filter中就需要配合grok进行过滤,相对麻烦一些,性能也比json格式的差。
- Kibana的图形化——Tile Map
- Kibana的图形化——Tile Map
- XNA学习笔记——Tile Map的碰撞检测
- 【cocos2dx-3.2】Tile Map 的六边形实现
- cocos2d Tile Map
- 【cocos2dx-3.2】Tile Map
- Elasticsearch—安装Kibana
- Elasticsearch上手——结合Kibana的安装配置
- Kibana User Guide [4.2] » Visualize » Tile Maps
- numpy基础——numpy.tile
- HEVC—参数GOP,SLICE,TILE解疑
- PowerVR 图形架构探索:tile-based渲染
- cocos2d-x tile map瓦片地图的黑线及地图抖动解决方案
- 【转载】cocos2d-x tile map瓦片地图的黑线及地图抖动解决方案
- cocos2d-x tile map瓦片地图的黑线及地图抖动解决方案
- 马宁的Windows Phone 7.1初体验(三)——Tile
- Map Tile地图切片小工具
- cocos2d-x Tile Map 教程(一)
- 联想thinkpad E470无线网络无法使用问题解决方法
- 在Docker容器中进行Flask应用的开发
- JavasScript中基本概念关键字和保留字
- kaldi上第一个免费的中文语音识别例子
- JavaScript 1.7 错误try catch throw
- Kibana的图形化——Tile Map
- Android开源框架Image-Loader1.9.5详解
- 190. Reverse Bits
- jsp页面 下拉框实现页面跳转
- Kali密码攻击工具
- Android面试题-与性能优化相关面试题五
- 调用栈方法
- jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
- cout 输出16进制