在WINDOWS下安装MRTG全攻略
网络流量监控
文:重庆/樊礼 (cqfanli@163.com)
如需转载,请保持文档完整并注明出处( http://www.cnitexam.com )
代序
在一个网络中,作为网络工程师或者网络管理员,需要随时了解网络的各种状态,以判断网络是否处于健康状态或者随时了解网络的流量、每个路由器的流量、每个交换机端口的流量…,以供年度报告时向上级领导提供详实的数据及图形报告。在这里,我先把自己有关如何获取网络流量的方法向大家讲解一下,如果有必要,您可以立即动手,自己做一个公司的网络流量监控图出来。网络流量的监控需要涉及到SNMP、PERL、MRTG和一点网页的相关知识,现在我就STEP BY STEP给大家讲解怎么具体实施。我的水平有限,如有错误或者更好的解决办法,还恳请大家提出,谢谢!
STEP BY STEP教您安装PERL
Perl的安装比较简单了,目前使用的一般是Active Perl for windows,现在最新的版本是5.8.0,它需要使用者先安装IIS或者APACHE等常用的WEB服务器平台。在这里,我就以最常用的IIS作为安装的示例,如果大家需要在APACHE平台里面安装PERL,结果会稍有些不同.
Perl 适用于五花八门的各种作业平台, 包括所有已知的 UNIX/Linux
及微软的作业系统, 以及足够支持 POSIX 的下列平台: BeOS, Cygwin, Netware,MPE/iX, OS/2, QNX, VMS, VOS, 以及 z/OS. 麦金塔 MacOS Classic 的用户也可以在http://dev.macperl.org/ 下载专属的移植版本.
在本例子中,我们以ActivePerl-5.6.1作为安装示例教大家怎么安装,Perl For WINDOWS 版本是msi的安装包,一般的情况如ActivePerl-5.6.1.633-MSWin32-x86.msi ,大家可以去http://downloads.activestate.com/Ac...MSWin32-x86.msi 下载最新版本的ActivePerl。
安装Perl的过程很简单的,但还是要讲解一下:
我现在的环境是WINDOWS 2000 SERVER 英文版+PACK3 ,IIS5.0平台。
1、 打开Perl的安装文件 ,点下一步,
2、 没得选择,只有同意协议才能下一步。
3、 在这里千万要注意了,系统默认是安装在 Perl 目录里面,但为了我们以后使用程序的方便,一定要记得修改为 usr 目录,盘符一般应和web的根目录所在的盘一致,结果如下:
4、 下一个画面会让您确认是否使用[PPM3发送个人信息至ASPN],还是省着点儿,不要选它,直接按下一步。
5、 这里可以全部选择上,下一步。
6、 提示准备好了开始安装了,下一步。
7、 开始安装
8、 硬盘一阵狂响之后,系统就安装成功了!大概在等几分钟吧
9、 安装Perl 到此结束,是不是超级简单。
Perl安装好之后,您可以打开 [Internet Information Services]->[Default WebSite]->[Properties]->[Home Directory]->[Configuration]看到如下的画面
看到其中有pl,plx,就表示安装成功了,其他.cgi的是我自己手工加上去的,方法是点击其他的[Add…]
在出现的对话框中输入如图所示的字符串即可。
然后我们可以测试一下安装的结果,一般使用所谓的CGI探针,可以在网上找到。出现如上图所示的内容,就表示我们的PERL安装配置成功,可以进入下一步学习了。
STEP BY STEP教您设置SNMP
我们将PERL安装好后,要先设置一下您需要监控流量的设备,它可能是路由器、交换机…甚至于一台安装了WIN2K的电脑。只要其支持SNMP的traps,都可以使用来作用被监控的对象。我在这里面以一台CISCO 2950交换机和华为2600路由器为例给大家介绍,因为涉及到IOS版本和其他不确定因素,在实际操作中,希望大家灵活运用。当然,下面的例子是我亲手调试通过的,您只需要改变一下相关名称,就可以正常使用了。
为了方便大家阅读,我简单的解释一下:在设置community 字串时,不要使用默认的public,因为它无容易被某些黑客监听,或者出现安全漏洞,可以选择自己认为有意义的字符串;host是接收traps的主机IP名字,可以根据您的实际需要调整。
以下命令在CISCO 2950环境里面调试通过:
C: elnet 您的交换机的IP
User Access Verification
Password:
TNKSW>en
Password:
TNKSW# conf t
TNKSW(config)# nmp-server community chinatnk RO
TNKSW(config)# snmp-server trap-source FastEthernet0/1
TNKSW(config)# snmp-server contact cqfanli@163.com
TNKSW(config)# snmp-server host 192.168.0.6 chinatnk
TNKSW(config)# snmp-server enable traps
TNKSW# sh run
TNKSW# wr
(以下为部份摘录show run命令)
……
……
可以看到,到此我们的交换机的SNMP已经正常工作了,当然,最重要的是别忘了保存呀,要不然就前功尽弃了,呵呵…
再看看华为2600路由器的配置,其实也差不多的,不过华为的产品好象几个命令的CISCO有些不一样,^_^
C: elnet 您的交换机的IP
User Access Verification
Password:
qjrouter> en
Password:
qjrouter# conf (华为产品不带terminal参数,*_*)
qjrouter(config)#snmp-server ?
community Enable SNMP ; set community string
contact Text for mib object sysContact
enable Enable SNMP Traps
host Specify hosts to receive SNMP TRAPs
location Text for mib object sysLocation
trap-authentication Send TRAP on receipt of incorrect community string
qjrouter(config)#snmp-server enable traps
qjrouter(config)#snmp-server contact cqfanli@163.com
qjrouter(config)#snmp-server location chinatnk
qjrouter(config)#snmp-server community ?
ro Read-only access with this community string
rw Read-Write access with this community string
qjrouter(config)#snmp-server community ro chinatnk
qjrouter(config)#
qjrouter#wr
qjrouter#sh ru
(以下为部份摘录show run命令)
……
……
友情提示:一定要保存,不要忘记了,^_^
STEP BY STEP教您安装MRTG
我们首先要从Internet上面下载最新的MRTG回来,MRTG的官方网址是:http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ MRTG的中国镜象网址是:http://mrtg.openunion.org/ MRTG的下载网址是:http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/ ,现在最新的版本是:mrtg-2.9.27.zip 如果您使用的是LINUX或者UNIX系统,可以直接下载mrtg-2.9.27.tar.gz 。软件下载回来后,我们要先将其解压。由于MRTG是一个PERL写的程序,不需要安装,稍后有些安装过程需要在DOS里面完成,所以建议解压的路径为C:MRTG。
下面给出详细的安装步骤:
1、 运行cmd,进入DOS状态;
2、 c:>cdmrtgin 进入刚才解压的MRTG目录,准备执行命令;
3、 使用perl mrtg 命令测试MRTG是否正确;
4、 执行命令行perl cfgmaker chinatnk@192.168.0.254 --global "WorkDir: c:wwwmrtg" --output mrtg.cfg
这一行命令我要解释一下:
chinatnk@192.168.0.254 使用的是您需要获得SNMP数据的设备的community 和它的IP地址;
WorkDir: c:wwwmrtg 使用的是正确安装MRTG后,需要使用到的WEB目录,要根据实际情况更改;
output mrtg.cfg 则是输出后的配置文件名称;
改好了之后按一下回车,系统就开始执行配置了。由于我是先使用的是交换机来作为的SNMP源,上面命令执行后,它会绑定24个端口,有一些信息显示出来,而路由器上没有那么多需要绑定的端口,所以信息量会稍微少一些。
此一步骤正常执行完后,系统将在MRTG的目录下生成指定的mrtg.cfg文件,我们下一步要做的就是修改MRTG文件,使之符合我们的要求。
有的设备不支持SNMP协议,在这里将会出现错误的提示信息,请各位朋友注意一下。
注意,如果您是需要同时监控多个设备的流量,则需要修改output 参数后面的配置文件名,此例中是mrtg.cfg。
详细资料如下:
C:mrtgin>perl cfgmaker chinatnk@192.168.0.4 --global "WorkDir: e:webrootmrt
g" --output mrtg4.cfg
--base: Get Device Info on chinatnk@192.168.0.4:
--base: Vendor Id: cisco
--base: Populating confcache
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/1 --> 1
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/2 --> 2
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/3 --> 3
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/4 --> 4
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/5 --> 5
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/6 --> 6
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/7 --> 7
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/8 --> 8
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/9 --> 9
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/10 --> 10
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/11 --> 11
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/12 --> 12
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/13 --> 13
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/14 --> 14
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/15 --> 15
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/16 --> 16
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/17 --> 17
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/18 --> 18
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/19 --> 19
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/20 --> 20
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/21 --> 21
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/22 --> 22
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/23 --> 23
--snpo: confcache chinatnk@192.168.0.4: Name Fa0/24 --> 24
--snpo: confcache chinatnk@192.168.0.4: Name Nu0 --> 25
--snpo: confcache chinatnk@192.168.0.4: Name Vl1 --> 26
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/1 --> 1
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/2 --> 2
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/3 --> 3
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/4 --> 4
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/5 --> 5
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/6 --> 6
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/7 --> 7
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/8 --> 8
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/9 --> 9
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/10 --> 10
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/11 --> 11
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/12 --> 12
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/13 --> 13
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/14 --> 14
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/15 --> 15
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/16 --> 16
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/17 --> 17
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/18 --> 18
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/19 --> 19
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/20 --> 20
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/21 --> 21
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/22 --> 22
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/23 --> 23
--snpo: confcache chinatnk@192.168.0.4: Descr FastEthernet0/24 --> 24
--snpo: confcache chinatnk@192.168.0.4: Descr Null0 --> 25
--snpo: confcache chinatnk@192.168.0.4: Descr Vlan1 --> 26
--snpo: confcache chinatnk@192.168.0.4: Ip 192.168.0.4 --> 26
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 1
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 2 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 3 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 4 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 5 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 6 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 7 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 8 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 9 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 10 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 11 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 12 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 13 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 14 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 15 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 16 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 17 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 18 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 19 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 20 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 21 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 22 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 23 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 6 --> 24 (duplicate)
--snpo: confcache chinatnk@192.168.0.4: Type 1 --> 25
--snpo: confcache chinatnk@192.168.0.4: Type 53 --> 26
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-81 --> 1
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-82 --> 2
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-83 --> 3
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-84 --> 4
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-85 --> 5
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-86 --> 6
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-87 --> 7
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-88 --> 8
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-89 --> 9
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8a --> 10
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8b --> 11
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8c --> 12
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8d --> 13
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8e --> 14
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-8f --> 15
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-90 --> 16
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-91 --> 17
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-92 --> 18
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-93 --> 19
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-94 --> 20
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-95 --> 21
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-96 --> 22
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-97 --> 23
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-98 --> 24
--snpo: confcache chinatnk@192.168.0.4: Eth --> 25
--snpo: confcache chinatnk@192.168.0.4: Eth 00-0b-be-b2-b8-80 --> 26
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifAlias
--base: Walking ifSpeed
--base: Writing mrtg4.cfg
C:mrtgin>perl mrtg mrtg4.cfg
C:mrtgin>
C:mrtgin>perl cfgmaker chinatnk@192.168.0.254 --global "WorkDir: e:webrootm
rtg" --output mrtg5.cfg
--base: Get Device Info on chinatnk@192.168.0.254:
--base: Vendor Id:
--base: Populating confcache
--snpo: confcache chinatnk@192.168.0.254: Descr Ethernet0 --> 1
--snpo: confcache chinatnk@192.168.0.254: Descr Serial0 --> 2
--snpo: confcache chinatnk@192.168.0.254: Descr Bri0 --> 3
--snpo: confcache chinatnk@192.168.0.254: Descr LoopBack0 --> 4
--snpo: confcache chinatnk@192.168.0.254: Ip 127.0.0.1 --> 4
--snpo: confcache chinatnk@192.168.0.254: Ip 192.168.0.254 --> 1
--snpo: confcache chinatnk@192.168.0.254: Ip 202.104.141.177 --> 1
--snpo: confcache chinatnk@192.168.0.254: Type 6 --> 1
--snpo: confcache chinatnk@192.168.0.254: Type 23 --> 2
--snpo: confcache chinatnk@192.168.0.254: Type 23 --> 3 (duplicate)
--snpo: confcache chinatnk@192.168.0.254: Type 24 --> 4
--snpo: confcache chinatnk@192.168.0.254: Eth 00-e0-fc-06-d4-21 --> 1
--snpo: confcache chinatnk@192.168.0.254: Eth 00-00-00-00-00-00 --> 2
--snpo: confcache chinatnk@192.168.0.254: Eth 00-00-00-00-00-00 --> 3 (duplicate
)
--snpo: confcache chinatnk@192.168.0.254: Eth 00-00-00-00-00-00 --> 4 (duplicate
)
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifSpeed
--base: Writing mrtg5.cfg
C:mrtgin>perl mrtg mrtg5.cfg
C:mrtgin>
5、 开始生成流量图及配置文件
6、
C:mrtgin>perl mrtg mrtg.cfg
命令成功执行完成后,将会在我们前一个命令所指定的WEB目录里面生成以IP+端口命名的网页和一些png图片,这些图片就是网络当时的流量图。我们可以直接打开这个网页检查一下,看是否正常。刚开始生成后很多都是空白的,需要让它自动运行一段时间后才可以有图形表现出来。
7、 要使MRTG可以随时得到最新的流量图,我们还需要修改一下配置脚本,主要是刚才output参数所带的文件名mrtg.cfg,使用文本编辑器打开它。
文件头部已经说明了在Windows系统里面或者在UNIX系统里面的不同配置方法,现在因为是新版的MRTG,已经自动在尾部添加了工作目录,不需要我们再手工编辑。
为了使网络流量图可以每5分钟自动更新一次,我们还需要在
###Global Config Options的下一行加入一条命令:
RunAsDaemon: yes
这条命令的作用是使MRTG每5分钟自动去获取一次SNMP的数据及更新网络流量图形。
保存文件,退出。
8、 当我们需要同时监控的设备多于一个时或者设备的接口多于一个时,将会涉及到生成了多个配置文件,这样查看起来比较困难,这时我们需要使用indexmaker命令将多个数据收集起来做成一个文件里面。
执行如下命令:
C:MRTGBIN> perl indexmaker --output=index.htm mrtg.cfg
此时,系统将会自动生成index.htm在我们指定的WEB目录里面,我们现在可以打开网页文件来查看是否正常了。
9、 为了使系统在每次开机后,能自动运行该命令,我们还需要在启动里面加入这个快捷方式。
1)、在桌面击右键,选择快捷方式。
2)、输入快捷方式的运行命令行为 start /D c:mrtg/bin wperl mrtg logging=eventlog mrtg.cfg
3)、输入一个好记的文件名,如”mrtg流量监控”。
9、至此,MRTG已经可以正常运行了,并且会给我们提供每5分钟流量图,每日流量图,每周流量图,每月流量图,每年流量图。
更详细的安装MRTG的方法在MRTG的官方网站:http://people.ee.ethz.ch/~oetiker/w...g/nt-guide.html
把流量图加入您的网站
前面,我们已经生成了图量图文件了,现在是把它美化,并加入您的网站。
我们使用Dreamwaver MX等网页制作软件打开它,按自己所需要或者网站的网格美化一下,就可以正常使用了。
新闻热点
疑难解答