保持活跃度之Apache 日志分析

Posted WarCup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保持活跃度之Apache 日志分析相关的知识,希望对你有一定的参考价值。


 


 

查看日志的时候,常常使用的命令,如:

1)查看IP$1 代表IP

#cat access_log | awk '{print $1}’

2)对IP 排序

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

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

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

4)排序并统计行数

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

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

段,那么就要改变相应数值。

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

#cat access_log |awk '$4>="[23/Jul/2012:01:00:01"' access_log

建议大家在排错时,同时打开多个终端,比如在一个窗口中显示错误日志,在另一个窗

口中显示访问日志,这样就能够随时获知网站上发生的情况。

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

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

9999 192.168.150.179

11 192.168.150.1

#iptables -I INPUT -s 192.168.150.179 -j DROP

#iptables -I INPUT -s 192.168.150.0/24 -j DROP

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

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

8)找出Apache 日志中,下载最多的几个exe 文件(下载类网站常用,这里以.exe

展名举例)

[root@localhost httpd]# cat access_log |awk '($7 ~/.exe/){print $10 "" $1 "" $4""$7}' |sort -n |uniq -c |sort

-nr |head -10

2 - 192.168.150.1[25/Jul/2012:05:46:05/test.exe

1 - 192.168.150.152[25/Jul/2012:05:46:47/test.exe

[root@localhost httpd]#

使用如下命令:

#cat access_log |awk `($10 >10000000 && $7 ~/.exe/) {print $7}` |sort –n|uniq –c|sort –nr|head -10

这条命令增加一个>10000000 的条件判断就可以显示出大于10MB exe 文件,并统计

对应文件发生次数。这条命令对于网站日常分析是非常有帮助的,大家可以灵活使用。

9)简单统计流量

#cat access.log |awk '{sum+=$10}’

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

#cat access_log |awk '(/401/)'|wc -l

下面的这条命令可以统计所有状态信息,用起来很方便:

#cat access_log |awk '{print $9}' |sort|uniq –c |sort -rn

11)查看某一时间内的IP 连接情况

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


以上是关于保持活跃度之Apache 日志分析的主要内容,如果未能解决你的问题,请参考以下文章

apache中部署rotatelogs日志分割和awstats日志分析

Apache日志分割&日志分析

Apache日志分割and日志分析

apache日志分析总结(转)

日志分析实战之清洗日志小实例1:使用spark&Scala分析Apache日志

Apache配置与应用——AWStats日志分析系统(实战!)