Mrtg是一个用来监控服务器网络流量的小软件。可以图形化显示网卡每5分钟(可自定义)、每天、每周、每月、每年的数据吞吐量和速度,并生成html格式的报表。
步骤/方法
图在windows 2003上安装了mrtg,有点罗嗦,所以贴了这篇文章,给第一次使用mrtg的用户更多的参考。
一.服务器网络结构
一般访问量大的网站会有几个服务器共享。比如防火墙、web服务、数据库服务、文件服务会由一台或多台服务器运行,如下图现在我们要在这台服务器上用mrtg监控192.168.0.10/20/30。
其次,在被监控的windows 2003服务器上安装SNMP服务。
Windows 2003本身自带snmp服务,从控制面板-添加和删除程序-添加和删除Windows组件-网络监控工具-简单网络管理协议。
添加snmp服务后,需要设置安全选项,否则控制端将无法连接snmp服务。您可以在“计算机管理-服务”列表中找到“snmp服务”。从服务的属性中,进入,选择Security选项卡,添加接受组的名称,一般添加“public- read-only”,这里我添加“linsaw- read-only”,然后在“接受来自这些主机的snmp包”中添加控制服务器3354192.168.0.10的ip地址
设置安全选项后,在windows防火墙中打开snmp服务端口:udp-161和udp-162,如下图
3.在控制服务器中安装MRTG软件。
Mrtg是用perl编写的脚本程序,所以需要先下载安装ActivePerl。安装过程可以一路“下”。我选择c:\perl作为安装路径。
下载MRTG压缩包:解压到硬盘上的一个目录,比如c:\mrtg_root。
现在,您需要使用以下命令为每台受监控的服务器生成一个配置文件:
c:\ Perl \ bin \ Perl CFG maker linsaw @ 192 . 168 . 0 . 10-global ' work dir:c:\ mrtg _ www '-output mrtg _ 10 . CFG
c:\ Perl \ bin \ Perl CFG maker linsaw @ 192 . 168 . 0 . 11-global ' work dir:c:\ mrtg _ www '-output mrtg _ 11 . CFG
c:\ Perl \ bin \ Perl CFG maker linsaw @ 192 . 168 . 0 . 12-global ' work dir:c:\ mrtg _ www '-output mrtg _ 12 . CFG
命令中的Cfgmaker是mrtg的配置文件生成器,linsaw是刚才“snmp服务”安全设置中接收团队的名称,WorkDir是后面生成报告的位置,- output mrtg_10.cfg是生成配置的文件名。
用记事本打开mrtg_10.cfg等配置文件,并添加:
RunAsDaemon:是的
添加这一行后,监控端可以每5分钟检查一次被监控端,否则每次检查都需要运行一个命令。
检查命令是:
c:\perl\bin\perl mrtg -记录事件日志10 mrtg_10.cfg
其中,mrtg_cfg是刚刚生成的配置文件的名称,eventlog10是被监控的日志文件。名字可以根据自己的需要更改。
监控其他两台服务器的命令是:
c:\perl\bin\perl mrtg -记录事件日志11 mrtg_11.cfg
c:\perl\bin\perl mrtg -记录事件日志12 mrtg_12.cfg
此时,流量监控已经设置完毕。成功操作后,您会在c:\mrtg_www目录中看到一些报告文件,例如:
192.168.0.10_65539.html
192.168.0.11_65538.html
192.168.0.12_65540.html
为了便于远程查看,可以使用iis将c:\mrtg_www目录设为虚拟目录,这样就可以通过浏览器远程查看报表。
此外,如果您不想在再次运行监视器时看到黑色的控制台窗口(以防止它有时意外关闭),也可以使用wperl命令启动监视器,如下所示
start/D c:\ mrtg _ root \ bin c:\ perl \ bin \ wperl mrtg-记录事件日志10 mrtg_10.cfg
start/D c:\ mrtg _ root \ bin c:\ perl \ bin \ wperl mrtg-记录事件日志11 mrtg_11.cfg
start/D c:\ mrtg _ root \ bin c:\ perl \ bin \ wperl mrtg-记录事件日志22 mrtg_12.cfg
最后说说网关的配置。这个例子的网关是用linux构建的。为了让外网访问内网的web和邮件服务,需要用软件(例如balance,http://www.inlab.de/balance.html)做端口转发(NAT)或者tcp端口重定向。使用balance的好处是配置非常简单。只需键入一个命令来指示哪个tcp端口需要被转发到哪台计算机的哪个端口,例如:
/usr/sbin/balance-b 222.222.222.123 80
但在实际使用过程中发现,如果服务器访问量比较大,比如并发连接数达到2000左右(一般在TIME_WAIT状态下会发现5000个以上的tcp连接,一般是下载软件的疯狂连接造成的),balance就会造成崩溃。因此,使用linux的iptables进行nat是可靠的,命令如下:
#!/bin/bash
echo 1/proc/sys/net/IP v4/IP _ forward
iptables-t NAT-A pre routing-p TCP-I eth 2-d 222.222.222.123-d端口80-j DNAT-to-destination 192 . 168 . 0 . 10
iptables-t NAT-A post routing-o eth 2-p TCP-dport 80-j SNAT到源222.222.222.123:2000-20000