使用awk,sort和uniq从ATS访问日志中统计出异常链接域名的次数排名

本文介绍了一种通过分析访问日志来定位导致流量异常的域名的方法。具体步骤包括使用grep、awk等命令过滤特定状态码的记录并统计相关域名的访问频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在运维过程中,发现portal中出现流量异常曲线,


就从排查ATS的访问日志中的异常域名开始,下面是我截获的对应时段的访问日志截图


发现里面有502,403等异常响应,我们将这段访问日志文件记为exception_peak.log。采用下面的命令来过滤出502的访问记录,并剥离出对应的访问链接的host,统计指定时段中的该host出现次数,最后逆序排名。

cat exception_peak.log | grep ' 502 ' | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | sort | uniq -c | sort -nr > host_peak.log

这里说明如下:

grep ' 502 ' 只过滤出502的访问记录,

awk -F '"' '{print $2}'表示以双引号为分隔线,取第2段子域,也就是访问链接,

awk -F '/' '{print $3}'表示从访问链接中提取出host

 sort | uniq -c  表示现将可能重复的行放到一起,再去掉重复行,并标注每行重复的次数

sort -nr  表示按重复次数逆序排名

这样处理的结果将会被重定向到一个名为 host_peak.log的日志文件中,它的内容如下


这就是我们想要的效果。

注意:如果采用下面的命令

cat exception_peak.log | grep ' 502 ' | awk -F '"' '{print $2}' | awk -F '/' '{print $3}' | awk 'a[$1]+=1;END{for(i in a){print a[i]" "i;}}' | sort -k1 -urn > host_peak.log

我们会发现有个小bug就是,数字ip的次数无法统计,参见下面的截图


另外,下面是可能需要用到的几个命令:

awk -F “/“ ‘{print $0}’ 
awk -F “/“ ‘{if ($1==502) print $2}’ 
awk -F “:“ ‘{print $1,$2}’ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值