Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

簡介:

  • Graylog相對於ELK是較爲輕量級的日誌管理平臺
  • Graylog官網:https://×××w.graylog.org/
    • Graylog-server:Graylog接收來自後端各類應用程序的日誌並提供Web訪問接口
    • Graylog Collector Sidecar:負責收集應用程序日誌併發送至Graylog-server
      • Elasticsearch:用於索引和保存接收到的日誌
      • MongoDB: 負責保存 Graylog 自身的配置信息
      • 經過Graylog來分析Ngnix日誌,獲取訪問者IP,而後使用GeoIP2數據庫分析IP的地理位置
    • 訪問者IP的地理位置信息是以GeoIP免費版GeoLiteCity數據作爲篩選條件,分析訪問來源城市,對於咱們購買CDN時,具備必定的參考意義

系統環境:

  • 本文不作環境搭建方面的介紹,直接使用docker搭建Graylog環境。
    • CentOS 7.5
    • Graylog-server(服務端,接收日誌) IP:192.168.1.2
    • Graylog Collector Sidecar(後端,收集日誌) IP:192.168.1.3
    • docker-ce 18.0三、docker-compose 1.21.2

1、Graylog搭建

#環境方面直接使用docker搭建,若已有graylog請跳過

git clone https://github.com/JyBigBoss/graylog-nginx.git
cd graylog-nginx
vi docker-compose.yml

#請自行修改docker-compose.yml裏面的IP爲當前主機IP。
#克隆下來的文件其實就是官方提供的docker安裝文檔中的。
#這裏是由於我須要GeoLiteCity的數據庫,因此編寫了Dockerfile把數據庫放進去了
#官方Docker安裝文檔:http://docs.graylog.org/en/stable/pages/installation/docker.html

docker-compose up -d

#啓動容器

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

2、配置Graylog接收Nginx日誌

#打開graylog的web界面,配置input來源以及Collector配置
#瀏覽器訪問:http://192.168.1.2:9000
#默認帳號和密碼都爲:admin
#首先要配置input來源,也就是收集日誌來源

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

#日誌來源配置完成以後開始配置收集日誌的collector
#後端的collectors啓動的時候會經過graylog的api來匹配自身的tags
#匹配tags以後會生成對應的filebeat的配置文件並開始收集日誌

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息


3、配置後端collector收集日誌

yum install -y https://github.com/Graylog2/collector-sidecar/releases/download/0.1.6/collector-sidecar-0.1.6-1.x86_64.rpm

#下載collector安裝包安裝

vi /etc/graylog/collector-sidecar/collector_sidecar.yml

#修改配置文件,須要注意tags和api的路徑

graylog-collector-sidecar install

#前臺啓動collector

head -10 access.log  >>  /var/log/nginx/access.log
#因爲我這裏沒有實際的訪問日誌,因此就只能用生產環境的日誌,cat進去,模擬用戶訪問生成訪問日誌

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

4、利用GeoLiteCity生成IP地理位置信息

#自行下載GeoLiteCity的數據文件,注意是GeoLite2 City,MaxMind DB 二進制格式的數據庫
#第一步的時候我已經經過Dockerfile把數據文件放進去了
#下載地址:https://dev.maxmind.com/zh-hans/geoip/geoip2/geolite2/

#首先要配置graylog,讓它可以分析出訪問者的IP
#而後再經過graylog的插件來生成地圖
#這裏使用的正則是Grok的:%{COMMONAPACHELOG}
#配置完成後,graylog就會經過GeoLiteCity數據庫分析出地理位置信息了
#注意:內網的IP是沒有在GeoLiteCity數據庫中的

#我建議是去生產環境拷貝一份access日誌下來測試
#直接把生產環境的日誌cat追加到collector收集的日誌文件就行了

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息
Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

Graylog分析Nginx日誌並經過GeoIP2獲取訪問者IP的地理位置信息

相關文章
相關標籤/搜索