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等


搭建环境以及所需的软件包:

系统:centos

软件:httpd 作为webalizer的页面服务器

    gd 

    zlib

    font

    db4-devel

安装步骤如下:

1,依次安装如下软件:

[root@zabbix ~]#yum -y install httpd
[root@zabbix ~]#yum -y install gd* 
[root@zabbix ~]#yum -y install zlib* 
[root@zabbix ~]#yum -y install font* 
[root@zabbix ~]# yum install db4-devel

2,安装配置GeoIP插件:这里需要3个GeoIP编译包GeoIP-1.4.8,Geo-IP-1.27,Geo-IPfree-0.2且这三个编译包相互关联,必须逐一安装。

  a,安装GeoIP-1.4.8包

[root@zabbix soft]# wget http://www.findthatzip.com/search-41538008-hZIP/winrar-winzip-download-webalizer-geoip-2.1.10-13.tbz.htm 
[root@zabbix soft]#tar zxvf GeoIP-1.4.8.tar.gz  
[root@zabbix soft]#cd GeoIP-1.4.8 
[root@zabbix soft]#./configure --prefix=/usr/local/GeoIP
[root@zabbix soft]#make && make install
[root@zabbix soft]#cd /tmp/soft/GeoIP-1.4.8/data
[root@zabbix soft]#cp GeoIP.dat  /usr/shar/GeoIP/

由于自定义了安装路径,所以这里需要加载关联GeoIP模块库

[root@zabbix soft]#echo '/usr/local/GeoIP/lib' >> /etc/ld.so.conf
[root@zabbix soft]#/sbin/ldconfig /etc/ld.so.conf


  b,安装Geo-IP-1.27包

[root@zabbix soft]#wget http://www.maxmind.com/download/geoip/api/perl/Geo-IP-1.27.tar.gz
[root@zabbix soft]#tar zxvf Geo-IP-1.27.tar.gz
[root@zabbix soft]#cd Geo-IP-1.27
[root@zabbix soft]# perl Makefile.PL LIBS='-L/usr/local/GeoIP/lib'INC='-I/usr/local/GeoIP/include'
[root@zabbix soft]#make && make install

 

  c,安装Geo-IPfree-0.2包

[root@zabbix soft]# wget http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz
[root@zabbix soft]#tar zxvf Geo-IPfree-0.2.tar.gz
[root@zabbix soft]#cd Geo-IPfree-0.2
[root@zabbix soft]#perl Makefile.PL
[root@zabbix soft]#make && make install


3,准备ip查询库:

[root@zabbix soft]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-geodb-latest.tgz
[root@zabbix soft]# tar zxvf webalizer-geodb-latest.tgz
GEODB.README
GeoDB.dat    
[root@zabbix soft]# cp GeoDB.dat /usr/share/GeoDB/


4,准备国旗图片库

[root@zabbix soft]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-flags.tgz 
[root@zabbix soft]# tar zxvf webalizer-flags.tgz 
[root@zabbix soft]# mv flags/ /var/www/html/


5,下载安装webalizer

