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

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: 这里两行是添加经纬度,地图中地区显示是根据经纬度来识别

你可能感兴趣的:(linux,elk)