webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。
一、安装Webalizer日志分析程序
由于webalizer在做报表时需要用到绘图,因此在安装webalzer前要先装libpng库和gd库.
1、安装libpng库
下载libpng库文件
wget http://aleron.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.7-config.tar.gz
解压并编译
tar -xfzv libpng-1.2.7.tar.gz
cd libpng
./configure
make
make install
2、安装gd库
下载gd库文件
wget http://www.boutell.com/gd/http/gd-2.0.28.tar.gz
解压并编译
tar -xfzv gd-2.0.28.tar.gz
cd gd
./configure
make
make install
3、开始安装webalizer
1)从webalizer的官方站点http://www.mrunix.net/webalizer/下载webalizer。
2)首先解开源代码包:
tar xvzf webalizer-2.01-10-src.tgz
3)在生成的目录中有个lang目录,该目录中保存了各种语言文件,有繁体中文版本和简体中文版.
4)然后进入生成的目录:
./configure --prefix=/usr/local/webalizer --with-language=simplfied_chinese
5)编译成功后,会产生一个webalizer可执行文件,可以将其拷贝到/usr/sbin/目录下:
cp webalizer /usr/sbin/
然后就可以开始配置webalizer。
二、配置Webalizer
Webalizer的配置主要通过修改Webalizer.conf配置文件来实现的。安装Webalizer后,该文件默认存放与/etc/目录下。
Webalizer配置文件内容如下所示:
[root@apache etc]# cat webalizer.conf | grep -Ev ^#
#使用LogFile参数设置访问日志的位置
LogFile /var/log/httpd/access_log
#使用OutputDir参数设置统计报表的输出位置
OutputDir /var/www/usage
#使用HistoryName参数设置Webalizer生成的历史文件名
HistoryName /var/lib/webalizer/webalizer.hist
#使用Incremental参数设置是否增量
Incremental yes
#使用IncrementalName参数设置保存当前数据的文件名
IncrementalName /var/lib/webalizer/webalizer.current
#使用PageType参数定义哪种类型的URL属于页面访问
PageType htm*
PageType cgi
PageType php
PageType shtml
#使用DNSCache参数设置反向DNS解析的缓存文件
DNSCache /var/lib/webalizer/dns_cache.db
#使用DNSChildren参数设置用多少个子进程进行DNS解析
DNSChildren 10
Quiet yes
FoldSeqErr yes
#使用HideURL参数设置需要隐藏的内容
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
#使用SearchEngine参数设置搜索引擎和URL中的查询格式
SearchEngine yahoo.com p=
SearchEngine altavista.com q=
SearchEngine google.com q=
SearchEngine eureka.com q=
SearchEngine lycos.com query=
SearchEngine hotbot.com MT=
SearchEngine msn.com MT=
SearchEngine infoseek.com qt=
SearchEngine webcrawler searchText=
SearchEngine excite search=
SearchEngine netscape.com search=
SearchEngine mamma.com query=
SearchEngine alltheweb.com query=
SearchEngine northernlight.com qr=
一般情况下我们只需要配置LogFile和OutputDir参数,这两个参数分别用于指定Apache访问日志的位置和Webalizer分析软件的报告输出目录。修改如下:
LogFile /usr/local/apache2/logs/access_log
OutputDir /usr/local/apache2/htdocs/loganalyze
三、使用Webalizer分析日志
1、Webalizer命令的选项如下:
[root@apache etc]# webalizer -h
Usage: webalizer [options] [log file]
-h = print this help message打印帮助信息
-v -V = print version information打印版本信息
-d = print additional debug info打印附加调试信息
-F type = Log type. type= (clf | ftp | squid)日志格式类型. type= (clf | ftp | squid)
-f = Fold sequence errors
-i = ignore history file忽略历史文件
-p = preserve state (incremental)保留状态 (递增模式)
-q = supress informational messages忽略消息信息
-Q = supress _ALL_ messages忽略所有信息
-Y = supress country graph忽略国家图形
-G = supress hourly graph忽略小时统计图形
-H = supress hourly stats忽略小时统计信息
-L = supress color coded graph legends忽略彩色图例
-l num = use num background lines on graph在图形中使用数字背景线
-m num = Visit timout value (seconds)访问超时 (seconds)
-T = print timing information打印时间信息
-c file = use configuration file 'file'指定配置文件
-n name = hostname to use使用的主机名
-o dir = output directory to use结果输出目录
-t name = report title 'name'指定报告题目上的主机名
-a name = hide user agent 'name'隐藏用户代理名称
-r name = hide referrer 'name'隐藏访问链接
-s name = hide site 'name'隐藏客户
-u name = hide URL 'name'隐藏URL
-x name = Use filename extension 'name'使用文件扩展名
-P name = Page type extension 'name'页面类型扩展名
-I name = Index alias 'name'index别名
-A num = Display num top agents显示前几名客户类型
-C num = Display num top countries显示前几名国家
-R num = Display num top referrers显示前几名链接
-S num = Display num top sites显示前几名客户
-U num = Display num top URLs显示前几名URLs
-e num = Display num top Entry Pages显示前几名访问页面
-E num = Display num top Exit Pages显示前几名不存在的页面
-g num = Group Domains to 'num' levels
-X = Hide individual sites隐藏个别用户
-D name = Use DNS Cache file 'name'使用dns缓存文件
-N num = Number of DNS processes (0=disable)DNS 进程数(0=禁用dns)
2、运行webalizer程序
[root@apache etc]# webalizer
Webalizer V2.23-08 (Linux 2.6.18-238.el5 x86_64) English
Using logfile /usr/local/apache2/logs/access_log (clf)
Creating output in /usr/local/apache2/htdocs/loganalyze
Hostname for reports is 'apache'
History file not found...
Generating report for March 2014
Saving history information...
Generating summary report
10 records in 1 seconds, 10/sec
3、验证是否生产数据文件图片等
[root@apache loganalyze]# ls -rlt
总计 60
-rw-r--r-- 1 root root 2862 03-26 00:41 webalizer.hist
-rw-r--r-- 1 root root 2050 03-26 00:41 usage.png
-rw-r--r-- 1 root root 32887 03-26 00:41 usage_201403.html
-rw-r--r-- 1 root root 3612 03-26 00:41 index.html
-rw-r--r-- 1 root root 1599 03-26 00:41 hourly_usage_201403.png
-rw-r--r-- 1 root root 2560 03-26 00:41 daily_usage_201403.png
-rw-r--r-- 1 root root 2276 03-26 00:41 ctry_usage_201403.png
4、下载这些文件,在本地电脑打开index.html就可以看见日志分析的情况了。
四、配置crontab
假设,web服务器主机名为www.test.com,统计站点域名为www.test.com, 访问日志为/var/log/httpd/access_log, 我们将webalizer分析结果输出到/var/www/html/log下面。则我们可以建立以下脚本/etc/rc.d/webalizer:
#!/bin/sh
run=/usr/sbin/webalizer
$run -F clf -p -n " " -t "www.test.com"
-o /var/www/html/log /var/log/httpd/access_log
.........................................................