地理分佈熱度圖
爲Grafana
或Kibana
繪製地理分佈熱度圖,需要對ELK組件進行相關設置
Logstash geoip插件
geoip
過濾器根據來自Maxmind GeoLite2
數據庫的數據添加有關IP地址的地理位置的信息。
詳細配置見Geoip filter plugin
geoip {
source => "[request_ip]"
remove_field => ["tags", "[geoip][latitude]", "[geoip][longitude]", "[geoip][continent_code]", "[geoip][country_code3]", "[geoip][country_code2]"]
}
Logstash輸出
{
"nginx.access.http_version" => "1.1",
"geoip" => {
"city_name" => "Hebei", #城市地址
"timezone" => "Asia/Shanghai", #時區
"ip" => "123.183.135.141", #IP地址
"latitude" => 39.8897, #緯度
"longitude" => 115.275, #經度
"country_name" => "China", #國家的名字
"country_code2" => "CN", #國家簡寫
"continent_code" => "AS", #洲
"country_code3" => "CN",
"region_name" => "Hebei", #地區名稱
"location" => { #位置
"lon" => 115.275, #經度
"lat" => 39.8897 #維度
}
}
ES索引模板
通過配置 ES索引模板 或 ES索引mapping 設置geoip
的類型
使用
nginx-*
與kong-*
的es模板已設置geoip
的類型
ES索引模板
使用ES索引模板設置geo_point
類型
"properties" : {
"geoip" : {
"dynamic" : true,
"properties" : {
"ip" : {
"type" : "ip"
},
"location" : {
"type" : "geo_point"
},
"latitude" : {
"type" : "half_float"
},
"longitude" : {
"type" : "half_float"
}
}
}
}
ES索引mapping
"geoip" : {
"properties" : {
"location" : {
"type" : "geo_point",
"ignore_malformed": "true"
}
}
}
ignore_malformed
若爲true
,格式錯誤的地理位置被忽略。若爲false
,格式錯誤的地理位置引發異常並拒絕整個文檔。
Grafana/Kibana繪圖