AWStats: 跨平台的日志分析工具使用简介[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 chedong 的 blog

awstats: 跨平台的日志分析工具
    ——在gnu/linux和windows平台上的使用简介

作者: 车东 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: advanced web statistics

awstats是最近发展很快的一个基于perl的web日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具webalizer,awstats的优势在于:

  1. 界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)
    参考输出样例:http://awstats.sourceforge.net/cgi-bin/awstats.pl
  2. 基于perl:并且很好的解决了跨平台问题,系统本身可以运行在gnu/linux上或windows上(安装了activeperl后);分析的日志直接支持apache格式(combined)和iis格式(需要修改)。webalizer虽然也有windows平台版,但目前已经缺乏维护;
    awstats完全可以实现用一套系统完成对自身站点不同服务器: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. 然后是输出:分两种形式
    1. 一种是通过cgi程序读取统计结果数据库输出;
    2. 一种是运行后台脚本将输出导出成静态文件;

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

下载/安装

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

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

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

  1. 对于apache:日志格式好设置:设置成combined格式即可,日志截断麻烦一点:需要安装cronolog工具,将日志设置成按天截断:
    customlog "|/usr/local/sbin/cronolog /path/to/apache/logs/access_%y%m%d.log" combined
    比如:logs/access_030327.log logs/access_030326.log
  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="chedong.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_%yy-24%mm-24%dd-24.log"
    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
比如:./awstats.pl -update -config=chedong

统计输出

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)

本文关键:awstats web log analysis apache iis 日志 分析 open source
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top