随着网络应用的日益广泛,有大量的数据在网络中传输。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP协议的制订 为互联网测量提供了有力支持。MRTG(MultiRouter Traffic Grapher, MRTG)就是基于SNMP的典型网络流量统计分析工具。它的优点是耗用的系统资源小,可以非常直观地显示流量负载,因此有很多外挂的程序也依附在 MRTG下,通过SNMP协议从设备得到其流量信息,并将流量负载以包含PNG格式图形的HTML文档的方式显示给用户。



1    MRTG 工作原理



        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即可全天监控网络的流量信息了。


转载于:https://blog.51cto.com/jasonliping/555473