ELS-logstash的geoip使用

logstash得grok可以對收集得數(shù)據(jù)進(jìn)行過濾,geoip可以對過濾后得數(shù)據(jù)字段再進(jìn)行細(xì)分,然后根據(jù)內(nèi)建得geoip庫來得知訪問得ip來自于哪個(gè)城市了。官方文檔詳解地址https://www.elastic.co/guide/en/logstash/current/logstash-config-for-filebeat-modules.html#parsing-nginx
首先我們需要去下載地址庫,可以自行選擇城市還是國家。https://dev.maxmind.com/geoip/geoip2/geolite2/
這個(gè)數(shù)據(jù)庫因該放在logstash主機(jī)上,能夠被過濾器插件訪問和使用。

首先將數(shù)據(jù)庫下載至logstash目錄并解壓
 wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
tar -xvf GeoLite2-City.tar.gz
將GeoLite2-City.mmdb移動(dòng)到目錄下,然后將目錄刪了即可

然后我們修改logstash的配置文件

vim /etc/logstash/conf.d/ceshi.conf

input {
                redis {
                        key => "filebeat"
                        data_type => "list"
                        password => "lvqing"
                }
}


filter {
      grok {
        match => { "message" => ["%{IPORHOST:[nginx][access][remote_ip]} - %{DATA:[nginx][access][user_name]} \[%{HTTPDATE:[nginx][access][time]}\] \"%{WORD:[nginx][access][method]} %{DATA:[nginx][access][url]} HTTP/%{NUMBER:[nginx][access][http_version]}\" %{NUMBER:[nginx][access][response_code]} %{NUMBER:[nginx][access][body_sent][bytes]} \"%{DATA:[nginx][access][referrer]}\" \"%{DATA:[nginx][access][agent]}\""] }
        remove_field => "message"
      }
      mutate {
        add_field => { "read_timestamp" => "%{@timestamp}" }
      }
      date {
        match => [ "[nginx][access][time]", "dd/MMM/YYYY:H:m:s Z" ]
        remove_field => "[nginx][access][time]"
      }
      useragent {
        source => "[nginx][access][agent]"
       target => "geoip"
        remove_field => "[nginx][access][agent]"
      }
      geoip {
        source => "[nginx][access][remote_ip]"
        target => "[nginx][access][geoip]"
        database => "/etc/logstash/GeoLite2-City.mmdb"
      }
}

output {
        elasticsearch {
                hosts => ["192.168.31.200:9200", "192.168.31.201:9200", "192.168.31.203:9200"]
                index => "logstatsh-ngxaccesslog-%{+YYYY.MM.dd}"
        }
}

注意:
    1、輸出的日志文件名必須以“l(fā)ogstash-”開頭,方可將geoip.location的type自動(dòng)設(shè)定為"geo_point";
    2、target => "geoip"

可以看到日志已經(jīng)被成功分切了


image.png

既然geoip可以基于remoteip來分析訪問的客戶端來自于哪個(gè)城市,接下來我們測試一下這個(gè)場景
用echo命令將自己編寫的日志信息追加到日志文件中

 echo '136.11.65.68 - - [17/Jan/2019:11:19:46 +0800] "GET / HTTP/1.1" 404 3650 "-" "curl/7.29.0" "121.1.17.2"' >> /var/log/nginx/access.log

image.png

然后可以用geoip插件展示地圖熱力圖
https://elasticsearch.cn/article/494

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 搜索引擎介紹Elasticsearch的使用Logstash的使用Filebeat的使用Kibana的使用Elas...
    哈嘍別樣閱讀 1,015評論 1 4
  • 本文作者:羅海鵬,叩丁狼高級講師。原創(chuàng)文章,轉(zhuǎn)載請注明出處。 前言 在第九章節(jié)中,我們已經(jīng)安裝好Logstash組...
    叩丁狼教育閱讀 2,693評論 0 3
  • 前言 在第九章節(jié)中,我們已經(jīng)安裝好Logstash組件了,并且啟動(dòng)實(shí)例測試它的數(shù)據(jù)輸入和輸出,但是用的是最簡單的控...
    LuoHaiPeng閱讀 2,658評論 0 9
  • 簡介 ELK是Elasticsearch、Logstash、Kibana的簡稱,這三者是核心套件,但并非全部。后文...
    mysia閱讀 3,717評論 1 14
  • 相遇總是來得很慢,離別總是常事, 一直未結(jié)束的異地戀,開始結(jié)束都是相隔兩地, 從未能熟悉彼此,也許,現(xiàn)在的想法是對...
    泡飯泡菜閱讀 217評論 0 0

友情鏈接更多精彩內(nèi)容