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
说明:
1、-F clf
指明我们的web日志格式为标准的一般日志文件格式(Common Logfile Format)
2、-p
指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。
3、-n “ “
指定服务器主机名为空,这样输出结果会美观一些。
4、-o “www.test.com”
指定输出结果标题.
/var/log/httpd/access_log:指定日志文件
然后在/etc/crontab中加入:
01 1 * * * root /etc/rc.d/webalizer
即每天凌晨1点执行该脚本。
然后运行/etc/rc.d/init.d/crond reload重载入crond服务。
测试:
执行以下命令:
# /etc/rc.d/webalizer
然后在浏览器中访问http://www.test.com/log/就可以看到webalizer的分析结果了。
注意:
如果您使用了中文语言文件,但是您的linux不支持中文,则在产生的图片中文字可能为乱码。