CISCO 交换机流量监控软件MRTG
CISCO 2950交换机端口流量监控软件MRTG安装要点:MRTG是通过SNMP协议来对许多网络设备进行监测,据说支持市面上绝大多数使用标准SNMP协议的各种硬件网络设备(不支持D-link设备)和各种操作系统,以下是我在近日对其进行安装测试所做的笔记。
一、 前期准备条件:
1、 网上的一些技术资料上说可以在Win2k、xp、2003下安装,我用的试验平台是xp;
2、 安装IIS(后来发现这个不是必要条件,安装它主要是为了把最终生成的网页发布出去,而如果只是本机使用的话,可以直接在IE或其他浏览器中把程序生成的静态网页打开即可);
3、 把XP自带IP防火墙关闭(由于时间有限,没花太多力气钻研各部件的端口,就SNMP协议来说,是使用UDP的161、162端口传输数据);
4、 打开CISCO 2950交换机上的SNMP,很多教材上说只要进行如下设置即可:
- telnet 192.168.101.11 \\连接交换机
- ABC# conf t \\进入特权配置模式
- ABC(config)# snmp-server community public RO \\设置SNMP的团体名为public
- ABC (config)# snmp-server trap-source FastEthernet0/1 \\以Fa0/1端口为监控源,如果不输,将以设备自身的ID作为监控源
- ABC (config)# snmp-server host 192.168.101.114 public \\设置管理机的IP地址为192.168.101.114,并设置团体名public
- ABC (config)# snmp-server enable traps \\启动监控
- ABC #copy run start \\保存设置
我是通过CAN 4.1(Cisco Network Assistant)来设置的,所以由它自动生成的语句比较冗长,摘录关于snmp部分的如下:
- snmp-server engineID local 800000090300000AF48DDD01
- snmp-server community public RO
- snmp-server enable traps snmp authentication warmstart linkdown linkup coldstart
- snmp-server enable traps config
- snmp-server enable traps syslog
- snmp-server enable traps entity
- snmp-server enable traps rtr
- snmp-server enable traps c2900
- snmp-server enable traps vtp
- snmp-server enable traps vlan-membership
- snmp-server enable traps MAC-Notification
- snmp-server enable traps hsrp
- snmp-server enable traps cluster
- snmp-server host 192.168.101.114 public
5、 有资料说在操作系统中还要安装系统组件“管理和监视工具”,我后来发现此组件是用于在操作系统中开启本机snmp后台服务,在实际监控过程中未发现有多大作用,后手动关闭,对生成2950的监测数据没任何影响。后来想用MRTG也生成本机的监控数据,但未获得成功,原因待查,估计是无法对本机进行检测。
#p#
二、 安装过程:
1、 安装perl:
我安装的是5.8.8.819版perl,下载地址为,标准的Win安装过程,安装完后会在系统路径中加入perl的路径和在IIS的应用程序映射中添加进perl的内容(我的电脑右键单击——管理——服务和应用程序——Internet信息服务管理(IIS)——网站右键单击——属性——主目录——配置)。
2、 安装MRTG
从官方网站下载载到最新版。由于MRTG是一个PERL写的程序,不需要安装,直接解压到一目录中即可。
三、 调试过程:
我的所有工作目录为:
- Perl c:\snmp\perl
- MRTG c:\snmp\mrtg
生成网页文件 c:\snmp\mrtgwww
1、 运行cmd,进入DOS状态;
2、 c:\>cd snmp\mrtg\bin 进入刚才解压的MRTG目录;
3、c:\snmp\mrtg\bin>perl cfgmaker public@192.168.101.1 --global "WorkDir: c:\snmp\mrtgwww\2950" --output "c:\snmp\mrtgwww\2950\cisco2950.cfg",生成2950的配置文件;
4、c:\snmp\mrtg\bin>perl mrtg c:\snmp\mrtgwww\2950\cisco2950.cfg,第一次运行会有出错提示,不必理它,连续运行三次,而后就都正常了;
5、打开cisco2950.cfg文件,还需要在“###Global Config Options”的下一行加入一条命令“RunAsDaemon: yes”,这条命令的作用是使MRTG定时(默认为每5分钟)自动去获取一次SNMP的数据及更新网络流量图形;
6、再加入一行“Language: GB2312”,可以得到简体中文的网页内容,不过会有bug;
7、当需要同时监控的设备比较多时或设备上的端口比较多时,将生成多个配置文件,如果一个目录一个目录的查看,会很不方便,所以需要使用indexmaker命令将多个数据收集起来做成一个页面文件里面,命令如下“c:\snmp\mrtg\bin>perl indexmaker --output=c:\snmp\mrtgwww\2950\index.htm c:\snmp\mrtgwww\2950\cisco2950.cfg”;
8、为了能开机就生成记录,可以如下命令做成一个批处理如(mrtg.cmd)放入启动项中,具体内容是:“start /DC:\snmp\mrtg\bin\ wperl mrtg --logging=eventlog c:\snmp\mrtgwww\2950\cisco2950.cfg”;
9、官方网站上还提到了生成系统服务的模式,需要使用两个文件Instsrv.exe和srvany.exe,可以到这个地址下载“http://www.tacktech.com/display.cfm?ttid=197”,建议解压到c:\snmp\mrtg\bin目录下,而后执行命令“instsrv MRTG C:\snmp\mrtg\bin\srvany.exe”。建立一个包含如下内容的注册表文件mrtg.reg:
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
- "Application"="C:\\snmp\\perl\\bin\\wperl.exe"
- "AppParameters"="C:\\snmp\\mrtg\\bin\\mrtg --logging=eventlog c:\snmp\mrtgwww\2950\cisco2950.cfg"
- "AppDirectory"="C:\\snmp\\mrtg\\bin\"
并双击或执行“regedit /s mrtg.reg”命令。
#p#
四、 遗留问题:
1、 汉化有小bug,就是在设备的图例中,单位显示有乱码,本来应为“字节/秒”成了“$1$2/秒”;
2、 还未测试当操作系统开放snmp时的模式的,理论上也可以;
3、 从2950上获得的信息量感觉太少,其实我还很想得到cpu占有率、内存使用率等状态信息,但不知道该如何进行设置和修改,官网上好像也没发现相关的描述;
4、 没有进行snmp服务开启后,对2950系统性能影响的测试。
五、 最终效果图:
1、 图一为首页(2950上只连了一个端口,28号设备其实为VLAN1):
2、 图二端口详情
CISCO交换机流量监控软件MRTG完成。
【编辑推荐】