本文最后更新于2023年01月05日,已超过850天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
您阅读这篇文章共耗时:
今天突然想看下自己的网站的访问量,本来以为阿里云控制台有可视化界面,可是没有找到,因此,采用了服务生成,通过访问日志可以初步诊断你的网站有没有被DDOS新关键词,或者查看你的日均访问量。当然,如果你是一名开发人员,完全可以用代码实现可视化展示,一劳永逸.....
参数统一说明
查找所有访问者ip方法
awk '{print $1}' /usr/local/nginx/log/access.log |sort |uniq -c|sort -n
得到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,如下面结果,
若 66.249.79.84 不为蜘蛛则需要屏蔽:
89 106.75.133.167
90 118.123.114.57
91 101.78.0.210
92 116.113.124.59
92 119.90.24.73
92 124.119.87.204
119 173.242.117.145
4320 66.249.79.84
打印到文件:也可以用如下命令,将日志结果以文件形式生成
awk '{print $1}' /usr/local/nginx/log/access.log |sort |uniq -c|sort -n > test.log 2>&1
屏蔽IP的方法
在nginx的配置目录下面,新建屏蔽ip文件,命名为.conf,以后新增加屏蔽ip只需编辑这个文件即可。
加入如下内容并保存:
deny 66.249.79.84;
如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,重载 nginx 配置文件
service nginx reload
注意
屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问
//屏蔽单个ip访问
deny IP;
//允许单个ip访问
allow IP;
//屏蔽所有ip访问
deny all;
//允许所有ip访问
allow all;
//屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8
//屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 124.45.0.0/16
//屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
deny 123.45.6.0/24
//如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
//那需要你在guolv_ip.conf中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;
更多
筛选某天的访问ip
注意日期格式:2021-03-23,这个要看具体access.log日志日期格式,有的是04/Mar/2022 这种格式来体现日期,根据自身情况填写
cat access.log | grep '2021-03-23' | awk '{print $1}' | sort | uniq -c | sort -nr -k1 | head -n 10
sed命令打印出某个时间段之间的
sed -n '/2021-03-23T10:40:00/,/2021-03-23T10:50:10/p' access.log | awk '{print $1}' | sort | uniq -c | sort -nr -k1 | head -n 10
多少分钟前的ip访问次数排序
sed -n "/date -d "1 minute ago" +"%Y-%m-%dT%H:%M:%S"
/,/date +"%Y-%m-%dT%H:%M:%S"
/p" access.log | awk -F '"' '{ print $8 }' | sort | uniq -c | sort -nr -k1 | head -n 10
或
cat /var/log/nginx/access.log | grep date -d "1 minutes ago" +"%Y-%m-%d"T"%H:%M"
|awk -F '"' '{ print $8 }' |sort |uniq -c |sort -rn | head -n 10
根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
统计访问URL统计PV
awk '{print $7}' access.log|wc -l
查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
根据时间段统计查看日志
cat access.log| sed -n '/14/Mar/2015:21/,/14/Mar/2015:22/p'|more
本文来自投稿,不代表本站立场,如若转载,请注明出处:http://xuan.ddwoo.top/index.php/archives/785/