网站首页 > 服务器教程 > Windows服务器 > Apache/IIS的日志分析工具:AWStats

Apache/IIS的日志分析工具:AWStats

  • 作者:互联网
  • 时间:2009-06-05 17:11:25

  日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源。随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富。其中有很多是开放源代码的, AWStats就是其中非常优秀的一款。

  简要安装说明如下:

  安装

  http://so***forge.net/projects/awstats/ 下载安装包后:

  GNU/Linux:tar zxf aw***ts-version.tgz

  awstats的脚本和静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署到 cgi-bin/目录下:/home/apache/cgi-bin/awstats/

  mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats

  把图标等文件目录复制到WEB的HTML文件发布目录下,例如:/home/apache/htdocs/ 下发布

  更多的批量更新脚本等在tools 目录下,可以一并放到cgi-bin/awstats/ 目录下

  升级国内主要搜索引擎和蜘蛛定义,安装GeoIP的应用库:C

  http://ww***xmind.com/download/geoip/api/c/ 解包,编译安装

  perl -MCPAN -e 'install "Geo::IP"' 或者使用纯Perl包 perl -MCPAN -e 'install "Geo::IP::PurePerl"'

  下载GeoIP/GeoIPCityLite包:解包并部署到awstats目录下

  http://ww***xmind.com/download/geoip/database/GeoLiteCity.dat.gz

  http://ww***xmind.com/download/geoip/database/GeoIP.dat.gz

  配置

  将缺省aw***ts.model.conf 命名成co***n.conf

  修改其中的一些配置选项:

  LoadPlugin="decodeutfkeys"

  LoadPlugin="geoip GEOIP_STANDARD /h***/apache/ch***ng.com/cgi-bin/awstats/GeoIP.dat"

  LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /h***/apache/ch***ng.com/cgi-bin/awstats/GeoLiteCity.dat"

  创建awstats下创建:data 目录用于统计数据输出

  按照一下样例设置配置文件:

  Include "co***n.conf"

  LogFile="/h***/apache/logs/access_log.%YYYY-24%MM-24%DD-24"

  SiteDomain="ww***hedong.com"

  HostAliases="ch***ng.com"

  DefaultFile="in***.html"

  DirData="/home/apache/cgi-bin/awstats/data/"

  内容摘要:AWStats的使用简介和配置一些改进说明。很高兴看到在AWStats 6.3版本开始:中文用户基本上已经只需要将配置文件中将 LoadPlugin="decodeutfkeys" 启用基本上就没有什么中文搜索引擎的统计问题了,目前增加了# Minor chinese search engines 'baidu.com','search.sina.com','search.sohu.com',这3个搜索引擎。包含了针对国内主要搜索引擎和蜘蛛定义的补丁(解包后覆盖lib目录下的原程序目录即可)

[Cut-Page]

  日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源。随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富。其中有很多是开放源代码的, AWStats就是其中非常优秀的一款。

  AWStats:Advanced Web Statistics

  AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:

  界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)

  参考输出样例:http://ww***hedong.com/cgi-bin/awstats/aw***ts.pl?config=chedong

  基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏 维护;

  AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。

  效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;

  配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;

  AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。

  提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。

  更多与其他工具:Webalizer, analog的比较请参考:

  http://aw***s.sourceforge.net/#COMPARISON

[Cut-Page]

  AWStats安装备忘

  AWStats的运行模式是这样的:

  分析日志:运行后将这样的日志统计结果归档到一个AWStats的数据库(纯文本)里;

  然后是输出:分两种形式

  一种是通过cgi程序读取统计结果数据库输出;

  一种是运行后台脚本将输出导出成静态文件;

  以下是2个针对单个站点日志统计例子:

  一个是在GNU/Linux上通过CGI方式的输出,

  一个是在Windows 2000上的基于静态页面的导出

  下载/安装

  http://so***forge.net/projects/awstats/ 下载安装包后:

  GNU/Linux:tar zxf aw***ts-version.tgz

  awstats的脚本和静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署aw***ts.pl程序到/home/apache/cgi-bin/awstats/ 下

  mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats

  #把图标等文件目录复制到WEB的HTML文件发布目录下:/home/apache/htdocs/ 下发布

  更多的批量更新脚本等在tools 目录下,可以一并放到cgi-bin/awstats/ 目录下,

  Windows 2000:按照后台脚本模式运行,直接解包,然后移动到D:AWStats目录下

  把图标icon目录复制到IIS的发布目录下:inetpub/icon

