一、GEOIP
1、说明
GeoLite2 数据库是一个免费的 IP 地理定位数据库,与 MaxMind 的 GeoIP2 数据库有一定可比性,但不如后者准确。GeoLite2 Country 与 City 数据库在每月的第一个周二更新。GeoLite2 ASN 数据库的更新时间为每周二。
IP 地理定位在本质上缺乏准确性。地点通常接近人口的中心。 由 GeoIP 数据库提供的任何地点均不应用来确认某个具体的地址或住户。
针对我们为某个 IP 地址返回的经纬度坐标,用准确性半径作为其地理定位准确度的标识。IP 地址的实际地点很可能位于该半径和经纬度坐标界定的区域内。
2、geoip 下载地址
https://dev.maxmind.com/geoip/geoip2/geolite2/
3、geoip 下载链接(免费版 geolite2)
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
二、logstash
1、说明
logstash geoip 插件
logstash 可以通过 geoip 插件并通过配置 geoip 库来实现字段匹配来获取具体字段的请求地址
logstash 加载日志:
[2018-08-28T11:59:56,305][INFO ][logstash.filters.geoip ] Using geoip database {:path=>”/usr/local/src/GeoLite2-City_20180807/GeoLite2-City.mmdb”}
2、配置
filter {
geoip {
source => "remote_addr"
database => "/usr/local/src/GeoLite2-City_20180807/GeoLite2-City.mmdb"
}
}
3、显示
4、geoip 过滤设置
如果在查看用户地理信息的时候,只需要某个字段的内容,只需要指定地址即可,例如:我只需要 contry_name/region_code/city_name/ip 字段
logstash 配置
filter {
geoip {
source => "remote_addr"
database => "/usr/local/src/GeoLite2-City_20180807/GeoLite2-City.mmdb"
fields => ["country_name","region_code", "city_name", "ip"]
}
}
5、geoip 过滤显示
三、geoip mapping
logstash 6.x 模版 json 文件
https://github.com/logstash-plugins/logstash-output-elasticsearch/blob/master/lib/logstash/outputs/elasticsearch/elasticsearch-template-es6x.json
logstash 6.x geoip 官方配置
https://www.elastic.co/cn/blog/geoip-in-the-elastic-stack