Render in Opera

computer, internet, software

日志统计分析程序webalizer的安装和配置

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



安装
在安装以前首先需要确保系统已经安装有gd库,可以使用:
[root@mail root]# rpm -qa|grep gd
gd-devel-1.8.4-4
gdbm-devel-1.8.0-14
gdbm-1.8.0-14
sysklogd-1.4.1-8
gd-1.8.4-4
来确认系统已经安装有gd-deve和gd两个rpm包。

安装webalizer有两种方式,一种是下载源代码来安装,一种是直接使用rpm包来安装。
使用rpm包方式安装非常简单,从rpmfind.net找到webalizer包,下载以后:
rpm –ivh webalizer-2.01_10-1.i386.rpm
即可实现安装。

对于源代码方式首先需要从http://www.mrunix.net/webalizer/下载,然后将解压后的目录拷贝到一个自己喜欢的地方然后安装,解开源代码包:
# cp webalizer-2.01-10-src.tga /usr/local
# cd /usr/local
# tar zxf webalizer-2.01-10-src.tgz

在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下。然后进入生成的目录(网上也有简体版,如果找不到可以向我索取)。然后进行编译前的准备。
# cd webalizer-2.01-10
# ./configure –-with-language=chinese
如果需要统计来访的国家和地区,可以加上–enable-dns选项,但Webalizer对国家地区的统计是通过DNS解析来完成的,它自身并没有IP库,所以如果一个来访IP没有域名,则就不能认出来是那个国家或者地区的!建议不要打开这个选项。

由于汉化以后会出现生成的图片的文字部分出现乱码,要解决这个问题,可以使用台湾“颜国雄”写的一段Perl代码,结决这个问题,网上也有很多这段代码,可惜大多数都有问题,可能是放到网络上的时候那个地方出现了改动。没有问题的版本在:ftp://ftp.lsps.tp.edu.tw/OS/FreeBSD/samples/webalizer_patch.pl 下载以后运行:

# perl “path of webalizer_patch.pl” ./ //其中“path of webalizer_patch.pl”指的是”webalizer汉化后图表乱码的处理”perl脚本的路径
# make
# make instal

译成功后,将生成的webalizer拷贝到/usr/bin/下,这样就可以在任何地方敲入命令运行webalizer了。

配置和运行
对webalizer运行的控制可以通过配置文件或者在命令行指定参数的两种方式进行。而使用配置文件方式是比较简单和灵活的,适用于自动web服务器日志统计分析的应用环境。
webalizer的默认配置文件为/etc/webalizer.conf,当启动Webalizer时没有使用“-f“选项时,Webalizer就会寻找文件/etc/webalizer.conf,也可以使用“-f”来指定配置文件(当服务器有虚拟主机时,就需要配置多份不同的webalizer 配置文件,不同的虚拟主机的webalizer使用不同的配置文件。Webalizer.conf配置文件中需要修改的配置选项如下:

LogFile /www/logs/secfocus/access_log
用来指示配置文件的路径信息,webalizer会将该日志文件作为输入进行统计分析;
OutputDir /www/htdocs/secfocus/usage
用来指示生成的统计报表的保存目录,在前面我们使用alias,使得用户可以使用http://www.secfocus.com/usage/来访问统计报表。

HostName www.secfocus.com
用来指示主机名,统计报表中会引用该主机名。

保护日志统计分析报告不被未授权用户访问
我们肯定不会希望自己网站访问统计信息随意被别人浏览,因此需要将usage目录保护起来,只允许合法用户访问。这里可以采用apache自带的基本的认证机制,配置以后再连接这个地址就会需要用户提供密码才能访问该页面:

1、条件
在配置文件中对目录”/”应该设置为:
DocumentRoot /www/htdocs/secfocus/
AccessFileName .htaccess
AllowOverride All
2、需求
需求:限制对http://www.secfocus.com/usage/的访问,要求用户认证才能访问。这里设置用户为”admin”,口令为”12345678″。
3、使用htpasswd建立用户文件
htpasswd -c /www/.htpasswd admin
此程序会询问用户”admin”的口令,你输入”12345678″,两次生效。
4、建立.htaccess文件
用vi在/www/logs/secfocus/usage/目录下建立一个文件.htaccess,写入以下几行:
AuthName admin-only
AuthType Basic
AuthUserFile /www/.htpasswd
require user admin
5、测试
这时候通过浏览器访问http://www.secfocus.com/usage就会弹出框请求输入用户名和口令,这时候输入admin、12345678就可以才可以访问访问日志统计分析报表

让Webalizer定期运行
然后在/etc/crontab中加入:
01 1 * * * root /etc/rc.d/webalizer
即每天凌晨1点执行该脚本。
然后运行/etc/rc.d/init.d/crond reload重载入crond服务。

crontab修改后重载方法Webalizer的统计项的含义

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies