关于IT运维技术的
最佳实践博客网站

使用 grep、sed、awk 和 sort 工具进行web日志统计分析

 

通常可以用 tail 命令来实时查看日志文件变化,但是各种应用系统中的日志非常复 杂,一堆长度超过你浏览极限的日志出现在你眼前时,你会觉得非常无奈。怎么办呢?这 时可以使用 grep、sed、awk 和 sort 等筛选工具帮助你解决这个问题。下面总结了几个常见 分析方法。

1、实时滚动查看web日志

tail -F /usr/share/wwwlogs/access.log

QQ20150611-1@2x

2、查看 IP($1 代表 IP)

cat access_log | awk '{print $1}'

3、对 IP 排序

cat access_log | awk '{print $1}'|sort

4、打印每一重复行出现的次数,“uniq -c”表示标记出重复数量

cat access_log | awk '{print $1}'|sort|uniq -c

5、排序并统计行数

cat access_log | awk '{print $1}'|sort|uniq -c|sort -rn|wc -l

6、显示访问前 10 位的 IP 地址,便于查找攻击源

cat access_log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10

注意 awk ‘{print $1’},它表示取日志的第一段。如果换成别的日志,其 IP 地址在第 3 段,那么就要改变相应数值。

7、显示指定时间以后的日志($4 代表时间)

cat access.log | awk '$4>="[11/Jun/2015:18:29:00"'

建议大家在排错时,同时打开多个终端,比如在一个窗口中显示错误日志,在另一个窗 口中显示访问日志,这样就能够随时获知网站上发生的情况。

8、找出访问量最大的 IP,并封掉(对排错很有帮助)

[root@oooooxxx ~]# tail -1000 /usr/share/wwwlogs/cnhzz.com.access.log | awk '{print $1}'| sort | uniq -c |sort -nr| more 
    508 182.140.233.165
    246 112.193.147.220
     88 115.29.113.101
     88 112.124.127.53
     31 188.129.184.122

封掉IP

iptables -I INPUT -s 112.193.147.220 -j DROP
iptables -I INPUT -s 182.140.233.165 -j DROP

如果将上面的 Shell 做以下变形就可以得出访问量 TOP 10:

cat access_log |awk '{print $1}'|sort|uniq -c |sort -nr |head -10

9、列出传输大小最大的几个文件

cat access.log |awk '{print $10 " " $1 " " $4 " " $7}'|sort -nr|head -100

10、找出 Apache 日志中,访问最多的文件(下载类网站常用,这里以.png 扩 展名举例)

cat access_log |awk '($7 ~/.exe/){print $10 "" $1 "" $4""$7}' |sort -n |uniq -c |sort -nr |head -10

11、判断就可以显示出大于 10MB 的 exe 文件,并统计

#增加一个>10000000 的条件判断
cat access_log |awk `($10 >10000000 && $7 ~/.exe/) {print $7}` |sort –n|uniq –c|sort –nr|head -10

12、简单统计流量

cat access.log | awk '{sum+=$10} END {print sum/1024/1024/1024}'

13、统计 401 访问拒绝的数量,便于找出可疑 IP

cat access_log | awk '($9 ~/401/)'

14、统计所有404状态的请求

cat access.log | awk '($9 ~/200/)' | awk '{print $9,$7}' | sort

15、查看某一时间内的 IP 连接情况

grep "2012:05"access_log |awk '{print $4}'|sort|uniq –c |sort -nr

参考地址:

https://bbs.51cto.com/thread-1071001-1-1.html

https://blog.chinaunix.net/uid-23683795-id-3479937.html

https://www.ibm.com/developerworks/cn/linux/l-cn-awk-httpslog/

赞(0)
未经允许不得转载:菜鸟HOW站长 » 使用 grep、sed、awk 和 sort 工具进行web日志统计分析
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址