[root@zabbix soft]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-05-src.tgz 
[root@zabbix soft]# tar zxvf webalizer-2.23-05-src.tgz 
webalizer-2.23-05/
webalizer-2.23-05/CHANGES
webalizer-2.23-05/COPYING
webalizer-2.23-05/Copyright
webalizer-2.23-05/DNS.README
webalizer-2.23-05/INSTALL
webalizer-2.23-05/Makefile.in
webalizer-2.23-05/Makefile.std
webalizer-2.23-05/README
webalizer-2.23-05/README.FIRST
webalizer-2.23-05/configure
webalizer-2.23-05/configure.in
webalizer-2.23-05/country-codes.txt
webalizer-2.23-05/dns_resolv.c
webalizer-2.23-05/dns_resolv.h
webalizer-2.23-05/graphs.c
webalizer-2.23-05/graphs.h
webalizer-2.23-05/hashtab.c
webalizer-2.23-05/hashtab.h
webalizer-2.23-05/install-sh
webalizer-2.23-05/lang.h
webalizer-2.23-05/linklist.c
webalizer-2.23-05/linklist.h
webalizer-2.23-05/msfree.png
webalizer-2.23-05/output.c
webalizer-2.23-05/output.h
webalizer-2.23-05/parser.c
webalizer-2.23-05/parser.h
webalizer-2.23-05/preserve.c
webalizer-2.23-05/preserve.h
webalizer-2.23-05/sample.conf
webalizer-2.23-05/wcmgr.1
webalizer-2.23-05/wcmgr.c
webalizer-2.23-05/webalizer.1
webalizer-2.23-05/webalizer.LSM
webalizer-2.23-05/webalizer.c
webalizer-2.23-05/webalizer.h
webalizer-2.23-05/webalizer.png
webalizer-2.23-05/lang/
webalizer-2.23-05/lang/webalizer_lang.albanian
webalizer-2.23-05/lang/webalizer_lang.arabic
webalizer-2.23-05/lang/webalizer_lang.catalan
webalizer-2.23-05/lang/webalizer_lang.chinese
webalizer-2.23-05/lang/webalizer_lang.croatian
webalizer-2.23-05/lang/webalizer_lang.czech
webalizer-2.23-05/lang/webalizer_lang.danish
webalizer-2.23-05/lang/webalizer_lang.dutch
webalizer-2.23-05/lang/webalizer_lang.english
webalizer-2.23-05/lang/webalizer_lang.estonian
webalizer-2.23-05/lang/webalizer_lang.finnish
webalizer-2.23-05/lang/webalizer_lang.french
webalizer-2.23-05/lang/webalizer_lang.galician
webalizer-2.23-05/lang/webalizer_lang.german
webalizer-2.23-05/lang/webalizer_lang.greek
webalizer-2.23-05/lang/webalizer_lang.hungarian
webalizer-2.23-05/lang/webalizer_lang.icelandic
webalizer-2.23-05/lang/webalizer_lang.indonesian
webalizer-2.23-05/lang/webalizer_lang.italian
webalizer-2.23-05/lang/webalizer_lang.japanese
webalizer-2.23-05/lang/webalizer_lang.korean
webalizer-2.23-05/lang/webalizer_lang.latvian
webalizer-2.23-05/lang/webalizer_lang.lithuanian
webalizer-2.23-05/lang/webalizer_lang.malay
webalizer-2.23-05/lang/webalizer_lang.norwegian
webalizer-2.23-05/lang/webalizer_lang.polish
webalizer-2.23-05/lang/webalizer_lang.portuguese
webalizer-2.23-05/lang/webalizer_lang.portuguese_brazil
webalizer-2.23-05/lang/webalizer_lang.romanian
webalizer-2.23-05/lang/webalizer_lang.romanian-iso-8859-2
webalizer-2.23-05/lang/webalizer_lang.russian
webalizer-2.23-05/lang/webalizer_lang.serbian
webalizer-2.23-05/lang/webalizer_lang.simplified_chinese
webalizer-2.23-05/lang/webalizer_lang.slovak
webalizer-2.23-05/lang/webalizer_lang.slovene
webalizer-2.23-05/lang/webalizer_lang.spanish
webalizer-2.23-05/lang/webalizer_lang.swedish
webalizer-2.23-05/lang/webalizer_lang.thai
webalizer-2.23-05/lang/webalizer_lang.turkish
webalizer-2.23-05/lang/webalizer_lang.ukrainian
webalizer-2.23-05/webalizer_lang.h

[root@zabbix webalizer-2.23-05]# ./configure --with-language=chinese
[root@zabbix webalizer-2.23-05]# make
[root@zabbix soft]# cd webalizer-2.23-05/lang
[root@zabbix soft]# iconv -f gb2312 -t utf-8 -s -c --verbose webalizer_lang.simplified_chinese.bak -o webalizer_lang.simplified_chinese

说明:找到webalizer_lang.simplified_chinese  将文件格式转化为utf-8,可以借助外部工具,修改后放回即可。这里我使用EditPlus 3进行格式转换(文件用editplus打开-->文档-->文本编码-->转换文本编码-->选择编码方式为:utf-8-->保存),大家可以去网上下载一些软件,将文件格式转换即可,如无需汉化,此步骤可略过。

wKioL1biVYrytLacAACzw9K1cCo082.png

[root@zabbix lang]#cd ..
[root@zabbix lang]# find / -name *.ttf
/data/php/fonts/DejaVuSans.ttf
/tmp/install/zabbix-2.0.8/frontends/php/fonts/DejaVuSans.ttf
/tmp/install/php-5.5.28/ext/gd/tests/Tuffy.ttf
/tmp/install/php-5.5.28/ext/gd/tests/test8859.ttf
/usr/java/jdk1.8.0_51/jre/lib/oblique-fonts/LucidaTypewriterOblique.ttf
/usr/java/jdk1.8.0_51/jre/lib/oblique-fonts/LucidaTypewriterBoldOblique.ttf
/usr/java/jdk1.8.0_51/jre/lib/oblique-fonts/LucidaSansOblique.ttf
/usr/java/jdk1.8.0_51/jre/lib/oblique-fonts/LucidaSansDemiOblique.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaBrightRegular.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaBrightItalic.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaBrightDemiItalic.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaBrightDemiBold.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaSansRegular.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaSansDemiBold.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaTypewriterRegular.ttf
/usr/java/jdk1.8.0_51/jre/lib/fonts/LucidaTypewriterBold.ttf

[root@zabbix lang]#cd ..

编辑graphs.c添加一下语句

void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)

{

gdImageStringFT(im, 0 , color, "/data/php/fonts/DejaVuSans.ttf", 9 , 0.0, x, y+9, s);                // 注意这里修改成你自己字体路径

}

void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)

{

gdImageStringFT(im, 0 , color, "/data/php/fonts/DejaVuSans.ttf", 9 , -PI/2, x, y-9 , s);

}                          //注意修改的路径自己路径的字体

[root@zabbix webalizer-2.23-08]# vi graphs.c 
   return;
}
/****************************************************************/
/*                                                              */
/* ASHEX2INT - ASCII HEX TO INT CONVERTER                       */
/*                                                              */
/****************************************************************/
int ashex2int(char *str)
{
   /* returns base-10 integer value from a 2 ASCII hex number   */
   return from_hex(str[1])+(from_hex(str[0])*16);
}
void gdImageString(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)
{
gdImageStringFT(im, 0 , color, "/data/php/fonts/DejaVuSans.ttf", 9 , 0.0, x, y+9, s);
}
void gdImageStringUp(gdImagePtr im, gdFontPtr font, int x, int y, unsigned char *s, int color)
{
gdImageStringFT(im, 0 , color, "/data/php/fonts/DejaVuSans.ttf", 9 , -PI/2, x, y-9 , s);
}

这样汉化结束,安装webalizer

[root@zabbix webalizer-2.23-05]# ./configure --prefix=/usr/local/webalizer \
 --with-gd=/usr/bin \
 --with-gdlib=/usr/lib \
 --with-png \
 --with-pnglib \
 --with-geoip=/usr/local/lib \
 --with-language=simplified_chinese \
 --enable-geoip \
 --with-geodb=/usr/share/GeoDB
