UNIX/LINUX中使用MRTG自动画虚拟主机流量图

做为一个空间商﹐非常有必要了解每一个虚拟主机用户的流量大小﹐通过文字的表述难以形象﹐生动的表现出来原本变化的数据﹐故我在这里将自己在FreeBSD 5.2环境下﹐监控每个虚拟主机流量的方法写出来﹐供大家参考 。该种方法适合于Unix/Linux环境下的Apache 1.X和Apache 2.X﹐具体实施步骤差不多﹐希望大家举一反三 。我还是希望能用自己罗嗦的方法 , 教会包括菜鸟在内的所有喜欢UNIX/LINUX的朋友 。

我的环境是﹕FreeBSD 5.2 Apache 2.0.48
如果你不会在LINUX环境里面使用 , 发邮件告诉我 , 我再写一篇在LINUX环境里面安装也可以的 , 但我认为两者差不多的 , LINUX或者其他UNIX系统里面 , 最多把ports换成源代码编译而已 , 所以题目我还是坚持使用UNIX/LINUX下安装 , 呵呵~
示例﹕ http://www.onlinecq.com/mrtg/www.onlinecq.com.html

一、安装MRTG绘图软件
cd /usr/ports/net/mrtg
make install 默认情况下即可正常安装 , 不需要其他配置 。

二、安装APACHE 2.0.48

我计划把配置文件放到/usr/local/etc目录里面 。
cd /usr/ports/www/apache2
make WITH_SUEXEC=yes install 在这里安装APACHE 2 有多种方式 , 我们可以使用: make show-options 显示安装时的可选项
make show-modules 显示需要安装的模块【UNIX/LINUX中使用MRTG自动画虚拟主机流量图】当然 , 安装时可以选择的余地很大的 , 如果你需要特别提升APACHE 2 的性能 , 可以选择不同的安装选项试一下 , 我曾经连续花了一天时间安装了十几次APACHE 2 , 以测试不同选项搭配后的效果 , >_<
听着硬盘“哗啦哗啦”一阵狂响后 , 系统会提示你安装成功 。

三、安装MOD_WATCH

首先说明 , 因为apache 和1.X和2.X , 那么我们的mod_watch模块也有mod_watch和mod_watch4两种 , 前一种对应apache 1.X , 后一种对应apache 2.X 。因为我是安装的APACHE 2.X , 故应该安装mod_watch4 。如果你是APACHE 1.X , 请直接更改一下即可使用 。cd /usr/ports/www/mod_watch4
make install 安装成功后 , 接下来是最重要的配置工作 , 就是要怎么才能让系统认得APACHE 2的流量 , 并且画出我们的实时流量 , 请接着看:
现在我们修改一下httpd.conf文件
vi /usr/local/etc/apache2/httpd.conf 加入

# Allows the URL used to query virtual host data:
#
# http://www.snert.com/watch-info
#

SetHandler watch-info


# Intended for debugging and analysis of shared memory
# hash table and weenIE files:
#
# http://www.snert.com/watch-table
#

SetHandler watch-table

# 注意 , 为了安全 , 请关闭watch-table选项 , 或者加以IP限制 , 以免别人查看你SERVER所放的站点资源 , 引起不必要的麻烦 。
Order deny,allow
Deny from all
Allow from 127.0.0.1
你可以把127.0.0.1换成其他你信任的IP或者IP段 , 域名等~

设置完成后 , 请使用
/usr/local/sbin/apachectl configtest 检查httpd.conf文件是否有错
如果显示系统正常 , 再使用下面的命令重新启动apache
/usr/local/sbin/apachectl restart 上面的配置成功后 , 你就可以从某个虚拟主机的watch-info文件读出某些数据了 , 比如我的:
http://freebsd.onlinecq.com/watch-info

freebsd.onlinecq.com 2 760 858 2 1 1 0.000 675269920 3217025432

这些数据就是供MRTG画流量图的 , 以达到实时监控的目的!
OK , 请在httpd.conf文件里面配置好虚拟主机 , 然后用下面的命令生成相应的文件:
apache2mrtg.pl /usr/local/etc/apache2/httpd.conf 屏幕显示如下:
freebsd# apache2mrtg.pl /usr/local/etc/apache2/httpd.conf
Title[freebsd.onlinecq.com]: freebsd.onlinecq.com Data Traffic

推荐阅读