您好,登錄后才能下訂單哦!
小生博客:http://xsboke.blog.51cto.com
-------謝謝您的參考,如有疑問,歡迎交流
目錄
使用Geoip解析nginx用戶IP地理位置,然后通過kibana的"coordinates map"實現映射用戶地理位置可視化
這里主要展示logstash filter plugin
和kibana
的配置,之前的配置請參考:ELK7.4-快速入門實現數據收集
web 172.16.100.251 nignx/filebeat/logstash
elasticsearch 172.16.100.252 elasticsearch/kibana
Web
配置添加pipelines
配置
vim /etc/logstash/conf.d/nginx.conf
input {
beats {
port => 5044
}
}
filter {
if "nginx_access" in [tags] {
grok {
match => { "message" => "%{NUMBER:request_time}\|%{IPORHOST:access_domain}\|%{IPORHOST:remote_addr}\|%{USERNAME:remote_user}\|\[%{HTTPDATE:time_local}\]\|%{NOTSPACE:request_method} %{NOTSPACE:request} (?:HTTP/%{NUMBER:http_version})\|%{NUMBER:status}\|%{NUMBER:upstream_status}\|%{NUMBER:upstream_response_time}\|%{NOTSPACE:upstream_addr}\|%{NUMBER:body_bytes_sent}\|%{NOTSPACE:request_body}\|%{NOTSPACE:http_referer}\|%{GREEDYDATA:http_user_agent}\|%{NOTSPACE:http_x_forwarded_path}\|%{NOTSPACE:upstream_cache_status}" }
}
geoip {
source => "remote_addr"
target => "geoip" # 要發送的字段,默認為此
add_field => ["[geoip][coordinates]","%{[geoip][longitude]}"] # 獲取經度
add_field => ["[geoip][coordinates]","%{[geoip][latitude]}"] # 獲取緯度
}
mutate {
convert => ["[geoip][coordinates]","float"] # 修改經緯度為浮點數
}
}
}
output {
if "nginx_access" in [tags] {
elasticsearch {
hosts => ["172.16.100.252:9200"]
index => "logstash-nginx_access-%{+YYYY.MM.dd}" # 使用以logstash索引可以免除手動指定geoip為geo_point類型.
}
}
}
elasticsearch
配置kibana
配置
默認情況下kibana使用"Elastic Maps Service"顯示地圖模塊,要使用其他服務提供商的模塊可以通過修改"map.tilemap.url"實現,下面是修改為高德地圖
# map.tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'
7.4版本的kibana對中文兼容性更好,個人建議使用Kibana默認的"Elastic Maps Service"顯示地圖模塊,可以修改kibana的語言從而顯示中文:
# i18n.locale: "zh-CN"
kibana Web
配置
新建可視化
-> 坐標地圖
-> 選擇logstash索引
根據下圖進行配置然后保存即可
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。