- Graylog-server:Graylog接收來自後端各類應用程序的日誌並提供Web訪問接口
- Graylog Collector Sidecar:負責收集應用程序日誌併發送至Graylog-server
- Elasticsearch:用於索引和保存接收到的日誌
- MongoDB: 負責保存 Graylog 自身的配置信息
- 經過Graylog來分析Ngnix日誌,獲取訪問者IP,而後使用GeoIP2數據庫分析IP的地理位置
- 訪問者IP的地理位置信息是以GeoIP免費版GeoLiteCity數據作爲篩選條件,分析訪問來源城市,對於咱們購買CDN時,具備必定的參考意義
#環境方面直接使用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的web界面,配置input來源以及Collector配置 #瀏覽器訪問:http://192.168.1.2:9000 #默認帳號和密碼都爲:admin #首先要配置input來源,也就是收集日誌來源
#日誌來源配置完成以後開始配置收集日誌的collector #後端的collectors啓動的時候會經過graylog的api來匹配自身的tags #匹配tags以後會生成對應的filebeat的配置文件並開始收集日誌
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進去,模擬用戶訪問生成訪問日誌
#自行下載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收集的日誌文件就行了