Webalizer是一款免费的应用程序,可用于分析网站服务器日志。这样一来,你就能更清楚地了解你的网站或服务器收到的流量大校它是一种使用广泛的开源工具,提供了非常详细的报告。这个工具的使用和安装很简单,cPanel之类的许多高级托管控制面板使用该工具,为用户提供流量方面的详细信息。
功能特性
这款工具的功能很强大,足以解析不同格式的访问日志。它还可以从压缩文件中获取信息,不需要先解压缩文件。你从命令行和图形化用户界面都可以使用该工具,以你觉得方便的方式来查看报告。
它支持多种语言,开发团队正在努力添加支持另外许多语言的功能。它能够解析任何大小或复杂程度的日志文件。它同时支持IPV4和IPV6,还有原生的地理位置服务和DNS服务器软件。
在Ubuntu上安装和配置Webalizer
Webalizer需要Apache网站服务器软件安装在Linux系统上,因为它要读取和解析Apache错误日志,从而分析流量。如果Apache之前没有安装在你的系统上,你试图看一看webalizer是如何工作的,那么启动终端,运行下面这个命令,即可将Apache安装在你的Ubuntu上:
复制代码代码如下:sudo apt-get install apache
一旦Apache安装完毕,运行下面这个命令来启动它。
复制代码代码如下:sudo /etc/init.d/apache2 start
现在启动你的浏览器,装入http://localhost,核实http在正常运行,它应该会显示诸如此类的页面:
Apache默认页面
注意:默认情况下,Apache的文档根目录是/var/www/html/,所以你需要把脚本放在这个位置,那样Apache网站服务器就能提供这些脚本。
由于Apache已安装在我们的Ubuntu系统上并运行起来,现在运行下面这个命令,安装webalizer。
复制代码代码如下:sudo apt-get install webalizer
恭喜你,webalizer已安装完毕。现在我们需要配置它。
配置webalizer
你可能也注意到,在安装过程中,webalizer目录已经创建在/var/www/路径上,我们需要把它移到/var/www/html,那样Apache才能顺利该目录。在终端上运行下面这个命令来完成这项任务。
复制代码代码如下:sudo mv /var/www/webalizer /var/www/html/
现在编辑Webalizer配置文件,为那里的Apache访问日志纠正路径。运行下面这个命令,即可使用Gedit编辑工具来编辑其配置文件。
复制代码代码如下:sudo gedit /etc/webalizer/webalizer.conf
务必要确保Apache访问日志文件路径在该文件中正确无误(下列屏幕截图中高亮显示的部分)。如果路径这一项出错,就纠正路径,并保存文件。
好了,我们离成功只有一步之遥了。
测试Webalizer配置
运行下面这个命令,核实webalizer已成功安装和配置。
复制代码代码如下:sudo webalizer
成功的webalizer配置应该会有下列屏幕截图中所示的输出。
测试webalizer
启动浏览器,装入http://localhost/webalizer/ URL。它应该会装入webalizer页面,并且附有系统当前HTTP活动的报告。
可以执行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)
假设,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
说明:
-F clf 指明我们的web日志格式为标准的一般日志文件格式(Common Logfile Format)
-p 指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。
-n “ “ 指定服务器主机名为空,这样输出结果会美观一些。
-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服务。
结束语
Webalizer是在微软Windows、Linux和Mac OS上广泛使用的一种工具,可用于分析系统上的Web活动。它是相当简单的工具,可以解析网站服务器日志,即便它受到数百万次的访问。这个工具的重要性对系统和网站管理员来说毋容置疑。