作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com
写于:2003/04 最后更新: 04/19/2003 11:42:54
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.chedong.com/tech/awstats.html
关键词:awstats web log analysis apache iis 日志 分析 open source
内容摘要:AWStats的使用简介和配置一些改进说明。
日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源。随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富。其中有很多是开放源代码的,AWStats就是其中非常优秀的一款。
AWStats是最近发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:
更多与其他工具:Webalizer, analog的比较请参考:
http://awstats.sourceforge.net/#COMPARISON
AWStats的运行模式是这样的:
以下是2个针对单个站点日志统计例子:
一个是在GNU/Linux上通过CGI方式的输出,
一个是在Windows 2000上的基于静态页面的导出
GNU/Linux:tar zxf awstats-5.4.tgz
#部署awstats cgi程序到/path/to/apache/cgi-bin/awstats
mv awstats-5.4/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
#把图标icon目录复制到WEB发布目录下:/path/to/apache/htdocs/icon/
Windows 2000: 直接解包,然后移动到D:/AWStats目录下
把图标icon目录复制到IIS的发布目录下:inetpub/icon
AWStats的主程序awstats.pl会自动根据站点名调用相应站点的配置文件:awstats.sitename.conf
比如:运行./awstats.pl -config=chedong 调用的就是同目录下的 awstats.chedong.conf 配置文件;
如果没有指定-config,还会找当前目录下的awstats.conf或者/etc/awstats.conf作为缺省配置文件。
所以最好把缺省的awstats.model.conf 重命名成 awstats.yoursite.conf;比如:awstats.chedong.conf,
对于多个站点的统计,AWStats的配置文件包含功能还是非常有用的,我们可以把通用的配置放在一个文档中,然后用5.4开始支持的Include配置将通用配置包含在各个具体配置文件的头部,然后用其他配置覆盖通用配置中的相应属性,比如:
Include="chedong.common.conf"
LogFile="/path/to/bbs/access_log"
SiteName="bbs.chedong.com"
对于在GNU/Linux上统计Apache日志只需修改:LogFile SiteDomain这2个选项
GNU/Linux上:crontab -e: 每天8点10分运行
#update awstats
10 8 * * * (cd /path/to/apache/cgi-bin/awstats/; ./awstats.pl -update -config=chedong)
Windows 2000上:设置每天8点10分运行
D:/Perl/bin/perl.exe d:/AWStats/tools/awstats_buildstaticpages.pl -update -config=chedong -lang=cn -dir=c:/inetpub/awstats/ -awstatsprog=d:/awstats/wwwroot/cgi-bin/awstats.pl
AWStats自带了一个批处理工具:tools/awstats_updateall.pl,可以批量地遍历一个目录下所有地配置文件并运行统计。因此剩下的工作就主要是日志的同步问题了。
针对多个站点,很多配置选项是重复的,如果每个配置文件都修改维护起来会很麻烦,AWStats从5.4开始提供了配置文件包含的功能,所以我们可以配置一个通用配置,比如:chedong.common.conf
然后其他站点的配置设置为:可以通过后面的选项覆盖和缺省不一致的配置。
awstats.bbs.chedong.conf
Include "chedong.common.conf"
LogFile "/path/to/bbs_log"
SiteName "bbs.chedong.com"
awstats.www.chedong.conf
Include "chedong.common.conf"
LogFile "/path/to/www_log"
SiteName "www.chedong.com"
HostAliases="chedong.com"
针对中文搜索引擎的补丁:
AWStats的搜索引擎中缺省没有中文搜索引擎的定义,因此会漏掉很多来自国内主流搜速引擎的统计:3721,搜狐,新浪,百度,网易等,以下是针对这些的补丁:cgi-bin/lib/search_engine.pm
58a59,60
> # Minor Chinese search engines
> "baidu/.", "163/.com", "sohu/.","sina/.","3721/.com",
140a143,148
> # Minor Chinese search engines
> "baidu/.","word=",
> "sina/.", "word=",
> "sohu/.","word=",
> "163/.com","q=",
> "3721/.com","name=",
228a237,238
> # Minor Chinese search engines
> "baidu/.","Baidu", "163/.com","NetEase","sina/.","Sina","sohu/.","Sohu","3721/.com","3721",
针对Google的Unicode查询补丁:
因为Google对于Windows 2000上的IE浏览器缺省发送的查询都是UTF-8格式的,而其他搜索引擎大部分使用的是系统本地编码:GB2312,因此需要将查询URI解码后,还要根据是否使用UTF-8进行到GB2312的转码,否则同样的单词会在统计中留有UTF-8和GB2312两条记录。
15,16c15,16
< use Encode;
< use URI::Escape;
---
>
>
5692,5694d5691
< #UTF-8 encoding detection
< my $UnicodeDetected = 0;
< my $SearchQuery = "";
5696,5701d5692
< # Google use: ie=utf-8
< # AllTheWeb use: cs=utf-8
< if ($param eq "ie=utf-8" || $param eq "cs=utf-8") {
< $UnicodeDetected = 1;
< }
<
5704d5694
< $param = uri_unescape($param);
5708,5712c5698,5700
< $param =~ s/^ +//;
< $param =~ s/ +$//;
< $param =~ tr/ //+/s;
< $param =~ s//+/ /s;
< $SearchQuery = $param;
---
> $param =~ s/^ +//; $param =~ s/ +$//; $param =~ tr/ //+/s;
> if ((length $param) > 0) { $_keyphrases{$param}++; }
> last;
5714,5719d5701
<
< }
< #decoding unicode to GBK
< if ( $UnicodeDetected ) {
< $SearchQuery = decode("utf-8", $SearchQuery);
< $SearchQuery = encode("euc-cn", $SearchQuery);
5721,5722d5702
< print "$SearchQuery/n";
< if ((length $SearchQuery) > 0) { $_keyphrases{$SearchQuery}++; }
AWStats本身也包含了很多插件,包括将多个站点的统计再次汇总输出,IIS日志时间转换,URL的标题映射等;
http://awstats.sourceforge.net/awstats_contrib.html
AWStats:
http://awstats.sourceforge.net/
Webalizer:
http://www.webalizer.org/
日志分析工具:
http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/
商业日志统计/分析工具
http://directory.google.com/Top/Computers/Software/Internet/Site_Management/Log_Analysis/Commercial/
多站点的日志合并统计:
http://www.chedong.com/tech/rotate_merge_log.html