分类: Linux
根据日志统计Nginx访问量
PV(Page View):即页面浏览量或者点击量,用户每一次对网站中每个页面访问均记录1个PV。用户对同一页面的多次访问,访问量累积。

UV(Unique Visitor):指通过互联网浏览这个网页的人,电脑称为一个访客、手机也称为一个访客,一天之内相同的客户端只能被计算一次。

IP(Internet Protocol):指独立IP访问站点的IP总数,一天内相同IP只能算一次。

VV(Visit View):指所有访客一天内访问网站的次数,当访客完成所有浏览并最终关闭网站的所有页面时变完成了一次访问,同一访客一天内可能有多次访问行为,访问次数累积。

查看各个访问量:

1.根据访问IP统计UV

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

2.统计访问URL统计PV

awk '{print $7}' /var/log/nginx/access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' /var/log/nginx/access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' /var/log/nginx/access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

cat /var/log/nginx/access.log| sed -n '/14\/Mar\/2017:21/,/14\/Mar\/2017:22/p'|more

查看访问最频繁的前100个IP

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

查看访问100次以上的IP

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

查询某个IP的详细访问情况,按访问频率排序

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

查看访问最频的页面(TOP100)

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

查看访问最频的页面([排除php页面】(TOP100)

grep -v ".php" access.log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100 

查看页面访问次数超过100次的页面

cat access.log | cut -d '' -f 7 | sort |uniq -c | awk '{if (1>100)print0}' | less

查看最近1000条记录,访问量最高的页面

tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort -nr|less 

每秒请求量统计
统计每秒的请求数,top100的时间点(精确到秒)

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

每分钟请求量统计
统计每分钟的请求数,top100的时间点(精确到分钟)

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

每小时请求量统计
统计每小时的请求数,top100的时间点(精确到小时)

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

性能分析
在nginx log中最后一个字段加入request_time
列出传输时间超过 3 秒的页面,显示前20条

cat access.log|awk '(NF > 3){print7}'|sort -n|uniq -c|sort -nr|head -20 

列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条

cat access.log|awk '(NF > 1 &&7~/.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

蜘蛛抓取统计
统计蜘蛛抓取次数

grep 'Baiduspider' access.log |wc -l 

统计蜘蛛抓取404的次数

grep 'Baiduspider' access.log |grep '404' | wc -l

TCP连接统计
查看当前TCP连接数

netstat -tan | grep “ESTABLISHED” | grep ":80" | wc -l

用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print 1"."2"."3"."4}' | sort | uniq -c | sort -nr


相关博文:

发表新评论