在Ubuntu系统上安装Webalizer来分析HTTP流量


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活动。它是相当简单的工具,可以解析网站服务器日志,即便它受到数百万次的访问。这个工具的重要性对系统和网站管理员来说毋容置疑。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3