0x01:根据访问IP统计UV
- UV(Unique Visitor)独立访客 , 统计访问某站点的用户数;
- IP(Internet Protocol)独立IP数 , 是指独立的浏览了页面的不同IP , 即统计不同的IP浏览用户数量 。同一IP不管访问了几个页面 , 独立IP数均为1;不同的IP浏览页面 , 计数会加1 。IP是基于用户广域网IP地址来区分不同的访问者的 , 所以多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网 , 可能被记录为一个独立IP访问者 。另外如果用户不断更换IP , 则有可能被多次统计 。
awk '{print $1}' access.log | sort | uniq -c | wc -l
0x02: 根据访问URL统计PV
- PV(Page View)访问量, 即页面浏览量或点击量 , 衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次 , 多次打开或刷新同一页面则浏览量累计 。
awk '{print $7}' access.log | wc -l
【nginx系列:常用利用shell统计日志】0x03: 统计访问最多的URL
根据访问最多的URL来判断哪些业务比较繁忙;也跟根据情况判断是否该业务是否有黑客攻击 。
awk '{print $7}' access.log | sort | uniq -c | sort -n -k 1 -r | more
文章插图
加一个more命令主要防止URL一屏幕显示不下的情况 。
0x04:统计访问最频繁的IP
根据访问IP来判断哪些IP操作最多;也可以根据情况判断该IP是不是疑似攻击IP 。
awk '{print $1}' access.log | sort | uniq -c | sort -n -k 1 -r | more
文章插图
加一个more命令主要防止IP一屏幕显示不下的情况 。
0x05:根据时间段统计查看日志
具体使用sed或者grep都可以 , 主要是编写正则表达式
sed:
cat access.log | sed -n '/29/Aug/2020:[01-23]/p' | more
grep: grep '29/Aug/2020:[01-23]' access.log | more
0x06:统计当日的的pv和uv
因为是统计当日的pv和uv , 所以在编写命令时之前了解一下Nginx的日志格式 。日志的默认格式如下:
文章插图
默认输出的月份使用英文简写 。
pv:
cataccess.log | sed -n /`date "+%d/%b/%Y"`/p | awk '{print $7}' | sort | wc -l
uv:cat access.log | sed -n /`date "+%d/%b/%Y"`/p |awk '{print $1}' | sort|uniq -c | wc -l
如果使用以上这两个命令发现统计不出来任何数据时 , 就要检查一下 , 系统的语言变量LANG是否配置成中文 , 如果是需要配置成英文文章插图
使用以下命令配置成英文
export LANG="en_US.UTF-8"
这时在执行pv和uv命令应该就可以统计出来了 , 如下图文章插图
0x07:获取最耗时的请求时间、url、耗时
下面是获取最耗时的前十个请求 , 如果想获取全部去掉:head -10
cat access.log | awk '{print $4,$7,$NF}' | awk -F '"' '{print $1,$2,$3}' | sort -k3 -rn | head -10
0x08:获取每分钟的请求数量
cat access.log | awk '{print substr($4,14,5)}' | uniq -c | awk '{print $2","$1}'
文章插图
可以输出到csv格式文件中
cat access.log | awk '{print substr($4,14,5)}' | uniq -c | awk '{print $2","$1}' > access.csv
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Nginx系列:图片过滤处理
- vivo|自研V1+影像芯片加成:vivo X80系列全球首发索尼IMX866 RGBW大底
- 跟常用框架SpringSecurity比 微服务到底胜在哪?
- Nginx配置跳转的常用方式
- NodeJS常用 API 整理
- 苹果|iPhone 14系列最新概念图出炉:4款新机、粉色版亮眼
- 禁止频繁访问的ip访问nginx
- ROS 的常用命令行工具
- 红茶常用外形评语,喝红茶的好处介绍
- excel常用的趋势分析图,值得收藏