来自:http://dasheng.iteye.com/blog/707665
一.问题:(yamaxun)
1,用户访问网站时,用随机的一个字符串表示该用户,同一个用户访问别的页面也用相同的字符串表示,用户id称为userId。
2,网站的每个页面用英文字符串来表示,称为page_type_id;
3,网站的访问日志的格式是:<userId 空格 page_type_id >
4, 访问路径:找出用户访问最多三节访问路径,所谓三节路径是:home--prouduct---prouduct detail;
或者 prouduct--surport --faq 等等。
要求假设已经有了一个这样的一个日志文件,用java写一个程序,找出最多的三节路径。
二. 解决方法
用两个hashmap就可以实现。
1个hashmap 放 <userId, page_type_id >
另1个hashmap 放<(page_type_id1,page_type_id2,page_type_id3),countNum>
三.相关工具
1. 一款IIS日志查询工具可以查看各大搜索引擎蜘蛛的来访次数 : IIS日志分析工具
2. 对apache 一些常用分析工具,,例如cat、ccze、head、grep、less、more、tail 以及wc 等。例如:#tail –f access_log |grep "关键字" |grep –v "MSIE"这条指令会显示包含关键字且不含“MSIE”的行。如果后面再加wc 指令则可以统计行数
3. 自动化分析工具
下面先了解一下Apache 常用自动化日志分析工具,在本章最后给出应用实例。
(1)Webalizer(http://www.webalizer.org/download.html)
在Apache 日志分析领域Webalizer 算是老牌的免费日志分析程序,有关它的配置资料很容易找到,功能一般。
(2)Awstats
Awstats 是一个发展迅速的Web 日志分析工具,它采用Perl 语言开发,是个强大而有个性的网站日志分析工具,针对Apache、Nginx、Ftp 和Sendmail 的日志都能进行分析。
(3)ApacheTop(http://freecode.com/projects/apachetop)
ApacheTop 是一个命令行界面的日志统计工具,它可以动态地查看apache 的日志文件,还可以直观地显示访问的每个地址的请求数、速度及流量等信息。
使用方法为:#apachetop -f /var/log/httpd/access_log -T 1000 -d 2
(4)GoAccess(http://goaccess.prosoftcorp.com/download)
GoAccess 是一个用来统计 Apache Web 服务器的访问日志的工具,可即时生成统计报表,速度非常快。