[Cut-Page]

  数据源日志格式和按天的截断规则

  对于Apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,将日志设置成按天截断:

  CustomLog "|/usr/local/sbin/cronolog /p***/to/apache/logs/access_log.%Y%m%d" combined

  比如:lo***access_log.20030326

  日志是压缩格式,可以使用gzip -d < /h***/apache/logs/access_log.%YYYY-24%MM-24%DD-24.gz | 动态解压缩统计。

  对于IIS:缺省有比较好的日志按天截断规则,但是IIS的日志格式比较不适合AWStats统计,

  因此最好直接去掉所有日志字段,然后严格按照以下列表设置

  日期 date

  时间 time

  客户IP地址 c-ip

  用户名 cs-username

  方法 cs-method

  URI资源 cs-uri-stem

  协议状态 sc-status

  发送字节数 sc-bytes

  协议版本 cs-version

  用户代理 cs(User-Agent)

  参照 cs(Referer)

  相比IIS缺省设置:

  减少的有:

  服务器IP地址

  服务器端口

  URI查询

  增加的有:

  发送字节数

  协议版本

  参照

  配置文件的命名规则:aw***ts.sitename.conf

  AWStats的主程序aw***ts.pl会自动根据站点名调用相应站点的配置文件:aw***ts.sitename.conf

  比如:运行./aw***ts.pl -config=chedong 调用的就是同目录下的 aw***ts.chedong.conf 配置文件;

  如果没有指定-config,还会找当前目录下的aw***ts.conf或者/etc/aw***ts.conf作为缺省配置文件。

  所以最好把缺省的aw***ts.model.conf 重命名成 aw***ts.yoursite.conf;比如:aw***ts.chedong.conf

  对于多个站点的统计,AWStats的配置文件包含功能还是非常有用的,我们可以把通用的配置放在一个文档中,然后用(5.4版本以后开始支持) Include配置将通用配置包含在各个具体配置文件的头部,然后用其他配置覆盖通用配置中的相应属性,比如:

  Include="co***n.conf"

  LogFile="/path/to/bbs/access_log"

  SiteName="bbs.ch***ng.com"

  最少的配置文件修改:LogFile SiteDomain LogFormat

  对于在GNU/Linux上统计Apache日志只需修改:LogFile SiteDomain这2个选项

  GNU/Linux LogFile="/p***/to/apache/logs/access_log.%YYYY-24%MM-24%DD-24"

  Windows 2000 LogFile="d:iis_logsW3SV3ex***-24%MM-24%DD-24.log"

  这个配置的意思是用24小时前的年份,月份,日期拼出的日志文件名;

  SiteDomain="ww***hedong.com"

  站点的名称,缺省是空的,如果为空,AWStats将拒绝运行;

  对于统计IIS日志需要多修改一个:

  LogFormat=2

  缺省值是1:Apache日志,2是IIS日志

