welcome to xlongwei.com

欢迎大家一起学习、交流、分享


QQ:9167702333 邮箱:admin@xlongwei.com

nginx 日志分析


分类 Server   关键字 分享   标签 linux   nginx   发布 hongwei  1460649938116
注意 转载须保留原文链接,译文链接,作者译者等信息。  
nginx日志包含所有请求的记录,其中有些信息值得我们统计分析并做出对应处理,例如:主机ip、请求路径、user-agent、referer等。

nginx日志统计分析脚本,awk -F'|'表示使用竖线“|”作为分隔符,nginx默认的main日志使用空格或双引号分隔都不太合适
cat /var/log/nginx/access.log | awk -F'|' '{A[$(1)]++}END{for(k in A)print A[k],k}' | sort -nr | head

/var/log/nginx/access.log #日志配置调整为竖线“|”分隔
119.57.158.74 | 2016-04-14T14:14:26+08:00 | GET | /robots.txt | 400 | 268 | - | Mozilla/5.0 () | -

ip统计输出,很容易发现是否有ip在恶意访问
1927 121.41.60.109
344 180.169.10.222
283 61.135.189.121
153 106.91.201.0
113 123.150.183.32

A[$(1)]++,这里的位置与日志对应关系:1-ip,3-method,4-path,5-status,7-referer,8-user-agent,9-proxy-ip,参考nginx-log.sh

nginx日志格式调整
log_format  main  '$remote_addr | $time_iso8601 | $request_method | $request_uri | $status | $body_bytes_sent | $http_referer |
$http_user_agent | $http_x_forwarded_for';

如果有ip恶意访问,使用iptables屏蔽
iptables -A RH-Firewall-1-INPUT -s 121.42.0.16 -j DROP  #这个ip执行阿里云盾的安全扫描

service iptables status #查看iptables状态,第一列是规则的num
iptables -D RH-Firewall-1-INPUT 18 #解除第18条规则,解除对某个ip的屏蔽

屏蔽user-agent,referer也可以这样处理
if ( $http_user_agent ~ (.*Heimdall.*) ) { return 403; }

防盗链,none支持浏览器直接打开访问
valid_referers none *.xlongwei.com;
if ( $invalid_referer ) { return 403; }