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-version/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目录下
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/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 目录用于统计数据输出

按照一下样例设置配置文件:
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" 启用基本上就没有什么中文搜索引擎的统计问题了,目前增加了# Minor chinese search engines 'baidu\.com','search\.sina\.com','search\.sohu\.com',这3个搜索引擎。包含了针对国内主要搜索引擎和蜘蛛定义的补丁(解包后覆盖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/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数据包:可以定期每个月从以下地址下载

http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz

(0)

相关推荐

  • Apache AB性能测试工具使用教程

    服务器负载太大而影响程序效率是很常见的,Apache服务器自带有一个叫ab(ApacheBench)的工具,在bin目录下.ab专门用于HTTP Server的benchmark testing,可以同时模拟多个并发请求,使用这个轻巧的工具我们可以对服务器进行负载测试. 今天在公司也用它作一些测试,现在整理了下它的一些东西分享下. 首先我们要得到Apache服务器的目录下bin的路径,我电脑中的路径是D:\wamp\bin\apache\Apache2.2.21\bin,打开cmd,转到这个目录

  • apache密码生成工具htpasswd使用详解

    一.htpasswd的作用与安装 htpasswd是apache的一个工具,该工具主要用于建立和更新存储用户名.密码的文本文件,主要用于对基于http用户的认证. htpasswd的安装很简单,它是随apache的安装而生成.这点与ab工具是一样的,这里就不详细说明了 如果apache是通过RPM的yum方式进行安装的话,该命令存放在/usr/bin/目录下,如下: which htpasswd /usr/bin/htpasswd 如果apache是源码方式安装的话,该命令存放在apache安装

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

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

  • vbs源码之的IIS日志分析工具

    为什么要开发vbs写的IIS日志分析工具? 在网上找了很多IIS日志分析工具,功能实在太有限,有的仅能分析百度.谷歌等搜索引擎爬虫的来访次数,远远达不到我们的用户的需求.作为一个小站长,有的时候也要分析一下自己站点的广告点击情况,静态页面的还好说,下载类的业务就不好统计了.耗时一晚上写出来本工具分享给大家. IIS日志分析工具的使用方法 本工具对于初次接收vbs脚本的用户来说,可能有点麻烦.下面我们就一步一步来说说该工具的使用方法. 1.如果 vbscript 默认引擎非cscript,需要修改

  • 用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?

    现在很多公司局域网都有自己的文件服务器,用于存储或共享一些文件供局域网用户访问使用.但是,在设置共享文件访问的过程中,经常出现共享文件被随意复制.修改甚至删除的情况发生,这使得共享文件的安全管理面临着较大风险.如何既可以让用户访问使用共享文件又可以阻止其对共享文件的不适当操作呢?笔者以为,可以通过以下两种方式来实现: 方法一.通过Windows服务器自带的"文件审核功能"来记录服务器文件访问日志.查看服务器文件操作日志. 有用户询问是否可以对文件服务器上的共享活页夹访问进行监控,比如对

  • 神器!最佳 Nginx 日志分析工具 GoAccess

    使用方法有两种,可以用 XShell 或 Putty 上去命令查看,也可以生成 html 报告. 下面介绍GoAccess 在 CentOS 上的安装方法: 1. 需要安装 GeoIP, ncurses, glib2, 一句搞定 复制代码 代码如下: #yum -y install glib2 glib2-devel ncurses ncurses-devel GeoIP GeoIP-devel 2. 下载 GoAccess 解压编译安装 复制代码 代码如下: # wget http://dow

  • 10个好用的Web日志安全分析工具推荐小结

    经常听到有朋友问,有没有比较好用的web日志安全分析工具? 首先,我们应该清楚,日志文件不但可以帮助我们溯源,找到入侵者攻击路径,而且在平常的运维中,日志也可以反应出很多的安全攻击行为. 一款简单好用的Web日志分析工具,可以大大提升效率,目前业内日志分析工具比较多,今天推荐十个比较好用的Web日志安全分析工具. 1.360星图 一款非常好用的网站访问日志分析工具,可以有效识别Web漏洞攻击.CC攻击.恶意爬虫扫描.异常访问等行为.一键自动化分析,输出安全分析报告,支持iis/apache/ng

  • python实现apahce网站日志分析示例

    维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:应用到:shell与python数据交互.数据抓取,编码转换 复制代码 代码如下: #coding:utf-8#!/usr/bin/python'''程序说明:apache access.log日志分析 分析访问网站IP 来源情况 日期:2014-01-06 17:01 author:gyh9711 程序说明:应用到:shell与python数据交互.数据抓取,编码转换'''import osimport jsonim

  • 理解和使用Oracle 8i分析工具LogMiner

    正在看的ORACLE教程是:理解和使用Oracle 8i分析工具LogMiner.Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert.update.delete等)语句,另外还可分析得到一些必要的回滚SQL语句.该工具特别适用于调试.审计或者回退某个特定的事务. LogMiner分析工具实际上是由一组PL/S

  • MySQL慢查询优化之慢查询日志分析的实例教程

    数据库响应慢问题最多的就是查询了.现在大部分数据库都提供了性能分析的帮助手段.例如Oracle中会帮你直接找出慢的语句,并且提供优化方案.在MySQL中就要自己开启慢日志记录加以分析(记录可以保存在表或者文件中,默认是保存在文件中,我们系统使用的就是默认方式). 先看看MySQL慢查询日志里面的记录长什么样的: Time Id Command Argument # Time: 141010 9:33:57 # User@Host: root[root] @ localhost [] Id: 1

  • mysqlsla慢查询分析工具使用笔记

    且该工具自带相似SQL语句去重的功能,能按照指定方式进行排序(比如分析慢查询日志的时候,让其按照SQL语句执行时间逆排序,就能很方便的定位出问题所在) + ------------- 安装mysqlsla慢查询日志分析工具 ------------- + 复制代码 代码如下: yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMakeryum -y install perl-DBI perl-DBD-MySQLyum -y insta

  • 五款常用mysql slow log分析工具的比较分析

    启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-queries[=file_name]选项 比较的五款常用工具mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统

随机推荐