随笔-20  评论-13  文章-23  trackbacks-0
使用MRTG监控路由、交换设备

 一名真正合格的网管所做的工作不应该仅仅局限在网络故障发生后,亡羊补牢的工作虽然不算迟,但损失的产生是不可避免的。那么,如何有效地监视网络状态,能在第一时间发现网络故障,在网络还没出现问题时进行预防,并合理地划分带宽资源呢?对网络流量进行监控就可以有效地解决以上难题。现在笔者要为大家介绍的就是网络流量监控领域的行家——MRTG。

  本文中,笔者向大家介绍如何通过MRTG对路由器或三层交换机进行监控。MRTG会利用SNMP协议(简单网络管理协议)监控、管理通过路由、交换设备的各个端口的流量。当然,笔者还会指导大家安装MRTG并在设备上启用SNMP协议以支持MRTG。

  小知识 流量监控

  大家都知道数据包形成数据流,就好比水流一样,所以我们对带宽采用流量这个名词来定义,及时了解网络流量对于排除网络故障能够起到很大的作用。很多公司都拥有路由、交换设备,这些设备担负着实现公司网络连接的重任,所以,了解通过路由、交换设备的各个端口的流量是非常重要的,只有对流量进行监控才能有效地管理网络带宽,提高企业网络的工作效率。

  MRTG小档案

  软件大小:1558 KB

  软件类型:免费软件

  运行平台:Window 98/NT/2000/XP/2003

  下载地址:http://www2.pcdog.com/down4/mrtg-2.10.0pre7.zip

  安装MRTG

  不管我们要对何种设备进行监控,都需要找到一台操作系统为Windows 2000的计算机(计算机A),并为它安装MRTG,用来接收数据流量。在Windows系统上安装MRTG需要Perl的支持,所以我们需要先安装Perl插件。此外,由于数据流量将以网页的形式体现出来,所以需要在计算机A上安装IIS服务(由于篇幅限制,IIS的安装就不作介绍了)。

  Step1:Perl的安装比较简单,目前使用的一般是Active Perl for Windows,我们可以到http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.0.80 5-MSWin32-x86.msi下载。

  Step2:进行安装时,如果遇到“是否使用PPM3发送个人信息至ASPN”,我们可以跳过。在安装完毕后重新启动计算机即可让Perl生效。

  Step3:安装MRTG程序。由于MRTG是一个用Perl编写的程序,所以不需要安装,下载后直接解压即可。我们将它解压到“C:\mrtg”目录。现在我们就完成了安装工作。

  小知识Perl

  和很多用JAVA编写的程序在使用时需要安装JDK一样,MRTG需要Perl程序的支持,所以在使用MRTG之前一定要在计算机A上安装Perl。Perl和JAVA一样也是一种语言,不过Perl主要在Linux和UNIX系统下使用,由于本例是在Windows下安装MRTG,而默认情况下Perl组件没有安装在Windows操作系统中,所以我们需要为计算机A安装相应的Perl语言库,就如同我们运行VB程序有时需要安装VB语言库一样。

  监控Cisco设备

  虽然我们在计算机A上安装了MRTG,但被监控的设备没有启用SNMP协议而且没有配置接受SNMP的目的地址,因此我们还需要在被监控设备上进行相应的配置。现在,让我们来看看如何使用计算机A监视通过Cisco 6509交换机各个端口的流量,以便数据发生异常时即时采取防护措施。

  Cisco的高端产品6509交换机作为被监视设备,端口IP地址为10.91.30.1。选择安装了MRTG的计算机(计算机A)作为监视设备,IP地址为10.91.30.45。

  小知识SNMP

  SNMP也叫简单网络管理协议,它用于记录网络流量信息,不管是网管软件还是流量监控软件都需要SNMP协议的支持。由于本例需要监控通过路由、交换设备各个端口的流量,所以需要在路由、交换设备上启用SNMP协议,并指定接收SNMP记录信息的目的地址。通过这些设置,路由、交换设备就可以对通过端口的数据信息进行记录并发送到指定的目的地。

  1.Cisco 6509上的配置

  下面我们需要进入6509将SNMP协议启动并指定数据接收目的地。

  Step1:进入计算机A的命令提示符窗口,输入“telnet 10.91.30.1”登录6509设备。

  Step2:输入正确的密码后,进入6509配置模式,接着输入以下指令。

  snmp-server community softer RO

  \\设置SNMP的团体名为softer。

  snmp-server trap-source FastEthernet0/1

  \\以Fa0/1端口为监控源,如果不输入此行,将以设备自身的ROUTER ID作为监控源。

  snmp-server contact softer@163.com

  \\设置管理者的邮箱地址。

  snmp-server host 10.91.30.45 softer

  \\设置管理机的IP地址为10.91.30.45(计算机A的IP地址),并设置团体名(softer)。

  snmp-server enable traps

  \\启动监控。

  Step3:保存设置并退出后即可完成在6509设备上的所有配置。

  2.计算机A上的配置

  现在我们就需要在计算机A上设置MRTG让它接收6509交换机的SNMP信息,并将这些信息制作成网页的形式进行发布。在计算机A上配置好IIS的发布目录并正确安装Perl和MRTG程序后,重新启动计算机并进行如下操作。

  Step1:打开计算机A的命令提示符窗口,然后进入C:\mrtg\bin目录。

  Step2:输入“perl cfgmaker softer@10.91.30.1 --global "WorkDir: c:\www\ mrtg" --output mrtg.cfg”。其中,“softer”是团体名,“10.91.30.1”是6509设备上的端口IP地址。

  Step3:输入“perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm”后即可生成index.htm文件。

  Step4:输入“perl mrtg -logging=mrtg.log mrtg.cfg”启动MRTG进行监控。从“mrtg.cfg”中读取配置并启动MRTG程序,同时记录日志信息到“mrtg.log”中。

  完成以上设置工作后,我们就可以通过浏览器访问“10.91.30.45”,查看通过6509的各个端口的流量。如果你希望每5分钟刷新一次流量统计,则可以用记事本编辑“mrtg.cfg”,在最后加上“runasdaemon:yes”和“interval:5”(interval后的5表示每5分钟刷新一次,可根据实际情况进行修改)。

  提示:在访问10.91.30.45查看流量时,一定要注意输入的地址应和IIS中配置的地址一致,同时还要注意虚拟目录的问题,只有输入正确的地址才能正常显示流量图。

监控华为设备

  对于华为设备的监控基本上和对Cisco设备进行监控一样,只是在路由器配置命令上有些区别,而计算机A的配置步骤是一样的。在此,笔者只给出在华为2621上启用SNMP协议并指定数据接收目的地的指令。

  snmp-agent community read softer

  \\设置团体名为softer,属性为只读。

  snmp-agent sys-info contact softer@163.com

  \\设置管理者的邮箱地址。

  snmp-agent target-host trap address 10.91.30.45 securityname softer

  \\设置管理机的IP地址为10.91.30. 45,而且“securityname”(即团体名)要与上面的设置一致。

  snmp trap enable

  \\启动监控。

  监控效果

  如图所示,大家可以从图中看到我们对核心设备6509实施的“24×7”小时的流量监控,该软件对所有已经使用的端口(即连有客户机的端口)都进行了实时监控,并绘制出了准确的图表,非常直观。如果想看到更多的分时、分段的图表,还可以直接点击流量图进一步查看。另外,我们还可利用网页制作工具对生成的网页进行修饰、编辑,制作出美观大方的专业的流量监视控制台。

  通过在路由器或交换机上配置MRTG我们可以直观地了解网络中各个部分的带宽使用情况,第一时间发现异常情况,有效防范黑客和病毒的攻击。同时,还可以根据各个端口使用带宽的情况对网络带宽进行合理划分。

  下一篇文章中我们将为大家进一步介绍如何提高MRTG的安全性以及制作适合自己。

上篇文章我们介绍了如何通过MRTG对路由、交换设备的各个端口的流量进行监控并以网页的形式显示出来。本文中,大家将学到如何构建一个中文流量监控网页同时监控多个设备,如将三个路由设备的端口流量用一个页面显示出来,并提供相应的文字说明。同时,我们还会指导大家配置一个安全、可靠的MRTG流量监控系统。

  强大的监控中心

  indexmaker是MRTG自带的网页制作工具,利用它可以把MRTG生成的CFG文件制作成网页格式的文件,使我们能使用浏览器查看流量信息,而且我们还可用它实现同时监视多台设备。同时,我们还可对index.htm进行编辑,让MRTG生成的网页将设备名等注释信息显示为中文。

  1.成立监控中心

  通过“perl indexmaker mrtg.cfg>c:\wwwroot\mrtg\index.htm”只能将一个CFG文件的配置信息写入index.htm文件,而且在实际情况中一个设备只能生成一个CFG文件,默认状态下一个监控页面只能对应一个CFG文件。因此,我们可以成立一个监控中心进行统一“监控”。

  例如,我们要把1.cfg、2.cfg、3.cfg这三个CFG文件的配置信息都写入同一个index.htm网页文件,通过打开index.htm实现同时监视3个设备的流量,可按以下方法进行修改、设置。

  提示:CFG文件就是保存设备各个端口信息的文件。MRTG就是通过读取这个文件将流量监控得到的数据制作成网页的,如果没有这个CFG文件我们就不会知道显示的流量图表对应的是哪个端口。

  Step1:登录监控机,进入命令行模式。

  Step2:进入MRTG安装目录下的bin目录。

  Step3:输入以下指令:

  perl indexmaker 1.cfg>c:\wwwroot\mrtg\index.htm

  perl indexmaker 2.cfg>>c:\wwwroot\mrtg\index.htm

  perl indexmaker 3.cfg>>c:\wwwroot\mrtg\index.htm

  现在,我们就可利用index.htm文件同时监控通过三台设备的流量了,一个真正的监控中心打造成功。

