溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ELK7.4-坐標(biāo)地圖映射Nginx用戶地理位置

發(fā)布時(shí)間:2020-07-22 20:53:05 來(lái)源:網(wǎng)絡(luò) 閱讀:1569 作者:小生博客 欄目:系統(tǒng)運(yùn)維

小生博客:http://xsboke.blog.51cto.com

                -------謝謝您的參考,如有疑問(wèn),歡迎交流

目錄

  • 需求
  • 環(huán)境
  • logstash配置
  • kibana配置

需求

使用Geoip解析nginx用戶IP地理位置,然后通過(guò)kibana的"coordinates map"實(shí)現(xiàn)映射用戶地理位置可視化

環(huán)境

這里主要展示logstash filter pluginkibana的配置,之前的配置請(qǐng)參考:ELK7.4-快速入門(mén)實(shí)現(xiàn)數(shù)據(jù)收集

web             172.16.100.251      nignx/filebeat/logstash 
elasticsearch   172.16.100.252      elasticsearch/kibana

Web配置

  1. 添加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" # 要發(fā)送的字段,默認(rèn)為此
               add_field => ["[geoip][coordinates]","%{[geoip][longitude]}"] # 獲取經(jīng)度
               add_field => ["[geoip][coordinates]","%{[geoip][latitude]}"] # 獲取緯度
           }
    
           mutate {
               convert => ["[geoip][coordinates]","float"] # 修改經(jīng)緯度為浮點(diǎn)數(shù)
           }
       }
    }
    
    output {
       if "nginx_access" in [tags] {
           elasticsearch {
               hosts => ["172.16.100.252:9200"]
               index => "logstash-nginx_access-%{+YYYY.MM.dd}" # 使用以logstash索引可以免除手動(dòng)指定geoip為geo_point類型.
           }
       }
    }
    

elasticsearch配置

  1. kibana配置

    默認(rèn)情況下kibana使用"Elastic Maps Service"顯示地圖模塊,要使用其他服務(wù)提供商的模塊可以通過(guò)修改"map.tilemap.url"實(shí)現(xiàn),下面是修改為高德地圖
    # 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對(duì)中文兼容性更好,個(gè)人建議使用Kibana默認(rèn)的"Elastic Maps Service"顯示地圖模塊,可以修改kibana的語(yǔ)言從而顯示中文:
    # i18n.locale: "zh-CN"
  2. kibana Web配置

    新建可視化 -> 坐標(biāo)地圖 -> 選擇logstash索引

    ELK7.4-坐標(biāo)地圖映射Nginx用戶地理位置

    根據(jù)下圖進(jìn)行配置然后保存即可

    ELK7.4-坐標(biāo)地圖映射Nginx用戶地理位置

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI