IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)

笔记 by 车东 2009-10-27 09:05:10 累计浏览 10,088 次
本机暂存

你完全不必耐心看完所有内容:简要安装说明如下
安装
http://sourceforge.net/projects/awstats/ 下载安装包后:
GNU/Linux:tar zxf awstats-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://www.maxmind.com/download/geoip/api/c/ 解包,编译安装
perl -MCPAN -e 'install "Geo::IP"' 或者使用纯Perl包  perl -MCPAN -e 'install "Geo::IP::PurePerl"'
下载GeoIP/GeoIPCityLite包:解包并部署到awstats目录下:

wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

配置
将缺省awstats.model.conf 命名成common.conf
修改其中的一些配置选项:
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"

创建awstats下创建:data 目录用于统计数据输出,缺省的统计输出是按月汇总的;对于日志非常大的最好选择按天统计输出,并修改awstats.pl: 设置LIMITFLUSH加10倍
$LIMITFLUSH =
  50000;   # Nb of records in data arrays after how we need to flush data on disk
可以有效提高统计的速度(减少磁盘IO),并避免按月汇总数据导致的统计文件过大;

按照一下样例设置配置文件:
Include "common.conf"
LogFile="/home/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
SiteDomain="www.chedong.com"
HostAliases="chedong.com"
DefaultFile="index.html"
DirData="/home/apache/cgi-bin/awstats/data/"

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

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

AWStats: Advanced Web Statistics

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

  1. 界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)
    参考输出样例:http://www.chedong.com/cgi-bin/awstats/awstats.pl?config=chedong
  2. 基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。Webalizer虽然也有Windows平台版,但目前已经缺乏 维护;
    AWStats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。
  3. 效率比较高:AWStats输出统计项目比Webalizer丰富了很多,速度仍可以达到Webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;
  4. 配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;
  5. AWStats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。
  6. 提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。

更多与其他工具:Webalizer, analog的比较请参考:
http://awstats.sourceforge.net/#COMPARISON

AWStats安装备忘

AWStats的运行模式是这样的:

  1. 分析日志:运行后将这样的日志统计结果归档到一个AWStats的数据库(纯文本)里;
  2. 然后是输出:分两种形式
      • 一种是通过cgi程序读取统计结果数据库输出;
      • 一种是运行后台脚本将输出导出成静态文件;

      以下是2个针对单个站点日志统计例子:
      一个是在GNU/Linux上通过CGI方式的输出,
      一个是在Windows 2000上的基于静态页面的导出

      下载/安装

      http://sourceforge.net/projects/awstats/ 下载安装包后:

      GNU/Linux:tar zxf awstats-version.tgz
      awstats的脚本和静态文件缺省都在wwwroot目录下: 将cgi-bin目录下的文件都部署awstats.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

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

      1. 对于Apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,将日志设置成按天截断:
        CustomLog "|/usr/local/sbin/cronolog /path/to/apache/logs/access_log.%Y%m%d" combined
        比如:logs/access_log.20030326
        日志是压缩格式,可以使用gzip -d < /home/apache/logs/access_log.%YYYY-24%MM-24%DD-24.gz | 动态解压缩统计。
      2. 对于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查询
        增加的有:
        • 发送字节数
        • 协议版本
        • 参照 

      配置文件的命名规则:awstats.sitename.conf

      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="common.conf"
      LogFile="/path/to/bbs/access_log"
      SiteName="bbs.chedong.com"

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

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

      1. GNU/Linux LogFile="/path/to/apache/logs/access_log.%YYYY-24%MM-24%DD-24"
        Windows 2000 LogFile="d:\iis_logs\W3SV3\ex%YY-24%MM-24%DD-24.log"
        这个配置的意思是用24小时前的年份,月份,日期拼出的日志文件名;
      2. SiteDomain="www.chedong.com"
        站点的名称,缺省是空的,如果为空,AWStats将拒绝运行;
      3. 对于统计IIS日志需要多修改一个:
        LogFormat=2
        缺省值是1:Apache日志,2是IIS日志

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

      日志分析

      ./awstats.pl -update -config=sitename -lang=cn
      比如:./awstats.pl -update -config=chedong
      会自动调用awstats.chedong.conf这个配置文件

      统计输出

      GNU/Linux    http://localhost/cgi-bin/awstats/awstats.pl?config=chedong
      Windows 2000 http://localhost/awstats/awstats.chedong.html

      日志统计自动运行

      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版本开始提供了配置文件包含的功能,所以我们可 以配置一个通用配置,比如: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" 

      统计指标说明

      • 参观者:按来访者不重复的IP统计,一个IP代表一个参观者;
      • 参观次数:一个参观者可能1天之内参观多次(比如:上午一次,下午一次),所以按一定时间内(比如:1个小时),不重复的IP数统计,参观者 的访问次数;
      • 网页数:不包括图片,CSS, JavaScript文件等的纯页面访问总数,但如果一个页面使用了多个帧,每个帧都算一个页面请求;
      • 文件数:来自浏览器客户端的文件请求总数,包括图片,CSS,JavaScript等,用户请求一个页面是,如果页面中包含图片等,所以对服 务器会发出多次文件请求,文件数一般远远大于文件数;
      • 字节:传给客户端的数据总流量;
      • 来自REFERER中的数据:日志中的参考(REFERER)字段,记录了访问相应网页之前地址,因此如果用户是通过搜索引擎的搜索结果点击 进入网站的,日志中就会有用户在相应搜索引擎的查询地址,这个地址中就可以通过解析将用户查询使用的关键词提取出来:
        比如:
        2003-03-26 15:43:58 123.123.123.123 - GET /index.html 200 192 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.google.com/search?q=chedong
        AWStats在搜索引擎的关键短语和关键词统计方面的功能还是比较完整的:可以对全世界3百多种机器爬虫进行识别,并且可以识别大部分主流国际化搜索引擎和很多地区的本地语言搜索引擎。

      Hacking AWStats

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

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

      GeoIP安装:
      先下载C库:GeoIP C解包后
      %./configure; make
      #make install

      然后下载Perl库:GeoIP Perl解包后
      %perl MakeFile.PL; make
      #make install

      Geo::IPfree安装:
      下载Geo::IPfree解 包后
      %perl Makefile
      %make
      #make install

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

      LoadPlugin="geoip GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoIP.dat"
      LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /home/apache/chedong.com/cgi-bin/awstats/GeoLiteCity.dat"

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

      wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
      wget  http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

      从最近的统计来看一般为每月3日更新,此外:http://geolite.maxmind.com/download/geoip/database/下也有CSV源文件提供;此外:利用QQ的纯真库也能获得更详细的地理信息分布统计

      参考资料:

      同分类推荐文章

      1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
      2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
      3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

      查看更多 DevOps 文章 →

      建议继续学习

      1. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,056)
      2. server日志的路径分析 (累计阅读 11,239)
      3. 查看 Apache并发请求数及其TCP连接状态 (累计阅读 10,068)
      4. PHP程序的执行流程 (累计阅读 10,032)
      5. Cacti 添加 Apache 监控 (累计阅读 9,244)
      6. 大型高并发高负载网站的系统架构分析 (累计阅读 9,003)
      7. 使用Apache 和Passenger来运行puppetmaster (累计阅读 8,315)
      8. 使用apache的404设置来转向可能不存在的页面 (累计阅读 8,206)
      9. 使用.htaccess 开启gzip 缓存文件 网页 提高速度 (累计阅读 7,601)
      10. 给Apache做压力测试时遇到的问题 (累计阅读 7,327)