linux统计nginx日志中请求访问量命令

时间:2021-12-13 01:27:55

Nginx 三种分配策略:轮询、权重、ip_hash(比如你登录了一个网站,登录信息已经保存到 a 机器,但当你做后续操作时的请求会到 b 机器,那么就获取不到你原来登录的信息,此时你就需要重新登录了。这样的情况是用户肯定不能接受的,ip_hash 模式就可以很好地解决这个问题,让每次访问能基于同一用户访问固定的服务器。)

nginx日志存放路径:nginx.conf

awk 常用参数是 -F 指定分隔符。

sed 常用的参数有:

a 表示新增;

i 表示插入;

c 表示取代;

d 表示删除。

Sort 的默认方式就是把第一列根据 ASCII 值排序输出。常用参数有:

-n,依照数值的大小排序;

-r,以相反的顺序来排序;

-k,选择以某个区间进行排序。

uniq 用于检查或者统计文本出现的重复行,常用参数是 -c,它用于连续重复行次数的统计。


cat access.log |awk'{print $7}'|sort|uniq -c|sort -n -k -r

这个命令,是提取 acccess.log 的第 7 列,也就是接口路径:

先 sort 排序,这样可以将相同的接口访问路径合并一起;

再使用 uniq -c 统计连续访问的次数;

最后根据访问次数排序,便可以得到如下结果。

cat access.log |awk '{print $7}'|sort|uniq -c|sort -n -k 1 -r

87280 /hello/list

18892 /hello/map

12846 /v1/login

通过输出结果可以看出第一列就是给定日志内的接口访问次数统计,比如 87280 就是 /hello/list 的访问次数。