AWStats: Apache/IIS的日志分析工具——在GNU/Linux和Windows平台上的使用简介

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com

写于:2003/04 最后更新: 09/02/2004 16:00:20 Feed Back >> 

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.chedong.com/tech/awstats.html

关键词:awstats web log analysis apache iis 日志 分析 open source

内容摘要:AWStats的使用简介和配置一些改进说明。
附:包含了针对Google UTF-8查询和国内主要门户网站定义补丁的AWStats 6.0 补丁下载(解包后覆盖原程序目录即可)

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

AWStats: Advanced Web Statistics

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

  1. 界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)
    参考输出样例:http://awstats.sourceforge.net/cgi-bin/awstats.pl
    一般日志的输出地址是:awstats.pl?config=sitename
  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 cgi程序到/path/to/apache/cgi-bin/awstats
      mv awstats-version/wwwroot/cgi-bin /path/to/apache/cgi-bin/awstats
      #把图标icon目录复制到WEB发布目录下:/path/to/apache/htdocs/icon/

      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
      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

      IIS按GMT时间的补丁:awstats.pl
      IIS的日志时间是格林威治之间,中国本地时间和GMT有+8个小时差距,如果直接用TIMEZONE插件从格林威治时间转换会有40%的性能下降,这里有一个将时间按本地时间修改时间坐标的补丁:
      7696d7695
      <                       my $TIME_ZONE = 8;
      7698,7702c7697
      <                           my $ix_local = $ix + $TIME_ZONE;
      <                           if ($ix_local >= 24) {
      <                               $ix_local = $ix_local - 24;
      <                         } 
      <                         print "$ix_local/n";        # width=19 instead of 18 to avoid a MacOS browser bug.
      ---
      >                         print "$ix/n";      # width=19 instead of 18 to avoid a MacOS browser bug.
      7708,7712c7703
      <                               my $ix_local = $ix + $TIME_ZONE;
      <                               if ($ix_local >= 24) {
      <                                       $ix_local = $ix_local - 24;
      <                               }
      <                               my $hr= $ix_local + 1 ; if ($hr>12) { $hr=$hr-12; }
      ---
      >                               my $hr=($ix+1); if ($hr>12) { $hr=$hr-12; }

      在Awstats 5.5以后中已经加入了针对中文主要搜索引擎的定义:这里是补充后的完整列表(包括了主要门户搜索和搜索门户)
      62c60
      < "baidu/.com","search/.sina/.com","search/.sohu/.com",
      ---
      > "baidu/.com","sina/.com","3721/.com","163/.com","tom/.com","sohu/.com",

      153c144
      < "baidu/.com","word=", "search/.sina/.com", "word=", "search/.sohu/.com","word=",
      ---
      > "baidu/.com","word=", "sina/.com", "word=", "3721/.com", "name=","163/.com","q=","tom/.com","word=","sohu/.com","word=",

      250c234
      < "baidu/.com","Baidu", "search/.sina/.com","Sina", "search/.sohu/.com","Sohu",
      ---
      > "baidu/.com","Baidu", "sina/.com","Sina", "3721/.com","3721","163/.com","NetEase","tom/.com","Tom","sohu/.com","Sohu",

      对Google的Unicode查询还是需要一些查询补丁:
      因为Google对于Windows 2000以上的IE浏览器缺省发送的查询都是UTF-8格式的,而其他搜索引擎大部分使用的是系统本地编码:GB2312,因此需要将查询URI解码后,还要根据是否使用UTF-8进行到GB2312的转码,否则同样的单词会在统计中留有UTF-8和GB2312两条记录。

      我增加了以下函数用于Google UTF-8字符的解码和类似于“/xc4/xbe/xd7/xd3/xc3/xc0”这样查询的解码
      sub Utf8_To_Ascii {
           my $string = shift;
           my $encoding = shift;

           # change /xc4/xbe/xd7/xd3/xc3/xc0 into %c4%be%d7%d3%c3%c0
           $string =~ s///x(/w{2})/%/1/gi;

           # uri unescape
           $string = uri_unescape($string);

           if ( $string =~ m/^([/x00-/x7f]|[/xc2-/xdf][/x80-/xbf]|/xe0[/xa0-/xbf][/x80-/xbf]|[/xe1-/xef][/x80-/xbf][/
      x80-/xbf]|/xf0[/x90-/xbf][/x80-/xbf][/x80-/xbf]|[/xf1-/xf7][/x80-/xbf][/x80-/xbf][/x80-/xbf])*$/ )
           {
               $string = decode("utf-8", $string);
               $string = encode($encoding, $string);
           }

           # trim space
           $string =~ s/^/s+//;
           $string =~ s//s+$//;

           # reverse "+", ";" to space
           $string =~ s/;+//g;
           $string =~ s//s+//+/g;
          
           #print $string."/n";
           return $string;
      }

      这里有更多关于GOOGLE UTF-8查询的补丁

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

      GeoIP 和 Geo::IPfree(awstats 5.5+)
      GeoIP和Geo::IPfree都免费的是国家/IP的影射表,比通过DNS反相解析域名得到的统计准确,而且速度快。GeoIP的API都是免费的,缺省库是免费的,收费的是它的数据更新服务。Geo::IPfree不仅代码是公开的,而且库数据也是公开的,因此可以自己定制,我曾经设想做一个中国城市到IP的映射。

      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或者Geo::IPfree

      参考资料:

      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

      日志统计对于分析搜索引擎对站点的影响具有非常重要的意义
      http://www.chedong.com/tech/google.html

      AWStats 本身也包含了很多插件,包括将多个站点的统计再次汇总输出,IIS日志时间转换,URL的标题映射等http://awstats.sourceforge.net/awstats_contrib.html

      原文出处:http://www.chedong.com/tech/awstats.html

      Web 日志分析工具 awstats installconfigureorapacheweb 测试。 阅读详情

      相关推荐

      Apache 访问日志分析工具

      java 读取apache访问日志并将IP时间入库,另一个线程分析数据记录,指定时间内超过规定的访问次数,将IP添加进防火墙。以防止ddos攻击。

      AWStats】配置 Apache/Windows IIS日志分析工具

      转自: http://hi.baidu.com/qu6zhi/blog/item/a66307bfc246440318d81f69.html RHEL-5.3 =================================================================================== 【简介】 奇码科技的美国空间是带有详细的统计流量工具 awstats,A...

      入海数沙 1691

      Apache访问日志分析(含源代码)

      一个分析Apache服务器访问日志的工具, 基于C#开发. 可以分析用户访问所在地, 访问次数, UserAgent等信息.

      Apache日志分析系统

      在观看文章之前,声明一下,文章内所有涉及到的工具都会以百度网盘共享形式免费供大家使用 文章目录ApacheAWStats搭建安装httpd安装AWStats总结 Apache Apache(音译为阿帕奇)是一款非常火爆的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台安全性被广泛使用,是最流行的Web服务器端软件之一。 Apache的特点: 1 支持最新的HTTP/1.1通信协议 2 拥有简单而强有力的基于文件的配置过程 3 支持通用网关接口 4 支持基于IP基于域名

      Mr_wang285的博客 1235

      Awstats 日志分析工具安装

      最近工作当中需要对Apache访问日志进行分析,一开始用脚本分析,但是没有图形化工具那么直观,于是在网上找到了awstats工具,这里记录一下它的安装过程使用方法!一、安装(安装之前确保服务器上已经安装了perl,lamp环境,否则将无法安装)1、从awstats官方网站上下载awstats源码包cd /usr/localwget http://jaist...

      weixin_34210740的博客 210

      AWStats日志分析工具

      awstats官方网站:http://awstats.sourceforge.net/perl官方网站:http://www.perl.com/Awstats是一个非常简洁而且强大的统计工具。它可以统计您站点的如下信息:一:访问量,访问次数,页面浏览量,点击数,数据流量等精确到每月、每日、每小时的数据二:访问者国家、访问者IP、操作系统、浏览器等三:Robots/Spider...

      weixin_34239592的博客 626

      AWStats简介Apache/IIS日志分析工具

      安装 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-ve...

      Welcome to Radish Blog 200

      AWStats:平台日志分析工具使用简介

      AWStats:平台日志分析工具    ——在GNU/LinuxWindows平台上的使用简介作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com写于:2003/04 最后更新:document.write(document.lastModified) 04/19/2003 11:42:54版权声明:可以任意转载

      车东@CSDN 44万+

      [转载] 内容摘要:AWStats使用简介配置一些改进说明。

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

      studyflex的专栏 1379

      AWStats: 日志分析工具

      AWStats: Apache/IIS日志分析工具    ——在GNU/LinuxWindows平台上的使用简介http://www.chedong.com/tech/awstats.html

      1041

      APACHE日志分析工具

      很多apache日志分析工具都是要安装到服务器上的,而且安装非常麻烦,于是我写了一个单机版(exe,Windows),方便大家分析apache访问日志,绿色版的,直接解压就可以用。 功能: 1、导入apache访问日志; 2、访问明细检索、排序; 3、时段访问量统计分析; 4、IP访问统计分析(查找DDOS攻击); 5、请求状态(404、503等)统计分析; 6、请求方式(POST、GET等)统计分析; 7、请求协议统计分析。 为了更加灵活且简化工具大小,工具会将统计分析的结果导出到EXCEL或WPS里面,用户可以利用EXCEL或WPS灵活生成图形报表。

      Advanced Web Statistics(AWStats) v5.4(多国语言)

      一套完整的站点统计,详细的浏览记录(IP、来访日期、日期统计、浏览器、操作系统),还能统计来源的搜索引擎等功能,内含近60个语言包

      AWStats: Apache/IIS日志分析工具--- 车东

       AWStats: Apache/IIS日志分析工具    ——在GNU/LinuxWindows平台上的使用简介作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com写于:2003/04 最后更新: 10/02/2006 22:24:38Feed Back >> (Read this before you ask quest

      ak47mig的网志(自家用,谢绝无聊斗鸡) 1433

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

      <br />你完全不必耐心看完所有内容:简要安装说明如下<br />安装<br /> http://sourceforge.net/projects/awstats/ 下载安装包后:<br /> GNU/Linux:tar zxf awstats-version.tgz<br /> awstats的脚本静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署到 cgi-bin/目录下:/home/apache/cgi-bin/awstats/ <br /> mv awsta

      hanyu332的专栏 1161

      AWStats简介

      安装[url]http://sourceforge.net/projects/awstats/[/url] 下载安装包后:GNU/Linux:tar zxf awstats-version.tgzawstats的脚本静态文件缺省都在wwwroot目录下:将cgi-bin目录下的文件都部署到 cgi-bin/目录下:/home/apache/cgi-bin/awstats/ ...

      weixin_33686714的博客 2748

      AWStats 互联网统计分析工具

      转载自:http://www.chedong.com/tech/awstats.html AWStats: Advanced Web Statistics AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具Webalizer,AWStats的优势在于: 界面友好:可以根据浏览器

      freewebsys的专栏 2615
      上一篇: 微软预警:Linux和PC需求可能影响未来业绩
      下一篇: 研究: 政府机构乐于拥抱开源代码 需求不强烈
      zcatlinux
      博客等级 码龄22年 56粉丝 760原创
      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值