一、webalizer

1)webalizer
webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析
 
2)webalizer特性
a. 为是用C写的程序,所以其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。
b. webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了。
c. 支持命令行配置以及配置文件。
d. 可以支持多种语言,也可以自己进行本地化工作。
e. 支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
 
3)webalizer安装
首先从webalizer的官网(http://www.webalizer.org/)下载最新版的源码包
解压缩webalizer包 

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats

切换至/usr/local/src/webalizer-2.03-05目录下
执行./configure –sysconfdir=/etc 指定webalizer的配置文件在/etc目录下 

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats_02

接着依次执行make与make install命令
最后会生成一个样例文件

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats_03

通过访问/var/log/httpd/access_log这个日志文件,将webalizer的分析结果输出到/var/www/html/log(此log目录如果没有的话,需要手工创建)
那么可以编写webalizer的控制脚本为

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_04

由于要周期性执行webalizer的控制脚本(执行一次,产生一次分析结果),故将其加入计划任务

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_05

在/etc/cron.web目录下执行一次./web
查看一下/var/www/html/log目录下形成的文件

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats_06

使用浏览器访问www.ifeng.com/log,查看形成的日志分析报告

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_07

二、awstats
1)      awstats
awstats 是一个免费的强大而有个性的工具,带来先进的网络,流量,FTP或邮件服务器统计图. 本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息. 它利用一部分档案资料就能经常很快地处理大量日志档案, 它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案 s (NCSA combined/XLF/ELF log format or common/CLF log format), WebStar, IIS (W3C的日志格式)及许多其他网站,Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些 FTP服务器 .
 
2) awstats功能
awstats是一个免费非常简洁而且强大有个性的网站日志分析工具。它可以统计您站点的如下信息:
a:访问量,访问次数,页面浏览量,点击数,数据流量等
b:精确到每月、每日、每小时的数据
c:访问者国家
d:访问者IP
e:Robots/Spiders的统计
f:访客持续时间
g:对不同Files type 的统计信息
h:Pages-URL的统计
i:访客操作系统浏览器等信息
j:其它信息(搜索关键字等等)
 
3) awstats特性
awstats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。相对于另外一个非常优秀的开放源代码的日志分析工具webalizer,awstats的优势在于:
a、界面友好:可以根据浏览器直接调用相应语言界面(有简体中文版)
b、基于Perl:并且很好的解决了跨平台问题,系统本身可以运行在GNU/Linux上或Windows上(安装了ActivePerl后);分析的日志直接支持Apache格式 (combined)和IIS格式(需要修改)。webalizer虽然也有Windows平台版,但目前已经缺乏 维护;awstats完全可以实现用一套系统完成对自身站点不同WEB服务器:GNU/Linux/Apache和Windows/IIS服务器的统一统计。
c、效率比较高:awstats输出统计项目比webalizer丰富了很多,速度仍可以达到webalizer的1/3左右,对于一个日访问量 百万级的站点,这个速度都是足够的;
d、配置/定制方便:系统提供了足够灵活但缺省也很合理的配置规则,需要修改的缺省配置不超过3,4项就可以开始运行,而且修改和扩展的插件还是 比较多的;
e、awstats的设计者是面向精确的"Human visits"设计的,因此很多搜索引擎的机器人访问都被过滤掉了,因此有可能比其他日志统计工具统计的数字要低,来自公司内部的访问也可以通过IP过滤 设置过滤掉。
f、提供了很多扩展的参数统计功能:使用ExtraXXXX系列配置生成针对具体应用的参数分析会对产品分析非常有用。
 
3) awstats安装
首先从awstats的官网(http://sourceforge.net/projects/awstats/)下载最新版的源码包
由于awstats是一个基于Perl的WEB日志分析工具,所以要使用awstats首先要确定系统已经安装过perl
解压缩awstats包

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_08  

切换至/usr/local/awstats/tools目录下执行

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_09

会进入一个交互式的配置程序,过程中会有些问题要你回答,当然这些都是可以在以后的配置文件中修改的

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_10

检测到了我当前的操作系统

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats_11

由于未检测到我当前的apache服务器的配置文件,因此需要手动的指定一下

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_12

apache的配置文件里面增加了上述内容,里面是一些目录和别名的设置.这部分一般加到了文件的最后面

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_13

更新了模板文件

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_14

是否需要创建一个新配置文件,选y

在linux下使用webalizer与awstats实现apache服务器的日志分析_awstats_15

这个地方填网站的域名

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_16

生成的配置文件存放的路径,默认是/etc/awstats,我不修改,直接回车

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_17

可以看到文件已经创建了,路径为/etc/awstats/awstats.www.ifeng.com.conf

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_18

由于修改了httpd.conf,所以它会自动重启apache来使配置文件生效

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_19

由于要得到新信息,就必须更新数据库,也就是说重新做读取日志.分析日志提取里面新增的部分进行分析,将更新的数据存入数据库的过程,最好就让它定时执行.这段话是提醒你,要实现这个功能就需要手动把上面带下划线的两行中的任一行写入crontab(计划任务),让它定时执行.其中第一句是更新www.ifeng.com,而第二句是在有多个站点情况下,将所有的站点都作更新.我在此不做这个操作,回车

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_20

按回车来结束安装.这段话就写的很清楚,接下来的工作就是
检查配置文件
这段脚本执行完,我们的httpd.conf也更新了,下面是它主要改动的部分

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_21

访问网站www.ifeng.com正常显示,这次访问就应该被记录到了日志里面.
通过http://localhost/awstats/awstats.pl?config=www.ifeng.com来查看统计的信息 

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_22

很明显是权限问题,到/usr/local/awstats下执行chmod -R 755 wwwroot
检查并编辑配置文件awstats.www.ifeng.com.conf
# LogFile="/var/log/httpd/mylog.log"
LogFile="/usr/local/apache2/logs/access_log"
指到apache的日志
LogType=W
表示分析的是web日志
LogFormat=1
表示日志格式为combined
SiteDomain=" www.ifeng.com"
域名
HostAliases=" ifeng.com      www.ifeng.com      127.0.0.1        localhost"
这个变量的意思是这个域的别名.即多个域名对应同一网站的情况,这句是自动生成的.我这里没有用到所以就没有改
切换至/usr/local/awstats/wwwroot/cgi-bin目录下
执行perl awstats.pl -update -config=www.ifeng.com来更新数据库
得到错误提示  

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_23

 

在linux下使用webalizer与awstats实现apache服务器的日志分析_webalizer_24

很明显错误原因是/var/lib/awstats这个目录不存在
这里需要说明,这个路径是由配置文件/etc/awstats/awstats.www.ifeng.com.conf里面的DirData参数决定的,表示存放数据库的地方.我没有修改所以依然是默认值DirData="/var/lib/awstats"既然提示不存在,现在就来新建它
切换至/var/lib目录下执行

在linux下使用webalizer与awstats实现apache服务器的日志分析_apache日志分析_25

再次切换至/usr/local/awstats/wwwroot/cgi-bin目录下
重新执行perl awstats.pl -update -config=www.ifeng.com来更新数据库
得到以下信息 

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_26

查看日志的内容的日志分析

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_27

 

在linux下使用webalizer与awstats实现apache服务器的日志分析_web服务器_28