[root@zabbix webalizer-2.23-08]# make && make install
make: Nothing to be done for `all'.
mkdir -p /usr/local/webalizer/bin
mkdir -p /man/man1
mkdir -p /usr/local/webalizer/etc
/usr/bin/install -c webalizer /usr/local/webalizer/bin/webalizer
/usr/bin/install -c wcmgr /usr/local/webalizer/bin/wcmgr
rm -f /usr/local/webalizer/bin/webazolver
ln -s webalizer /usr/local/webalizer/bin/webazolver
/usr/bin/install -c -m 644 webalizer.1 /man/man1/webalizer.1
/usr/bin/install -c -m 644 wcmgr.1 /man/man1/wcmgr.1
rm -f /man/man1/webazolver.1
ln -s webalizer.1 /man/man1/webazolver.1
/usr/bin/install -c -m 644 sample.conf /usr/local/webalizer/etc/webalizer.conf.sample


复制源码包实例文件放到/etc下面,如果不进行此步骤操作,系统会自动调用默认的主配置文件。

[root@zabbix webalizer-2.23-08]# cp sample.conf /etc/webalizer.conf


6,配置webalizer。将日志导入系统中,放在/data/www/下。修改主配置文件

[root@zabbix webalizer-2.23-08]# vi /etc/webalizer.conf 
LogFile        /opt/access.tar.gz  指定日志文件位置,可以是压缩包
LogType clf                      设置日志类型
OutputDir      /var/www/html/test   生成统计数据记录目录
HostName        test           统计网站名
GeoIP           yes          启用geoip功能
GeoIPDatabase   /usr/local/share/GeoIP/GeoIP.dat  指向geoipdatabase路径
//需要注意的是,这里的flags要用相对路径来表示,否则国旗图案将不能够正常显示  PageType htm*PageType cgiGeoDB yesGeoDBDatabase /usr/share/GeoDBGeoIP yesGeoIPDatabase /usr/share/GeoIPCountryGraph yesCountryFlags yesFlagDir flagsHideURL *.gifHideURL *.GIFHideURL *.jpgHideURL *.JPGHideURL *.pngHideURL *.PNGHideURL *.ra

建立生成数据记录的目录

# mkdir -p /var/www/html/test

libGeoIP复制到/usr/lib下,要不然启动服务会报错。

# cp -d -p /usr/local/lib/libGeoIP* /usr/lib/

7,启动服务并测试脚本:

[root@zabbix www]# vim test.sh 
# vi test.sh
#!/bin/sh
run=/usr/local/webalizer/bin/webalizer
$run -F clf -p -n ' ' -c '/etc/webalizer.conf'

[root@zabbix www]# chmod +x test.sh [root@zabbix www]# ./test.sh 
Warning: Invalid keyword 'GeoIP' (/etc/webalizer.conf)
Warning: Invalid keyword 'GeoIPDatabase' (/etc/webalizer.conf)
Webalizer V2.23-08 (Linux 2.6.32-573.3.1.el6.x86_64 x86_64) English
Using logfile /data/nginx/log/access_nginx_2016-02-18.log (clf)
Creating output in /data/www/
Hostname for reports is 'zabbix.com'
Reading history file... webalizer.hist
Reading previous run data.. webalizer.current
Generating summary report
15222 records (15222 ignored) in 1 seconds, 15222/sec
[root@zabbix www]#

8,开启httpd服务:

[root@zabbix log]# vim /etc/httpd/conf/httpd.conf

修改这个路径:DocumentRoot "/data/www/log/"即可


9,开启httpd服务,并在浏览器中访问:http://192.168.1.245/ 即可出现所示的图像:

访问结果:

wKioL1bibuuA1UUZAAHeH11g0tY211.png



备注:上文是通过文件配置的,也可以通过命令行配置webalizer,需要了解配置文件使用方法的朋友可以参考README文件,里面有很详细的介绍。   可以执行webalizer –h得到所有命令行参数:

Usage: webalizer [options] [log file]

-h = 打印帮助信息

  -v -V = 打印版本信息

  -d = 打印附加调试信息

  -F type = 日志格式类型. type= (clf | ftp | squid)

  -i = 忽略历史文件

  -p = 保留状态 (递增模式)

  -q = 忽略消息信息

  -Q = 忽略所有信息

  -Y = 忽略国家图形

  -G = 忽略小时统计图形

  -H = 忽略小时统计信息

  -L = 忽略彩***例

  -l num = 在图形中使用数字背景线

  -m num = 访问超时 (seconds)

  -T = 打印时间信息

  -c file = 指定配置文件

  -n name = 使用的主机名

  -o dir = 结果输出目录

  -t name = 指定报告题目上的主机名

  -a name = 隐藏用户代理名称

  -r name = 隐藏访问链接

  -s name = 隐藏客户

  -u name = 隐藏URL

  -x name = 使用文件扩展名

  -P name = 页面类型扩展名

  -I name = index别名

  -A num = 显示前几名客户类型

  -C num = 显示前几名国家

  -R num = 显示前几名链接

  -S num = 显示前几名客户

  -U num = 显示前几名URLs

  -e num = 显示前几名访问页面

  -E num = 显示前几名不存在的页面

  -X = 隐藏个别用户

  -D name = 使用dns缓存文件

-N num = DNS 进程数 (0=禁用dns)








[root@picture webalizer-2.23-05]# yum install libpng -y

[root@picture webalizer-2.23-05]# yum install -y install gd* -y

[root@picture webalizer-2.23-05]# yum install -y install libgd* -y 

[root@picture soft]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-05-src.tgz

[root@picture soft]# tar -zxvf webalizer-2.23-05-src.tgz 

[root@picture soft]# cd webalizer-2.23-05

[root@picture webalizer-2.23-05]#./configure --with-language=chinese

[root@picture webalizer-2.23-05]# make

[root@picture webalizer-2.23-05]# ll webalizer

-rwxr-xr-x 1 root root 172060 Mar 24 13:35 webalizer

[root@picture webalizer-2.23-05]# cp webalizer /usr/bin/
[root@picture webalizer-2.23-05]# webalizer -h

[root@picture webalizer-2.23-05]# cp sample.conf /etc/webalizer.conf