最近在使用ELK工具,主要是使用kibana进行数据可视化,该工具非常方便,墙裂推荐!!!
要使用coordinate map时,需要将数据转换成它需要的geo_point类型,网上有很多使用geoip插件将ip转换成经纬度的教程,这里没有ip,只有经纬度数据。
下图为geo_point的几种形式,这里我采用的是最后一种,数组的格式
由于我不太懂这里面的语法,只是简单的使用,所以这里只能给出我的解决方案,以及踩过的坑,没有原理解释。
主要在filter中,“rdc_lon”和“rdc_lat”为我数据库中的字段名称,首先将经纬度的值赋给新的变量 geoip.location,然后将其转化为float类型,要注意的是【经度,纬度】,数组格式经度在前。
将其转换为float后,第二步是将location变成 geo_point的类型,我没有自己写模板,logstash自带的用来处理日志的logstash-*模板就能完成此种转换,因此在输出到elasticsearch中,将index的命名设为 logstash-XXXX 就能使用默认的模板。
这里踩的坑是,获取数据库里的字段rdc_lon,rdc_lat时,由于数据库里设置了大小写,在数据库中实际字段名称为“RDC_lon”,“RDC_lat”,没想到在logstash不考虑大小写,因此一直没有获取到