.加强中文支持

  如果对生成的网页不进行修改则将显示英文注释,而且注释信息为端口号,非常不直观。我们可以把它们修改为自己熟悉的中文名,方便浏览。

  没有经过修改的流量监控图显示的都是英文注释信息。如果我们希望在页面中显示中文注释信息,就需要对index.htm网页进行编辑。

  例如,68端口对应的中文名是“外网出口”,可用记事本打开index.htm,通过查找Traffic Analysis for 68将它替换为中文名“外网出口”即可。完成所有中文注释的编写工作并进行保存后即可浏览index.htm,这时你会发现所有的注释信息都变为中文的了(图1)。


图1

  上面所介绍的只是一个最简单的中文注释信息的编辑工作,如果你使用Dreamweaver进行修改的话还可以制作出更加华丽的监控中心。

自动开启MRTG

  每次启动MRTG都要进入命令行模式输入“perl mrtg -logging=public.log public.cfg”指令,用于启动MRTG读取public.cfg文件中的端口信息然后对设备进行监视。这种方法对于需要24小时监控的设备不太实用。一旦系统因故障重新启动,极有可能造成MRTG不能运行,使监控出现中断。

  方法1:自动登录系统启动MRTG程序

  该方法就是在Windows 2000中设置自动登录系统,然后将“mrtg.bat”添加到启动组中。

  mrtg.bat的内容如下(假设MRTG安装在C:\mrtg目录下,配置文件为public.cfg):

  c:

  cd mrtg

  cd bin

  perl mrtg -logging=public.log public.cfg

  方法2:开机脚本法

  将mrtg.bat文件添加到系统开机脚本中即可使它随系统启动而运行,从而自动启动MRTG程序。

  进入组策略窗口,在“启动属性”对话框中添加mrtg.bat即可。

  提示:该方法有一个问题,那就是由于mrtg.bat文件需要实时监控,这样会造成监控机登录时停留在“运行开机脚本”上,而不能正常登录系统。不过我们仍然可以通过其他计算机使用浏览器访问监控机生成的网页,并随时对流量进行查看。要取消开机脚本,可进入安全模式将mrtg.bat从开机脚本中删除。

  方法3:系统服务法

  把应用程序添加为服务需要Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行(这两个软件都包含在Windows 2000 Resource Kit里)。假设Perl安装在C:\perl目录,MRTG安装在C:\mrtg目录。

  Step1:将Instsrv.exe和Srvany.exe复制到mrtg安装目录的bin目录下(如C:\mrtg\bin)。

  Step2:进入命令行模式,在mrtg\bin目录下执行“instsrv mrtg “c:\mrtg\bin\srvany.exe””命令使MRTG成为系统服务。

  Step3:配置Srvany,在注册表hkey_lo cal_machine\system\currentcontrolset\servic es\mrtg中添加一个parameters项,并在parameters子键中添加以下项目:

  application 内容为C:\perl\bin\perl.exe

  appdirectory 内容为C:\mrtg\bin\

  appparameters 内容为mrtg -logging=public.log public.cfg

Step4:进入“服务”窗口,找到mrtg服务,将它设置为自动启动后(图2),MRTG即可全天候监视网络流量,即使系统重新启动后程序也将以服务的形式进行加载。


图2

  MRTG的安全

  最后我们再来谈谈使用MRTG监控流量的安全性问题。

  由于MRTG使用了SNMP协议,而SNMP协议发展至今还不是很完善,在一些方面还存在着或多或少的安全问题,所以保证安全和流量监控是“熊掌与鱼”的关系,究竟如何取舍还请各位读者自己决定。

  不过,既然我们选择了使用MRTG,也应该在安全上采取一些措施。采用系统默认的认证方式会增加很多危险,所以我们应该修改默认设置,将认证名PUBLIC修改为其他名称,这样才能最大限度地防止黑客的攻击。当然,最好的方法还是使用认证,建议大家在路由器、交换机上使用SNMP V3版本,因为该版本更加安全。

  经过这两篇文章的说明,相信大家对MRTG已经非常了解了。合理使用MRTG对流量进行监控会给你的工作带来很大帮助。对于一些中小型企业来说,如果没有专门的经费购买流量监视设备和监控系统,完全可以采用这个免费的MRTG进行流量监视。不用烦琐的配置,你也能完成一些依靠专业设备才能完成的工作。

posted on 2006-04-06 17:36 海之蓝 阅读(360) 评论(0)  编辑 收藏 引用 所属分类: 网络分析和监控
只有注册用户登录后才能发表评论。