Q:有两个人掉到陷阱里了,死的人叫死人,活人叫什么?

kibana使用geoip插件展示地图热力图

Kibana | 作者 ziyou | 发布于2018年02月09日 | | 阅读数:24932

geoip1.png

上图是我们最终的地图效果。

总体步骤:

一、使用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

geoip2.png

2、选择相应的索引进行画图

geoip3.png

3、选择geoip.location作为聚合字段,然后设置Options,调整地图效果即可。

geoip4.png


[尊重社区原创,转载请保留或注明出处]
本文地址: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
ziyou

ziyou 回复 zthua

文档上写的第二步没有做
请问第一步是直接在logstash.yml 加入geoip {
source => "172.16.50.232"
},IP是指本机IP?!,我配置了这段之后就启动不成功
汗!!!你可以看一下geoip插件的使用,这里的IP是字段名,不是固定的IP
"geoip" : {
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
楼主 这个怎么弄啊
可以使用template API或者mappig API设置,具体参考官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
解决了 不是mapping的问题 谢谢了 楼主可以搞个群 有机会多讨论讨论
@Mr. Zhang 请问是怎么解决的呢?
不对啊 这个IP标记的省市和我在百度里面查的IP的省市不一致啊
ziyou

ziyou 回复 maowf

通过IP解析地址,存在一定的误差和变化,如果想要尽可能的准确,需要定时更新IP库,或者使用实时的IP库。

要回复文章请先登录注册