Nginx 日志信息统计分析

日志目录:

默认安装路径: /usr/local/nginx/logs

access.log--->访问日志

error.log --->错误日志

默认nginx不分包,长期使用情况下,会导致日志文件越来越大影响后续的性能及日志分析,建议针对个人需求进行日志分隔

按天分隔脚本(nginx_logs.sh):

#迁移当前的日志文件 按天:%Y%m%d  按小时:%Y%m%d%H
mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access_`date +%Y%m%d`.log
mv /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error_`date +%Y%m%d`.log
#创建新的日志文件
touch /usr/local/nginx/logs/access.log /usr/local/nginx/logs/error.log
#关闭nginx
pkill -9 nginx
#重新启动nginx
sudo /usr/local/nginx/sbin/nginx

创建脚本后,在写入相关的定时器 

crontab -e  0 1 * * * /usr/local/nginx/nginx_logs.sh

名词解释:

PV(Page View):访问量,即页面浏览量或点击量,用户每次刷新即被计算一次。
UV(Unique Visitor):独立访客,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
IP(Internet Protocol):独立IP,指独立IP数。00:00-24:00内相同IP地址只被计算一次。

根据访问URL统计PV
awk '{print $7}' access.log | wc -l
根据访问IP统计UV
awk '{print $1}' access.log | sort | uniq -c | wc -l
查询访问最频繁的URL
awk '{print $7}' access.log | sort | uniq -c | sort -k1 -n -r | more
查看并发连接数
netstat -nat | grep ESTABLISHED | wc -l
查询访问最频繁的IP
awk '{print $1}' access.log | sort | uniq -c | sort -k1 -n -r | more
根据时间段统计查看日志
cat access.log | sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p' | more
统计IP访问个数(和根据访问IP统计UV一样)
cat access.log | awk '{ips[$1]+=1} END {for(ip in ips) print ips[ip], ip}' | sort -n -r | wc -l
查看0点-9点之间的IP访问数
grep "2021:0[0-9]" access.log | awk '{ips[$1]+=1} END {for(ip in ips) print ips[ip],ip}' | sort -n -r | wc -l
查看10点-19点之间的IP访问数
grep "2021:1[0-9]" access.log | awk '{ips[$1]+=1} END {for(ip in ips) print ips[ip],ip}' | sort -n -r | wc -l
查看20点-24点之间的IP访问数
grep "2021:2[0-4]" access.log | awk '{ips[$1]+=1} END {for(ip in ips) print ips[ip],ip}' | sort -n -r | wc -l
同理 查询其他数据时也可先按时间过滤后进行统计
获取每分钟的请求数量,并输出成CSV文件
cat access.log | awk '{print substr($4, 14, 5)}' | uniq -c | awk '{print $2", "$1}' > access_minute.csv
查看IP访问数且访问数>=50的IP
cat access.log | awk '{ips[$1]+=1} END {for(ip in ips) if(ips[ip]>=500) print ips[ip],ip}' | sort -n -r
获取最耗时请求的请求时间、URL、耗时的前n名,不添加| head -n时,表示获取全部
cat access.log | awk '{print $4, $7, $NF}' | awk -F '"' '{print $1, $2, $3}' | sort -k3 -n -r | head -n

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值