- 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收集的日志文件就行了