2007-07-03
如何快速统计RoR网站的访问量
统计网站的访问量有很多专业的第三方工具,例如Google Analytics,提供强大,而且详细的统计功能。当然,也许不是每个人都需要这么复杂而且操作麻烦的工具,如果你只是需要大概了解一下网站的访问量和访问URL的比例,那么让我们看看最简单最容易的统计工具:Unix Shell。
一个RoR网站的访问纪录,Web Server(Apache or lighttpd)会记录所有的访问请求,包括动态请求和静态请求,但大量图片,JS,CSS的请求对我们没有太大的统计价值,因此web server的日志参考价值就不大。
RoR会记录所有动态请求日志到log/production.log里面,我们要做的就是让RoR进行日志交换,每天产生一个新的日志文件。很简单,修改config/environment.rb
那么每天就会产生一个诸如production.log.20070702这样的日志文件。
一、统计每日动态请求处理总数
打印日志文件,挑选正确处理的请求行,统计行数,一条shell命令就搞定了网站处理的动态请求数量。虽然动态请求数量不等于网站访问量,但是可以作为一个重要的参考指标。
二、统计URL的访问频度
网站管理员都很希望知道哪些频道受欢迎被访问的频繁,哪些URL格外受到关注,不必寻求专业的网站流量统计系统,一条shell命令就搞定了:
打印日志文件,挑选正确处理请求行,把第17列即URL那一列挑出来,排序,统计唯一URL出现的次数,按照URL次数倒序输出到stat.log文件里面,让我们看看stat.log是什么:
网站首页被访问了10096次,论坛频道首页被访问了3590次,......
是不是很爽?我们用一条shell命令可以做简单的网站访问统计系统了。那么用Java做的系统,能不能这样统计呢?其实照样可以。你可以在tomcat的配置文件里面设置输出详细的日志信息,然后照样用shell命令搞定。
一个RoR网站的访问纪录,Web Server(Apache or lighttpd)会记录所有的访问请求,包括动态请求和静态请求,但大量图片,JS,CSS的请求对我们没有太大的统计价值,因此web server的日志参考价值就不大。
RoR会记录所有动态请求日志到log/production.log里面,我们要做的就是让RoR进行日志交换,每天产生一个新的日志文件。很简单,修改config/environment.rb
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily")
那么每天就会产生一个诸如production.log.20070702这样的日志文件。
一、统计每日动态请求处理总数
cat production.log.20070702|grep "200 OK"|wc -l
打印日志文件,挑选正确处理的请求行,统计行数,一条shell命令就搞定了网站处理的动态请求数量。虽然动态请求数量不等于网站访问量,但是可以作为一个重要的参考指标。
二、统计URL的访问频度
网站管理员都很希望知道哪些频道受欢迎被访问的频繁,哪些URL格外受到关注,不必寻求专业的网站流量统计系统,一条shell命令就搞定了:
cat production.log.20070702 |grep "200 OK" | awk '{print $17}'|sort|uniq -c | sort -r -n > stat.log
打印日志文件,挑选正确处理请求行,把第17列即URL那一列挑出来,排序,统计唯一URL出现的次数,按照URL次数倒序输出到stat.log文件里面,让我们看看stat.log是什么:
10096 [http://www.javaeye.com/] 3590 [http://www.javaeye.com/forums/index] 3446 [http://www.javaeye.com/forums/board/Java] 3300 [http://www.javaeye.com/index/rss_index_topics] 2477 [http://www.javaeye.com/forums/board/Life] 1605 [http://www.javaeye.com/forums/board/AJAX] .........
网站首页被访问了10096次,论坛频道首页被访问了3590次,......
是不是很爽?我们用一条shell命令可以做简单的网站访问统计系统了。那么用Java做的系统,能不能这样统计呢?其实照样可以。你可以在tomcat的配置文件里面设置输出详细的日志信息,然后照样用shell命令搞定。
评论
robbin
2007-07-19
一个RoR网站的访问纪录,Web Server(Apache or lighttpd)会记录所有的访问请求,包括动态请求和静态请求,但大量图片,JS,CSS的请求对我们没有太大的统计价值,因此web server的日志参考价值就不大。
mmwy
2007-07-19
robbin前面用着lighttpd之类的,再装个cronolog,然后在配置里面写
accesslog.filename = |xxxx/cronolog-1.6.2/sbin/cronolog /xxx/access_%Y%m%d.log"
就可以轮循日志,没必要用ruby来生成日志吧?
accesslog.filename = |xxxx/cronolog-1.6.2/sbin/cronolog /xxx/access_%Y%m%d.log"
就可以轮循日志,没必要用ruby来生成日志吧?
Suninny
2007-07-19
有个rails plugin叫sitealizer
harryempire
2007-07-19
简单实用的好办法
wtb
2007-07-12
这些日志处理最强的工具就是shell下的awk,awk是个很好学的工具,编程语法类似C,处理速度极快,能力极强。据说很多windows系统管理员都用它来做日志分析。
花花公子
2007-07-08
grep是不用搭配cat打开文件的,shell编程确实很神奇
geszJava
2007-07-06
我喜欢这篇.
shallwelin
2007-07-03
robbin的文章可以归纳为一个系列了, 其中, 我比较喜欢有关部署的, 流量监测的, 很是受益.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 1677849 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
游乌镇
共 33 张
共 33 张
链接
最新评论
-
mod_rails尝鲜
我觉得还是mod_fcgid(不是mod_fastcgi)实际点
-- by zgd -
mod_rails尝鲜
hostingrails也已经提供mod_rails了
-- by leondu -
mod_rails尝鲜
dreamhost已经提供mod_rails了
-- by zgd -
关于JavaEye网站未来发展 ...
期待第三阶段目标的实现,但第三目标好像类似于google的云计算,建议赶紧开发, ...
-- by selectme_2008 -
总结一下大家对JavaEye网 ...
javaeye是我比较喜欢的一个网站,但盈利模式还是比较单一,让人怀疑网站是否能 ...
-- by selectme_2008






评论排行榜