ubutun 下webalizer 分析Apache日志

时间:2022-05-26 15:41:40

http://www.webalizer.org/  配置Webalizer

我们可以通过命令行配置Webalizer,也可以通过配置文件进行配置。下面将重点介绍使用配置文件进行配置,该方法使用形式比较直观,使用比较普遍。

Webalizer的配置文件的路径是"/etc/webalizer/webalizer.conf.sample。在一般情况下,该配置文件的默认参数配置都能满足一定的应用需要,可以直接使用。接下来以实例的方式给大家介绍如何配置该文件。

使用vi编辑Webalizer配置文件。

webalizer/webalizer.conf

设置访问日志的存放路径。

将系统默认值:

改为如下内容:
设置报表输出目录。

从默认值:

使用crontab命令让Webalizer每天生成Apache的当日流量统计分析。
添加如下配置行,使得Webalizer每晚9点生成当天的Squid流量统计分析结果。
21 0 * * * /usr/bin/webalizer -c /etc/webalizer/webalizer.conf
查看页面如下: 

ubutun 下webalizer 分析Apache日志


网络流量日志分析对于网络管理员来说非常重要。通过系统记载的流量日志,管理员可以清楚地看到用户对网络服务器的使用情况,能够从中挖掘及发现网络中可能存在的安全问题。

在Linux下有许多日志及流量分析软件。Webalizer就是其中一个高效、简单易用、免费的Web服务器日志及流量 分析程序。Internet上的很多站点都使用它进行Web服务器日志及流量分析。本文将以对Linux下的代理服务器Squid的流量日志作分析为背 景,详细介绍如何使用该软件进行流量分析。

Webalizer具有以下一些特性:

● 用C语言编写,具有很高的运行效率。在主频为200Mhz的机器上,Webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需15秒。

●支持标准的一般日志文件格式(Common Logfile Format); 除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在Webalizer已经可以支持wu-ftpd xferlog日志格式以及Squid日志文件格式了。

安装配置Webalizer

1. 源代码包的安装

从Webalizer的站点http://www.mrunix.net/webalizer/download.html下载Webalizer,当前的最新版本是Webalizer-2.01-10-src.tgz。按照如下步骤进行安装:

//解压开源代码包

#tar xvzf Webalizer-2.01-10-src.tgz

//然后进入生成的目录

#./configure

#make --with-language=chinese

//编译成功后,会产生一个Webalizer可执行文件,可以将其拷贝到/usr/sbin/目录下

#cp Webalizer /usr/sbin/

这样,安装就成功了,就可以对其进行配置了。

2. RPM包的安装

Red Hat Linux 9中提供了Webalizer的RPM安装包,下面介绍安装该RPM包的步骤:

#rpm -qa | grep webalizer //查看是否已经安装了Webalizer

#mount /mnt/cdrom //将第一张安装光盘放入光驱后挂装光盘分区

#cd /mnt/cdrom/Red Hat/RPMS

//进入/mnt/cdrom/Red Hat/RPMS目录

#rpm -ivh webalizer-2.01_10-11.i386.rpm

//执行安装

用户可以通过命令行配置Webalizer,也可以通过配置文件进行配置,下面将介绍使用配置文件进行配置,该方法使用形式比较直观,较为普遍。

Webalizer的配置文件的路径为: /etc/webalizer.conf,其有一个对应的例子文件/etc/webalizer.conf.sample。在一般情况下,该配置文件的默 认选项都能满足一定应用需要,可以直接使用。下面给出配置该文件的实际例子和步骤:

1.使用vi编辑webalizer配置文件

#vi /etc/webalizer.squid.conf

2.设置访问日志的存放路径,将系统默认值:LogFile /var/log/httpd/access_log改为如下内容:

LogFile /var/log/squid/access.log

3.设置访问日志的格式类型,将LogType clf修改为:

LogType squid

4.将报表输出目录从默认值OutputDir /var/www/html/usages设为Squid的统计报表,保存目录。使用crontab命令让webalizer每天生成Squid的当日流量统计分析。

#crontab -e

5.添加如下配置行,使得webalizer每晚9点生成当天的Squid流量统计分析结果:

21 0 * * * /usr/bin/webalizer -c /etc/webalizer.conf

Squid日志管理介绍

Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。在网络环境下,本地网络管理员经常可以通过其来代理访问互联网的很多资源,因而对其进行日志审核和管理具有重大意义。

Squid日志管理的功能比较强大。通过查看相关日志文件,用户可以实时、准确地了解代理服务器的访问记录、cache的存储状况、cache的访问记录等许多有用的信息,从而高效地对代理服务器进行管理。

Squid最重要的日志文件就是访问日志,其访问路径为: /var/log/squid/access.log。该日志文件记录了客户使用代理服务器的许多有用信息,包括使用时间、请求的内容、客户端信息等等。该文件的格式如下所示:

time eclapsed remotehost code/status bytes method URL rfc931 peerstatus/ peerhost type

如上可以看到,该日志文件的记录共包含10个字段,每个字段的含义如下:

● time: 记录客户访问代理服务器的时间,从1970年1月1日到访问时所经历的秒数,精确到毫秒。

● eclapsed: 记录处理缓存所花费的时间,以毫秒计数。

● remotehost: 记录访问客户端的IP地址或者是域名。

● code/status: 结果信息编码/状态信息编码,如TCP_MISS/205。

● bytes: 缓存字节数。

● method: HTTP请求方法,GET或者POST。

● URL: 访问的目的地址的URL,如www.sina.com.cn。

● Rfc931: 默认的,暂未使用。

● peerstatus/peerhost: 缓存级别/目的IP,如DIRECT/211.163.21.19。

● type: 缓存对象类型,如text/html。

下面给出了实际应用中的一段真实的访问日志,只取出了其中的一部分:

#cd /var/log/squid

#cat access.log

1119263842.955 195 192.168.10.3 TCP_MISS/200 1286 GET http://ad4.sina.com. cn/sina/ae/ad_src/popup/pops1.html? - DIRECT/218.30.108.19 text/html

1119263843.241 286 192.168.10.3 TCP_MISS/200 44689 GET http://ad4.sina.com. cn/200506/15/21135_300x250.GIF - DIRECT/218.30.108.18 image/gif

以第一条日志记录为例,其各个字段的含义如下:

客户访问代理服务器的时间为1119263842.955毫秒。处理缓存所花费的时间为195毫秒。客户端的IP地址为 192.168.10.3,为内网地址。结果信息编码/状态信息编码为TCP_MISS/200。缓存字节数为1286。HTTP请求方法为GET。访问 的目的地址的URL为: http://ad4.sina.com.cn/sina/ae/ad_src/popup/pops1.html。缓存级别/目的IP为: DIRECT/218.30.108.19。缓存对象类型为text/html。rfc913暂未使用,用“-”表示。

在上述的10个字段当中,信息编码以及状态信息编码比较重要,其表明了代理服务器对于客户请求的信息的返回结果,与代理服务器的cache命中率以及cahce处理过程有直接关系,该信息能够实在地反映代理服务器的cache的整体性能,具有较大的参考价值。

查看Squid网络流量日志

Webalizer可以将上述大量的Squid日志信息综合起来进行统计,得出可视化的显示结果供网络管理员或者网络用户进行参考和评价Squid服务器的使用情况,对于作出相应的决策有相当的参考价值。

在使用过程中需要注意: 由于该软件的使用结果都是通过Web页面来显示的,所以与Web服务器的联系比较紧密。下面给出该软件结合Squid服务器的使用示例。通常情况,配置好 该软件之后,启动Web服务器(只有启动该服务器才能通过Web页面来查看日志统计的详细情况)和该软件即可:

#service httpd start

#/usr/bin/webalizer -c /etc/webalizer.conf

启动Apache服务以及该软件后,就可以通过浏览器来查看Squid代理服务器的流量分析结果了,在IE浏览器的地址栏内输入Apache服务器的地址: http://210.77.27.59/usage,则得到如图所示结果。

ubutun 下webalizer 分析Apache日志
图 查看流量统计信息

图中给出了流量分析的示意图以及一些数据说明,更详细的统计分析数据,可以点击图中“Summary by
Month”表格的“Jul
2005”超链接,则显示出更详细的信息,通过分析和查看这些统计图表的结果,用户可以清楚地知道Squid代理服务器使用的细节情况,并可以根据情况来
对服务器做出适当地调整和优化。

最后,使用Webalizer还有一个需要注意的问题是:
通常并不需要每个用户都有权限来查看代理服务器的流量情况,否则对于系统来说是不安全的。非法用户为了掩盖自己非法使用代理服务器事实的目的,可以对流量
情况统计的结果进行修改、删除等操作。所以,我们需要使用访问控制策略来对上述分析图表的查看权限进行控制,可以在Apache的主配置文件/etc
/htpd/conf/httpd.conf中进行认证和授权的配置,如下所示:

< Directory “/var/www/html/usage”>

//使用基本认证方式

AuthType Basic

//指定认证域名称

AuthName “admin”

//指定认证口令文件存放的位置

AuthUserFile /var/www/passwd/admin

//授权给认证口令文件中的所有用户

require valid-user

< /Directory>

认证和授权配置成功后,需要创建认证口令文件以及添加用户。

#mkdir /var/www/passwd

#cd /var/www/passwd

#htpasswd -C admin liyang

New password:

Re-type new password:

Adding passwor for user liyang

然后,将口令文件的属主改为apache,并重新启动Apache:

#chown apache.apache admin

#service httpd restart

经过上面的配置后,用户在IE地址栏内输入路径: http://210.77.27.59/usage后,具有认证和授权的用户才能通过用户验证界面,查看Squid代理服务器的流量分析报表信息。

安装II---------------------------------------------

Webalizer 的配置不是很困难,但是对于新手来说,安装起来却十分的麻烦,本文将详细叙述安装过程,帮你一步一步走向成功!

 
 Webalizer 吹牛在一台 200 Mhz 的普通 Pentium 机器上处理一万条记录只需要一秒钟,但是在我的赛扬机器上可没有那么快。大
概是我做了 IP 地址的反向解析的缘故。但是,不论速度如何,我认为 Webalizer 尽管不能和某些商业软件的界面媲美,但是和其他的开源软件比
起来,其统计能力要强得多。

  一. 安装

  Webalizer 需要用到相关的 jpeg, png 和 zlib库,这些库一般不缺省安装,因此初学者会感到难于下手。由于这些库具有相关性,因此下面的安装步骤不能颠倒:

  1、jpeg 库的安装 
  从 http://www.ijg.org/ 下载 jpeg 库,解开压缩文件后,进入到这个目录: 
  ./configure 
  make 
  make install 
  cd .. 
  2、zlib 库的安装 
  从 http://www.info-zip.org/pub/infozip/zlib/ 下载 zlib 库后,

  gunzip zlib*.tar.gz 
  tar -xvpf zlib-1.1.3.tar 
  mv zlib-1.1.3 zlib 
  cd zlib 
  ./configure 
  make 
  make test 
  make install 
  cd ..

3、libpng 库的安装

  从 http://www.libpng.org/ 下载 libpng 后:

  gunzip libpng*.tar.gz 
  tar -xvpf libpng-1.0.10.tar 
  mv libpng-1.0.10 libpng 
  cd libpng 
  cp scripts/makefile.linux makefile 
  make 
  make test 
  make install 
  cd ..

  你还可以从 http://www.freetype.org/download.html 选择下载 freetype 字库,但是这个步骤不是必须的。 
  cd freetype* 
  make setup 
  make 
  make install 
  cd ..

  下面我们就可以开始安装 gd 库了: 
  从 http://www.boutell.com/gd/ g下载 d-1.8.4.tar.gz :

cd gd-1.8.4

  #如果需要使用 Xpm 或者 TrueType 支持,在 make 之前修改 Makefile。

  make

  #很多人会经历找不到 gd.h 的问题,建议你在硬盘上搜索老的 gd.h 版本,然后 make install

  接下来,我们就可以开始安装 Webalizer 了,从 http://www.mrunix.net/webalizer/ 下载后:

  cd webalizer-2.01-06 
  ./configure 
  make 
  make install

  如果不是通过源码编译的方法来安装 Webalizer 的话,你需要备份 /etc/webalizer.conf。

  如果需要使用 DNS 反向解析功能的话,我们还需要安装 Berkeley DB。具体的安装可以参考文档:DNS.README。 
