Nginx 日志

配置Nginx日志、日期格式,通过awk筛选内容。

日志格式

日期格式改为iso8601样式,如9102-02-31T24:60:60+0800;
日志增加$host:$server_port字段,以便分析主机来源。

1
2
3
4
5
6
7
8
9
# cat /etc/nginx/nginx.conf
http {
...
log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$host:$server_port"';
server_tokens off;
...
}

查看日志

通过awksortuniq等命令解析排序汇总日志。

例如:

分析ip访问次数。

1
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nrk 1

反查ip域名。

1
awk '{print $1}' /var/log/nginx/access.log | sort | uniq | awk '{system("host " $1)}'

之后可以进一步,正向DNS解析验证ip所属。

1
nslookup [ip/domain] [ns_server]
0%