需要实现一个统计系统浏览器端请求类似于 http://analytics.com/index.htm?action=pv&para1=1&para2=2...
http://analytics.com/index.htm?action=close&arg1=a1&arg2=a2...这样的URL,通过分析Apache的日志来收集这些数据因为定制性较强,现成的软件如 Awstats 并不能满足需求如果设定Apache日志的固定格式,然后导入日志到mysql表中分析的话,似乎又缺乏一定的灵活性如果用shell脚本来分析的话,本人shell功底不足,也不清楚是否可行希望有经验的高手予以指导,多谢!

解决方案 »

  1.   

    php python perl 总有一个你会的吧,看你发在php版,php应该不会有什么问题吧,用cgi方式运行就是了,都是可以的,不一定非要用bash什么的阿
      

  2.   

    具体方案不好说,大概就是根据你的精确度做出统计,需要查看的时候就可以调用了
    其实你提到的入库是有人用的,我记不清是手册里还是哪里专门介绍了怎样把apache日志自动入库的方法
    当然你可以用类似的,比如你想精确到天,那你每天就会有一个统计,入库也好,文件也好,具体情况还要看你的最终数据量了
    要用大量的数据即时生成肯定会慢的,awstats常用的做法也是生成页面,查看的时候都是生成好的html
      

  3.   


    http://analytics.com/index.htm?action=pv&para1=1&para2=2... 
    假如像是这样的URL应该如何入库分析呢?http://analytics.com/index.htm?pv,1,2,3,string,char
    假如像这样记录,然后用Load data infile导入到表的话,我感觉好像缺乏灵活性
      

  4.   

    后台脚本,定时把apache的log同步到做统计的主机,
    同步的时候,使用grep或者sed做初步的过滤,只选择感兴趣的信息,不必同步整个文件。处理同步来的数据,php/perl/python里面就很好做了,匹配出关键字和值,借助关联数组进行统计,
    最好在同步的时候,就完成字符串的重组,到解析的时候,就不需要用正则了,正则性能很低的。
    每次统计,可以把临时结果写人mysql数据库临时表中,定期将临时结果汇总,写入最终结果表