Nginx访问日志接入GrayLog4.2.5并通过GeoIP展现访问者IP的地理位置信息
配置步骤
1、maxmind官网下载GeoLite2-City的mmdb文件
上传/etc/graylog/server目录中
并在配置中启用,以及修改Message Processors配置中的顺序
2、Graylog升级至最新版本
rpm -aq | grep graylog-server yum update graylog-server -y
因为所使用graylog-content-pack-nginx-syslog要求4.2.5以上版本 升级完成后重启服务
systemctl restart graylog-server
3、下载graylog-content-pack-nginx-syslog
https://github.com/scriptingislife/graylog-content-pack-nginx-syslog
修改为1515端口作为syslog input接收端口并导入
点击install后
可以在Input中看到nginx-syslog 1515端口的一个input
先启用input
这时若GrayLog的防火墙没有开放1515 udp端口,则需要开放一下
firewall-cmd --permanent --zone=public --add-port=1515/udp firewall-cmd --reload
4、nginx服务器上修改nginx.conf配置文件
log_format graylog_json escape=json '{ "nginx_timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"connection": "$connection", ' '"connection_requests": $connection_requests, ' '"pipe": "$pipe", ' '"body_bytes_sent": $body_bytes_sent, ' '"request_length": $request_length, ' '"request_time": $request_time, ' '"response_status": $status, ' '"request": "$request", ' '"request_method": "$request_method", ' '"host": "$host", ' '"upstream_cache_status": "$upstream_cache_status", ' '"upstream_addr": "$upstream_addr", ' '"http_x_forwarded_for": "$http_x_forwarded_for", ' '"http_referrer": "$http_referer", ' '"http_user_agent": "$http_user_agent", ' '"http_version": "$server_protocol", ' '"remote_user": "$remote_user", ' '"http_x_forwarded_proto": "$http_x_forwarded_proto", ' '"upstream_response_time": "$upstream_response_time", ' '"nginx_access": true }'; access_log syslog:server=192.168.31.127:1515 graylog_json; access_log /var/log/nginx/access.log main ; error_log /var/log/nginx/error.log;
然后重启nginx服务
5、Graylog上可以查询到该nginxserver的日志
可以看出已经拆解成了相应的字段
6、模拟公网IP访问nginx webserver
这时若能匹配到GeoIP,则会有如下GEO相关字段
7、配置WorldMap
Field:remote_addr_geolocation Type:World Map
8、GEO MAP效果如下
本文参考如下链接完成
1、https://zhuanlan.zhihu.com/p/113755052 2、https://www.graylog.org/post/how-to-set-up-graylog-geoip-configuration 3、https://scriptingis.life/NGINX-Syslog-Graylog/ 4、https://github.com/scriptingislife/graylog-content-pack-nginx-syslog 5、https://cloud.tencent.com/developer/article/1690193