二. 配置:

  一个普通的配置文件为: 
  HideReferrer www.freelamp.com 
  Incremental yes 
  PageType htm* 
  PageType cgi 
  PageType php 
  PageType pl 
  IgnoreHist no 
  CountryGraph yes 
  IndexAlias index.cgi 
  IndexAlias index.php 
  HideReferrer Direct Request 
  HideURL *.gif 
  HideURL *.GIF 
  HideURL *.jpg 
  HideURL *.JPG 
  HideURL *.png 
  HideURL *.PNG 
  GroupURL /cgi-bin/* CGI Scripts 
  GroupURL /images/* Images 
  GroupReferrer yahoo.com/ Yahoo! 
  GroupReferrer excite.com/ Excite 
  GroupReferrer infoseek.com/ InfoSeek 
  GroupReferrer webcrawler.com/ WebCrawler 
  GroupReferrer google.com/ Google 
  GroupReferrer lycos.com/ Lycos 
  GroupReferrer metacrawler.com/ Metacrawler 
  GroupAgent MSIE Internet Exploder 
  GroupAgent Mozilla Netscape 
  GroupShading yes 
  MangleAgents 3

 
 然后我们运行/usr/local/bin/webalizer -Q -c /root
/webalizer.conf -n www.freelamp.com -o /home/freelamp/public_html/log
/ /home/freelamp/logs/freelamp.log 把这句话写入 crontab ,我们就能从http://www.freelamp.com/log/ 看到日志统计结果了。

安装III--------------------------------------------

最近在搞Linux下resin 服务器的日志分析,网上对webalizer这个工具评价挺高的,而且它是免费的,因此我就安装起来.
    需求:
     由于webalizer在做报表时需要用到绘图,因此在安装webalzer前要先装libpng 库,和gd库从http://aleron.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.7-config.tar.gz下载gd-1.2.7.tar.gz后考到一个目录下解压
tar -xfzv libpng-1.2.7.tar.gz
cd  libpng解压所在目录
./configure
make
make install
--------------libpng安装完毕---
现在开始 gd 库
http://www.boutell.com/gd/http/gd-2.0.28.tar.gz  下载gd.2.0.28.tar.gz
tar -xfzv gd-2.0.28.tar.gz
cd gd解压目录
./configure
make
make install
----------------gd库安装完-----
现在开始安装webalizer了

1.从webalizer的官方站点http://www.mrunix.net/webalizer/下载webalizer,当前的最新版本是webalizer-2.01-10-src.tgz。

2.首先解开源代码包:

tar xvzf webalizer-2.01-10-src.tgz

3.在生成的目录中有个lang目录,该目录中保存了各种语言文件,有繁体中文版本和简体中文版.

4.然后进入生成的目录:

./configure
./configure make --with-language=simplified_chinese
make
make install

5.编译成功后,会产生一个webalizer可执行文件,可以将其拷贝到/usr/sbin/目录下:

cp webalizer /usr/sbin/

然后就可以开始配置webalizer了。(配置按自己的实际情况配置,里面有详细的注释)
配置文件默认是/etc/webalizer.conf
测试:
用root 登陆,执行 /etc/rc.d/webalizer
正常时提示:

使用日志文件 /home/smp/resin/logs/access.log (clf)
输出结果到 /home/smp/resin/webapps/itemLog
产生报表的主机名是 '192.168.1.102:8080'
正在读取历史信息文件... webalizer.hist
正在生成报表 ---- 为  十一月 2004
正在生成综合报表
正在保存历史信息文件...
287 条记录 共用时 0.04 秒

为了让webzlizer按计划运行,所有现在我写一个脚本:(在/etc/rc.c/webalizer)
export HOME=/

export PATH=/usr/bin

export LD_LIBRARY_PATH=/usr/local/lib
export NLS_LANG=american_america.ZHS16GBK
export CLASSPATH=/usr/local/lib

export LANG=zh_CN.gb2312i

#!/bin/sh
/usr/bin/webalizer > /etc/rc.d/out.log

注意环境变量一定要配,不然执行不了的
在crontab -e 中添加
59 23 * * * /etc/rc.d/webalizer -c /etc/webalizer.conf
现在大功告成了.