为了账号安全,请及时绑定邮箱和手机立即绑定

Graylog分析Nginx日志并通过GeoIP2获取访问者IP的地理位置信息

标签:
Linux


简介:

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.03、docker-compose 1.21.2

一、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的地理位置信息

二、配置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的地理位置信息

三、配置后端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的地理位置信息

四、利用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的地理位置信息

©著作权归作者所有:来自51CTO博客作者三和梁朝伟的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消