随着网络应用的日益广泛,有大量的数据在网络中传输。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP协议的制订为互联网测量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型网络流量统计分析工具。它的优点是耗用的系统资源小,可以非常直观地显示流量负载,因此有很多外挂的程序也依附在MRTG下,通过SNMP协议从设备得到其流量信息,并将流量负载以包含PNG格式图形的HTML文档的方式显示给用户。
MRTG是一个简单的网络软件,它是利用SNMP协议,去侦测指定的运行有SNMP协议的网络设备。每隔几分钟采样并统计其设备流量,将统计结果绘成统计图,这样用户能很容易地从统计图上观察出实际网络的流量。统计图如下?lt;/DIV>
2 安装配置MRTG
2.1 设置SNMP网络管理协议
为了监控网络流量,需要先设置设备参数,这些设备可能是路由器、交换机…甚至于一台安装了Windows 2000的电脑,只要支持SNMP的traps,都可以作为被监控的对象。
1) Windows 2000服务器的设置
Windows 2000 Server中内含了SNMP网络管理协议,如果你想通过MRTG来监控一台Windows 2000服务器的相关信息,就需要启用该Windows 2000 Server的SNMP协议。
在Windows 2000 Server的控制面板中,选择“添加/删除程序”,点击“添加/删除Windows组件”,双击“管理和监视工具”,选中“简单网络管理协议”,确定后,选择“下一步”,完成安装。
为了提高安全性,需要将系统默认的community(团体名)从public修改为mrtg。
打开控制面板\管理工具\服务,选择SNMP服务,双击进入其属性对话框,点击安全选项卡,就可以编辑团体名称。
2) 交换机和路由器的设置
不同厂家的交换机和路由器设置的过程稍有不同,但方法基本相同。本文以思科2950为例来说明一下交换机和路由器的设置过程。以下命令在CISCO 2950环境里面调试通过:
C:\telnet 您的交换机的IP
User Access Verification
Password:
cisco2950>en
Password:
cisco2950# conf t
cisco2950(config)#snmp-server community mrtg ro
cisco2950(config)#snmp-server trap-source FastEthernet0/1
cisco2950(config)#snmp-server contact 管理者的邮箱地址
cisco2950(config)#snmp-server host 管理机的IP地址 mrtg
cisco2950(config)#snmp-server enable traps
cisco2950(config) #exit
cisco2950# sh run
cisco2950# wr
mrtg在这里是团体名(community);
2.2 在Windows 2000系统上安装Perl
Perl的安装比较简单,目前使用的一般是Active Perl for windows,现在最新的版本是5.8.7,它需要使用者先安装IIS或者APACHE等常用的Web服务器平台。在这里,我就以最常用的IIS作为安装的示例,如果大家需要在APACHE平台里面安装Perl,结果会稍有些不同。下载网址:http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.7.815-MSWin32-x86-211909.msi。安装Perl的过程其实很简单的,首先打开PERL的安装文件,点下一步,然后同意软件使用权的协议,下一个画面会让您确认是否使用[PPM3发送个人信息至ASPN],我们可以跳过。在安装完毕后重新启动计算机即可让Perl生效。
2.3 安装MRTG程序
详细的安装步骤如下:
1) 运行Cmd,进入DOS窗口;
2) c:\>cd\mrtg\bin 进入刚才解压的MRTG目录,准备执行命令;
3) 使用perl mrtg 命令测试MRTG是否正确;
4) 执行命令行perl cfgmaker mrtg@192.168.0.254 --global "WorkDir: c:\wwwroot\mrtg" --output mrtg.cfg (mrtg@192.168.0.254 使用的是您需要获得SNMP数据的设备的community 和它的IP地址;WorkDir: c:\www\mrtg 使用的是正确安装MRTG后,需要使用到的WEB目录,要根据实际情况更改;output mrtg.cfg 则是输出后的配置文件名称;)
2.4 配置管理机
MRTG的管理机可以安装在很多的操作系统上,包括Windows 2000服务器版、Windows 2000专业版,Linux、Unix等等,只要能提供WEB服务来发布监控结果就可以了。本文以Windows 2000 Server为例来探讨管理机的配置过程。
首先在Windows 2000 Server系统中安装配置好IIS(Internet Information Server),运行Cmd,进入DOS窗口;
输入“perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm”后即可生成index.htm文件。
输入“perl mrtg --logging=mrtg.log mrtg.cfg”启动MRTG进行监控。从“mrtg.cfg”中读取配置并启动MRTG程序,同时记录日志信息到“mrtg.log”中。
完成以上设置工作后,我们就可以通过浏览器访问“192.168.0.254”,查看通过被监控设备的各个端口的流量。如果你希望每5分钟刷新一次流量统计,则可以用记事本编辑“mrtg.cfg”,在最后加上“runasdaemon:yes”和“interval:5”(interval后的5表示每5分钟刷新一次,可根据实际情况进行修改)。
2.5 将MRTG配置为系统服务
由于MRTG需要由Perl来编译执行,不能直接添加为系统服务,所以,我们使用Windows 2000 Resource Kit 中的instsrv.exe和srvany.exe这两个程序来帮助我们把MRTG添加为系统服务。
⑴ 加srvany.exe为服务
Instsrv MRTG “C:\mrtg\bin\srvany.exe”
⑵ 置srvany
在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg中,添加一个Parameters子键。再在Parameters子键中添加以下项目:
Application的字串值,内容为C:\perl\bin\perl.exe
AppDirectory的字串值,内容为C:\mrtg\bin\
AppParameters的字串值,内容为mrtg --logging=mrtg.log mrtg.cfg
⑶ 打开 控制面板\管理工具\服务 ,找到MRTG服务,启用该服务,并设置启动类型为自动。这样MRTG即可全天监控网络的流量信息了。
3 结束语
网络的流量监控在日常的网络运行维护当中是一个非常重要的内容,通过在路由器、交换机等设备上配置MRTG,我们可以直观地了解网络中各个部分的带宽使用情况,第一时间发现异常网络流量,有效防范黑客和病毒的攻击。同时,还可以根据各个端口使用带宽的情况对网络带宽进行合理划分,大大提高网络的运行效率。总之,MRTG是一个非常有用的网络流量监控软件,能对网管员的工作提供很大的帮助,它在网络的运行和维护中必定能得到广泛的应用。
参考文献:
1 胡谷雨等.《简单网络管理协议教程》第2版 ,电子工业出版社 ,1999
2 王斌 程明.《基于SNMP协议的网络流量侦测系统设计及实现》.天津理工大学学报 ,2005-6
3 杨洁, 窦伊男 ,雷振明 .《IP网络流量测量的研究与实现》.现代电信科技, 2005-11