[Cut-Page]

  其他需要注意的事项:

  AWStats缺省不过滤swf文件,会把.swf算成PageView,所以如果站点上swf文件主要是广告的话最好还是要过滤掉:

  日志分析

  ./aw***ts.pl -update -config=sitename -lang=cn

  比如:./aw***ts.pl -update -config=chedong

  会自动调用aw***ts.chedong.conf这个配置文件

  统计输出

  GNU/Linux http://localhost/cgi-bin/awstats/aw***ts.pl?config=chedong

  Windows 2000 http://lo***ost/awstats/awstats.chedong.html

  日志统计自动运行

  GNU/Linux上:crontab -e:每天8点10分运行

  #update awstats

  10 8 * * * (cd /path/to/apache/cgi-bin/awstats/; ./aw***ts.pl -update -config=chedong)

  Windows 2000上:设置每天8点10分运行

  D:Perlbinperl.exe d:AWStatstoolsaw***ts_buildstaticpages.pl -update -config=chedong -lang=cn -dir=c:inetpubawstats -awstatsprog=d:awstatswwwrootcgi-binaw***ts.pl

  多站点日志统计

  AWStats自带了一个批处理工具:to***/awstats_updateall.pl,可以批量地遍历一个目录下所有地配置文件并运行统 计。因此剩下的工作就主要是日志的同步问题了。

  针对多个站点,很多配置选项是重复的,如果每个配置文件都修改维护起来会很麻烦,AWStats从5.4版本开始提供了配置文件包含的功能,所以我们可 以配置一个通用配置,比如:co***n.conf

  然后其他站点的配置设置为:可以通过后面的选项覆盖和缺省不一致的配置。

  aw***ts.bbs.chedong.conf

  Include "chedong.co***n.conf"

  LogFile "/path/to/bbs_log"

  SiteName "bbs.ch***ng.com"

  aw***ts.www.chedong.conf

  Include "chedong.co***n.conf"

  LogFile "/path/to/www_log"

  SiteName "ww***hedong.com"

  HostAliases="ch***ng.com"

  统计指标说明

  参观者:按来访者不重复的IP统计,一个IP代表一个参观者;

  参观次数:一个参观者可能1天之内参观多次(比如:上午一次,下午一次),所以按一定时间内(比如:1个小时),不重复的IP数统计,参观者 的访问次数;

  网页数:不包括图片,CSS, JavaScript文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求;

  文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript等,用户请求一个页面是,如果页面中包含图片等,所以对服 务器会发出多次文件请求,文件数一般远远大于文件数;

  字节:传给客户端的数据总流量;

  来自REFERER中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击 进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:

  比如:

  2003-03-26 15:43:58 123.123.123.123 - GET /in***.html 200 192 HTTP/1.1 Mo***la/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://ww***ogle.com/search?q=chedong

  AWStats在搜索引擎的关键短语和关键词统计方面的功能还是比较完整的:可以对全世界3百多种机器爬虫进行识别,并且可以识别大部分主流国际化搜索引 擎和很多地区的本地语言搜索引擎。

[Cut-Page]

  Hacking AWStats

  基于地理信息的插件安装:

  GeoIP 和 Geo::IPfree(awstats 5.5+)

  GeoIP和Geo::IPfree都免费的是国家/IP的影射表,比通过DNS反相解析域名得到的统计准确,而且速度快。GeoIP的API都是免费 的,缺省库是免 费的,收费的是它的数据更新服务。Geo::IPfree不仅代码是公开的,而且库数据也是公开的。

  GeoIP安装:

  先下载C库:GeoIP C解包后

  %.***nfigure; make

  #make install

  然后下载Perl库:GeoIP Perl解包后

  %perl Ma***ile.PL; make

  #make install

  Geo::IPfree安装:

  下载Geo::IPfree解 包后

  %perl Makefile

  %make

  #make install

  配置:通过在配置文件中启用GEOIP相关插件:

  LoadPlugin="geoip GEOIP_STANDARD /h***/apache/ch***ng.com/cgi-bin/awstats/GeoIP.dat"

  LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /h***/apache/ch***ng.com/cgi-bin/awstats/GeoLiteCity.dat"

  MaxMind目前免费提供了GeoIP和GeoIPCityLite数据包:可以定期每个月从以下地址下载

  http://ww***xmind.com/download/geoip/database/GeoLiteCity.dat.gz

  http://ww***xmind.com/download/geoip/database/GeoIP.dat.gz

[Cut-Page]

  日志统计系统在站点的用户行为分析中扮演了重要的角色,尤其是对于来自搜索引擎的关键词访问统计:是很有效的用户行为分析数据来源。随着互联网多年的发展,WEB日志统计工具已经越来越成熟,功能也越来越丰富。其中有很多是开放源代码的, AWStats就是其中非常优秀的一款。

  AWStats:Advanced Web Statistics

  AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于:

  界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)

  参考输出样例:http://ww***hedong.com/cgi-bin/awstats/aw***ts.pl?config=chedong

  基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏 维护;

  AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。

  效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;

  配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;

  AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。

  提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。

  更多与其他工具:Webalizer, analog的比较请参考:

  http://aw***s.sourceforge.net/#COMPARISON