保持活跃度之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日志分析