统计apache access log 每秒访问量

统计apache access log 每秒访问量

我找过的资料中没有见到过能统计每个ip每秒的访问量,但是可以通过以下方法可以统计。

为了照顾像我这样性急的朋友,先把命令奉上。

cat access.log.201309 | awk ‘{print $1_$4}’ |sort|uniq -c |sort -rn|head -100

cat access.log.20130924 | awk ‘{print $1_$4}’ |sort|uniq -c |sort -rn|head -100
结果大致如下

16 10.X4.X5.1X8[24/Sep/2013:15:30:57
14 10.X4.X5.1X8[24/Sep/2013:15:30:59
13 21.2.184.20[24/Sep/2013:12:28:53
10 21.24.84.50[24/Sep/2013:15:14:38

1.思路:

要统计的每个ip的每秒的访问量,统计时ip+访问时间就是key,但是目前主流的日志分析工具不支持这种功能,像webalizer只提供每分钟的最大访问量。

已经有了key是ip和时间,只需要在日志中提取这两个字段,并把它作为key进行统计即可。

统计apache access log中ip的访问数量

这篇文章介绍了如何使用awk命令统计ip访问量,可以扩展一下这个脚本命令,即可得到我们想要的结果。

combinedio 格式的日志大致如下:

2X.2X6.2X.XX - username [24/Sep/2013:00:00:00 +0900] “GET /search HTTP/1.1″ 200 6703 “-” “Mozi
lla/5.0 (Linux; U; Android 4.1.2; ko-kr; SHW-M250S Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30″ “-:- – - – - – - – -” CCSCSXXX
UD6VC – - “-”

要统计ip访问量,根据第一个字段统计即可。

tail -n 10000 access.log.20130924 | awk ‘{print $1}’ | sort|uniq -c |sort -rn|head -10
要统计每秒的最大访问量,根据第四个字段统计,命令如下:
cat access.log.20130924 | awk ‘{print $5}’ |sort|uniq -c |sort -rn|head -10
    410 [24/Sep/2013:21:45:22
    394 [24/Sep/2013:21:45:23
    309 [24/Sep/2013:21:45:33
    292 [24/Sep/2013:21:45:24
    261 [24/Sep/2013:21:45:21
    223 [24/Sep/2013:21:45:34
    193 [24/Sep/2013:21:45:35
    187 [24/Sep/2013:21:46:17
    177 [24/Sep/2013:21:45:36
    175 [24/Sep/2013:21:45:58
最后就是根据每秒每个ip的最大访问量统计:
cat access.log.20130924 | awk ‘{print $1_$4}’ |sort|uniq -c |sort -rn|head -100
结果大致如下

16 10.X4.X5.1X8[24/Sep/2013:15:30:57
14 10.X4.X5.1X8[24/Sep/2013:15:30:59
13 21.2.184.20[24/Sep/2013:12:28:53
10 21.24.84.50[24/Sep/2013:15:14:38

通过这个思路,可以统计apache access 日志中每个用户的访问量,即第三个字段即可。

cat access.log.20130924 | awk ‘{print $3}’ | sort|uniq -c |sort -rn|head -10

也可以对某个页面的ip最大访问量、用户最大访问量、时间访问量等,参考下面几个命令:

egrep “GET /search.*” access.log.20130924 | awk ‘{print $3}’ | sort|uniq -c |sort -rn|head -10

大概思路是这样的,可以统计多个方面的信息,但是有一点必须注意:

特别大的日志文件不要用这种方式统计,我怕把你的服务搞死了,死了别来找我就行。

统计apache access log 每秒访问量的工具,统计apache access log 每个IP 每秒访问量工具

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>