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: 这里两行是添加经纬度,地图中地区显示是根据经纬度来识别
目前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: 这里两行是添加经纬度,地图中地区显示是根据经纬度来识别
相关文章推荐
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- ELK应用之二:Kibana显示Nginx中来访客户端IP地域分布
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- 高德地图开发【覆盖物显示——Marker的使用(一)】
- iOS开发经验:高德地图折线或者图形等覆盖物的适配显示
- 使用百度SDK,地图不能显示 + 不能定位几步解决方法
- Swift - 使用MapKit显示地图,并在地图上做标记
- 高德地图基本显示
- 高德地图android sdk 地图显示和定位 基本使用方法
- 高德地图显示自定义信息窗体
- 安卓学习笔记:让自己显示在地图上(使用百度地图API)
- 【高德地图开发3】---地图显示
- 微信公众号中高德地图显示路线开发
- Android高德地图显示总结
- 网站添加自己公司的地图(使用的百度地图)时只显示一个空白框
- MFC的IP控件的使用,获取本地IP显示到控件
- Echarts使用一:在地图上将特定城市显示高亮
- Android Studio中使用百度地图API,不显示地图的问题解决办法
- Spring boot项目 使用ip+port+contextPath进行访问的时候会直接显示出项目中的一些接口信息和相关数据
- Android 外部调起高德地图显示坐标点 自定义 标注高德地图 by Terry