上图是我们最终的地图效果。
总体步骤:
一、使用logstash geoip插件解析IP字段;
二、配置geoip.location字段为geo_point类型。
三、使用kibana的Coordinate map作图。
具体步骤:
一、解析IP字段
使用logstash的geoip插件 logstash-filter-geoip 解析IP字段,需要在logstash的配置文件中配置geoip的解析配置,配置如下:
geoip {
source => "ip" //需要解析的IP地址
}
解析出的效果如下:
"geoip": {
"city_name": "Wuhan",
"timezone": "Asia/Shanghai",
"ip": "117.136.52.200",
"latitude": 30.5801,
"country_name": "China",
"country_code2": "CN",
"continent_code": "AS",
"country_code3": "CN",
"region_name": "Hubei",
"location": {
"lon": 114.2734,
"lat": 30.5801
},
"region_code": "42",
"longitude": 114.2734
}
备注:这个只是geoip的配置,解析日志的时候需要先解析出ip字段
二、配置geoip字段类型
IP经过logstash解析后就可以使用IP的所有解析信息了,但是如果想要在kibana中作图,就必须把geoip里面的相应信息配置成相应的字段类型,才能够被kibana识别,然后经过聚合作图。 需要配置的字段:geoip.location 需要配置的类型:geo_point 在mapping中的配置为:
"geoip" : {
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
备注1: ignore_malformed 如果true,格式错误的地理位置被忽略。如果false(默认),格式错误的地理位置引发异常并拒绝整个文档。 此字段需要配置成true,以防地理格式错误导致文档被拒绝。 也可以在所以级别进行设置: "settings": { "index.mapping.ignore_malformed": true }
备注2:需要先设置mapping,再导入数据mapping才会生效,如果先导入数据,再设置mapping,则第二天八点后才会生效(北京时间)。
三、kibana作图
1、在kibana中打开visualize->coordinate map
2、选择相应的索引进行画图
3、选择geoip.location作为聚合字段,然后设置Options,调整地图效果即可。
本文地址:http://elasticsearch.cn/article/494
10 个评论
在选择geohash 的时候
Field
No Compatible Fields: The "logstashl" index pattern does not contain any of the following field types: geo_point
source => "172.16.50.232"
},IP是指本机IP?!,我配置了这段之后就启动不成功
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
楼主 这个怎么弄啊