现在的位置: 首页 > 综合 > 正文

Apache学习笔记(五)Apache日志分析-webalizer篇

2017年11月28日 ⁄ 综合 ⁄ 共 5114字 ⁄ 字号 评论关闭

      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不支持中文,则在产生的图片中文字可能为乱码。


抱歉!评论已关闭.