Featured image of post Nginx常用统计命令

Nginx常用统计命令

Nginx作为一个Web服务器,虽然本身具有非常强大的性能,但是部分场景下会出现请求过慢的情况,这个时候就需要对日志进行分析,查看接口性能分析。虽然有诸如GoAccessrequest-log-analyzer等强大的日志分析工具,但是日常还是需要掌握一些进本的Nginx日志分析命令。

IP统计相关

统计总共有多少IP访问

1
awk '{print $1}' access.log | sort -n | uniq | wc -l

统计特定时间段内访问量

1
grep "07/July/2021:[08-11]" access.log | awk '{print $1}' | sort -n | uniq | wc -l 

查看访问频率最高的前N个IP

1
awk '{print $1}' access.log | sort -n | uniq -c | sort -nr | head -n {$n}

查看访问次数大于N的IP

1
awk '{print $1}' access.log | sort -n | uniq -c | awk '{if($1 > {$n}) print $0}' | sort -rn

查询IP的接口访问频率

1
grep '8.8.8.8' access.log | awk '{print $7}' | sort | uniq -c | sort -rn

页面访问统计

查询访问频率前N的接口

1
awk '{print $7}' access.log | sort | uniq -c | sort -rn | head n {$n}

排除指定接口查询访问频率前N的接口

1
grep -v "www.google.com" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head n {$n}

查询访问超过N次的接口

1
awk '{print $7}' access.log | sort | uniq -c | awk '{if ($1 > {$N}) print $0}' | less 

按时间维度统计访问量

统计前N个QPS

1
awk '{print $4}' access.log | cut -c 14-21 | sort | uniq -c | sort -nr | head -n {$N}

统计前N个QPM

1
awk '{print $4}' access.log | cut -c 14-18 | sort | uniq -c | sort -nr | head -n {$N}

统计前N个QPH

1
awk '{print $4}' access.log | cut -c 14-15 | sort | uniq -c | sort -nr | head -n {$N}

接口性能分析

该命令需要配置Nginx的log_format

统计请求超过N秒的接口

1
awk '{if($NF > {$N}) print $7}' access.log | sort | uniq -c | sort -nr | less 

统计请求超过N秒复合正则的接口

1
awk '{if($NF > {$N} && $7~/{pattern}/) print $7}' | sort | uniq -c | sort -nr | less

TCP连接统计

查看当前活跃的TCP连接

1
netstat -tan | grep -i 'established' | grep ':443' | wc -l
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计