您的位置:首页 > 其它

kibana使用高德地图显示IP分布

2018-01-27 22:19 267 查看
1.说明

目前Kibana默认自带的地图全部是英文,更换高德地图对地图汉化。

2.修改配置

2.1编辑kibana配置文件kibana.yml,最后面添加

tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'

style=7是地图,style=6是卫星图,删除kibana目录下的optimize/bundles文件夹

2.2在logstash服务器下载IP地址归类查询库

下载http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz,上传至/home/logstash-6.1.1/config目录

cd /home/logstash-6.1.1/config

gunzip GeoLite2-City.mmdb.gz

2.3编辑logstash配置文件

默认的模板支持geo_poin但是只针对logstash-*有效,所以如果想使用MAP查看IP分布,必须将我们的索引名称改为logstash-开头的,
否则自己在es中创建模板并制定索引匹配规则,通过http://192.2.99.3:9200/_template?pretty可以查看es全部的索引模板,配置如下:

input {
file {
path => "/home/tomcat/tomcat7-8088-yyxt/logs/behavior.log"
start_position => beginning
type => behavior
codec => json {
charset => "UTF-8"
}
add_field => {
"machineIp"=>"192.2.99.3"
"machineType"=>"test"
}
}
}
filter {
if [type] == "behavior"{
geoip {
source => "sourceIp"
target => "geoip"
database => "/home/logstash-6.1.1/config/GeoLite2-City.mmdb"
add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]
add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]
}
mutate {
convert => [ "[geoip][coordinates]", "float"]
}
}
}
output {
if [type] == "behavior"{
elasticsearch {
hosts => "192.2.99.3:9200"
index => "logstash-behavior-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
}3.重启服务

3.1重启kibana

查看进程号:fuser -n tcp 5601

kill -9 进程号

nohup ./bin/kibana &

3.2重启logstash

ps -ef|grep logstash

kill -9 进程号

nohup ./bin/logstash -f /home/logstash-6.1.1/config/my.conf &

4.配置解释

这里为了测试,数据通过终端手动输入

geoip: IP查询插件

source: 需要通过geoip插件处理的field,一般为ip,这里填写源IP(sourceIp)即客户端IP

target: 解析后的Geoip地址数据,应该存放在哪一个字段中,默认是geoip这个字段

database: 指定下载的数据库文件

add_field: 这里两行是添加经纬度,地图中地区显示是根据经纬度来识别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: