通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  中将

注册:2004-12-17

爱心徽章,06年为希望小学奉献爱心纪念徽章

跳转到指定楼层
1#
发表于 2005-6-23 21:38:00 |只看该作者 |正序浏览
Mrtg(Multi Router Traffic Grapher,MRTG)是一个监控网络链路流量负载的工具软件,它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载(可以在网站http://www.stat.ee.ethz.ch/mrtg/)得到mrtg的输出结果示例。


关于mrtg的最详细的信息可以从http://people.ee.ethz.ch/~oetiker/webtools/mrtg 得到。

mrtg具有以下特色:

可移植性:目前可以运行在大多数Unix系统和Windows NT之上。
源码开放:Mrtg是用perl编写的,源代码完全开放。
高可移植性的SNMP支持:Mrtg采用了Simon Leinen编写的具有高可移植性的SNMP实现模块,从而不依赖于操作系统的SNMP模块支持。
支持SNMPv2c:MRTG可以读取SNMPv2c的64位的记数器,从而减少了记数器回转次数。
可靠的接口标识:被监控的设备的接口可以以IP地址、设备描述、SNMP对接口的编号及Mac地址来标识。
常量大小的日志文件:MRTG的日志不会变大,因为这里使用了独特的数据合并算法。
自动配置功能:MRTG自身有配置工具套件,使得配置过程非常简单。
性能:时间敏感的部分使用C代码编写,因此具有很好的性能。
PNG格式图形:图形采用GD库直接产生PNG格式。
可定制性:MRTG产生的web页面是完全可以定制的。
mrtg的主页是http://www.mrtg.org,可以从这里下载软件。

Mrtg兼容性

mrtg软件可以运行在以下的操作系统上:

Linux 1.2.x, 2.0.x, 2.2.x, 2.4.x (Intel and Alpha and Sparc and PowerPC)
Linux MIPS, Linux S/390
SunOS 4.1.3
Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8
AIX 4.1.4, 4.2.0.0, 4.3.2
HPUX 9,10,11
WindowsNT 3.51, 4.0, 2k, XP
IRIX 5.3, 6.2
BSDI BSD/OS 2.1, 4.x, 3.1
NetBSD 1.5.x
FreeBSD 2.1.x, 2.2.x, 3.1, 3.4, 4.x
OpenBSD 2.x
Digital Unix 4.0
SCO Open Server 5.0
Reliant UNIX
NeXTStep 3.3
OpenStep 4.2
Mac OS X 10.1
And about and other sensible Unix

可以通过mrtg监控的设备(目前市场上绝大多数产品都支持SNMP协议,只要支持SNMP协议的设备就都可以使用MRTG来监控):

3Com NETBuilders, LANplex 6012 and 2500
3Com etherswitches and hubs
3Com Linkswitch 1000 1100 3300
3Com Superstack II switch 3900, 3300 MX
3Com 812 ADSL Router
Alantec powerhub 7000
Allied Telesyn - 8224XL and 8324XL 24 port managed switches
Annex terminal server
Asante Hub
Ascend (Lucent) Max 600, [24]00x, Pipeline 50, TNT, APX-8000, MAX-6000
Alcatel (Assured Access) x1600, OmniSR9, OmniCore 5022
AT&T Wave Point, Lan
BayNetworks (Wellfleet) 7.80 and up, BayStack 350T, Instant Internet, see Nortel
BreezeCom AP,SA
Cabletron ESX-820 Etherswitch, Smartswitch 2000,6000 and router
Centillion Token Ring SpeedSwtich 100 (IBM 8251 Token Ring Switch)
About every Cisco Kit there is ...
CentreCOM 8116
Compatible Systems
DECBridge 620, DEC 900EF, 900EE, Gigaswitch
ELSA Lancom L 11 (Wireless Router)
Enterasys Matrix E5, VH-4802 and VH-2402S Switche
Ericsson Tirgis Series RAS Servers
Extreme Networks -- Blackdiamond 6808 & Alpine 3808 Layer 3 Switches
Fore ASX200 ATM
FlowPoint 2200 ATM/DSL Router
Formula 8200 series
Foundry BigIron 8000 Gigabit, FastIron Switch, ServerIron Switch
Cable Modems from Lancity, Terayon and DOCSIS
HP - network interfaces, disks, database Informix
HP AdvanceStack/Procurve Switch 2000 and 2524, AdvanceStack Switch 200
HP Procurve Switches , model 4000m, 2424m and 2400m
IBM 8260 swtich (with 155MB ATM blades installed), IBM 2210 ISDN Routers.
Intel switches (details) -- 510T, Intel Gigabit Server adapter
IMV Victron NetPro 3000 UPS
Kentrox Pacesetter Pro
Lantronix Bridge
Lucent/Xedia Access PointT 450, 1000
Livingston (Lucent) IRX 3.2.1R, IRX 114, PM2E(R) PM3-2E OR-U
Motorola 6560 Regional Node, SB3100 CableModem, 320, 6430 and 6455 routers
Morningstar terminal servers/routers
MGE (Merlin Gerin) UPSes (details)
Network Appliance
Netopia R7100C SDSL
Netscreen 5 / 10 / 100
Nortel Networks, Bay Routers BCN, BLN, ASN, ARN, AN, Passport 1k and Passport 8k3 series L3 switches, BayStack 450 L2 switches.
Nortel Networks, Accelar L3 Switches
Nokia IP 330/440/650
Nbase ethernet switch
Novell 3.11, 4.11
Rmon probes
SGI-Server (Irix 5.3)
Any server server running HP-UX, Ultrix, Solaris, SunOS, OSF, NetBSD, FreeBSD, BSDi, Linux, AIX, OpenBSD, Irix or even Windows operating systems (badly), when using NET-SNMP (former UCD-SNMP).
Apple Mac (An snmp service is included on the OS CD >= 8.5 )
Shiva Accesport
Solaris Server
Squid Web cache
US-Robotics Total Control Modemracks
Wellfleet (later Bay Networks): see Nortel routers
WaveWireless SpeedLan 8x00 RF Routers
WinNT, MS Proxy
Xylan (today Alcatel) 4024C 24port 10/100 OmniStack Switch, 9k devices, including ATM links.
Yamaha rt100i
Zyxel Prestige P310, 153X, 642.
不支持mrtg的设备:
D-Link switches (details)

SNMP简介

一个网络管理系统一般要包含以下几个元素:①若干个(可能很多个)需要被管理的网络设备节点,如路由器、服务器等设备,每个节点上都运行着一个称为设备代理(agent)的应用进程,其实现对被管理设备的各种被管理对象的信息如流量等的搜集和对这些被管对象的访问的支持;②至少一个管理工作站,该管理站运行着管理平台应用系统,实现为管理员提供对被管设备的可视化的图形界面,从而使管理员可以方便的进行管理;③一个管理协议,用来定义设备代理和管理工作站之间管理信息传送的规程。其中管理协议的操作是在管理框架下进行的,管理框架定义了和安全相关的认证,授权,访问控制和加密策略等各种安全防护框架。

在运行TCP/IP协议的互联网环境中,管理协议标准是简单网络管理协议(Simple Network Management Protocol,SNMP),其定义了传送管理信息的协议消息格式及管理站和设备代理相互之间进行消息传送的规程。

出于业界对网络管理协议标准化的迫切要求的驱动,IETF于1990发布了SNMPv1的正式RFC文档;其设计思想重点放在保证协议的简单性、灵活性和可扩展性上,并希望把SNMP作为一个过渡性的网管协议来作为实现对互连的网络设备进行管理时遵循的标准,待OSI的网络管理协议—CMIP的开发、实现和标准化成熟和完善到可以在业界推广之后,再用CMIP来替换SNMP。但是由于各种的原因,CMIP并没有替代SNMP,而SNMP发展为业界的标准。

SNMP一共发展有3个主版本,分别为SNMPv1 ,SNMPv2和SNMPv3。其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛:

SNMPv1: 是第一个正式协议版本,在RFC1155-RFC1158中定义,该版本采用了基于共同体名的安全机制;
SNMPv2c: 这个版本被称为基于共同体名的SNMPv2,使用基于共同体名的安全机制和SNMPv2p做出的协议操作方面的扩充,由RFC1901-RFC1906定义;
SNMPv3: 该协议版本采用基于用户的安全机制,其安全机制是在SNMPv2u和SNMPv2*基础上进行大量的评议以后进行了更新,并且对协议机的逻辑功能模块的进行了划分而保证了良好的可扩充性,由RFC2271-RFC2275所定义。

运行SNMP管理系统的原理及SNMP协议

使用SNMP协议的网络管理系统管理结构工作一般包括:管理进程通过定时向各个设备的设备代理进程发送查询请求消息(以轮询方式),来跟踪各个设备的状态;而当设备出现异常事件如设备冷启动等时,设备代理进程主动向管理进程发送陷阱消息,汇报出现的异常事件。这些轮询消息和陷阱消息的发送和接受规程及其格式定义都是由SNMP协议定义的;而被管理设备将其各种管理对象的信息都存放在一个称为管理信息库(Management Information Base)库结构中。

其中SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。其中161端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如Trap。

设备的所有的需要被管理的信息被看作一个各种被管理对象的集合,这些被管理对象由OSI定义在一个被称作管理信息库(Management Information Base,MIB)的虚拟的信息库中。

管理对象库MIB

MIB是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。管理对象是按照模块的形式组织,每个对象的父节点表示该种对象属于上层的哪一个模块。而且OSI为树中每一层的每个节点定义唯一的一个数字标识,每层中的该数字标识从1开始递增,这样树中的每个节点都可以用从根开始到目的节点的相应的标识对应的一连串的数字来表示,如1.3.6.1.2.1.1表示了MIBII中系统组子树,而1.3.6.1.2.1.1.1.0表示系统组中的系统描述(sytem Descrption)对象。每个对象的一连串数字表示被称为对象标识符(Object Indentifier,OID)。

相关的一组对象的集合被定义为一个MIB模块。这些模块使用OSI的抽象语法标记(Abstract Syntax Notation One,ASN.1)的一个子集写成。该子集被定义为管理信息结构(Management Information,SMI)。

SNMP的消息在发送和传输时消息是采用基本编码规则(BER)对消息进行编码。

SNMP基本的标准MIB库是MIBII,具体请参考RFC 1213。

SNMP协议操作

SNMP提供有三类操作,分别为Get,Set和Trap。

Get操作实现对被管理对象所表示的管理信息的读操作。在SNMPv1中,GET操作具体一共有两种形式

Get和GetNext操作: Get操作指示直接读取操作参数指定的OID所表示的被管理对象的管理信息值。GetNext操作指示读取操作参数指定的OID所表示的被管理对象在MIB树中按照字典顺序的下一个被管理对象的管理信息的值。在SNMPv2中,增加了一种GetBulk操作,其是Get和GetNext的综合,是为了提高对被管理信息的访问的效率而增加的。

Set操作实现对被管理对象的管理信息进行写操作,其实现直接对操作参数指定的OID所表示的被管理对象对应的管理信息的值的设置。

前面几种消息是由管理工作站主动实现对被管理设备进行轮询访问时发出以得到被管理设备的各种信息;而在被管理设备出现异常事件需要及时向管理工作站报告时,就需要Trap操作,该操作实现被管理设备向管理工作站报告设备上出现的异常事件,如网络接口出现故障或恢复工作,设备重新启动等信息。另外在SNMPv2中新增加了一种Inform操作来实现管理站与管理站之间的通信。

其中上述操作的消息都可以在操作参数中一次指定一个或多个管理对象OID信息,也就是说一个消息一次可以实现对多个被管理对象的操作。

SNMPv1和SNMPv2c采用了一种简单的基于共同体名的安全机制:

管理站和被管设备上都存储有该充当密码作用的共同体名;消息发送者(一般是管理者)在要发送的消息中的共同体名字段中填入对应于接收者的共同体名,然后以明文方式在网络上发送消息,接收方(被管理设备)接收到消息以后,如果消息格式是正确的,则读取该字段,与自身保存的共同体名相比较,来实现对发送消息者的认证。在一些实现中,对应于每个共同体名还有一个机器地址列表,来表示只有地址在这个列表中的机器使用该共同体名发送的消息才认为是可信的。这里的共同体名就担任密码的作用。同时对应于每个共同体名都有一个访问控制权限,可能值为读或读写。只有请求的操作和使用的共同体名的权限一致才允许进行。

详细情况请参考RFC 1157、RFC 1902、RFC 2273、RFC 2274。
[page]

MRTG的安装配置

安装支持软件

我们这里以Rehat7.2为例子讨论MRTG的配置和安装。要安装MRTG需要安装以下软件包:GCC、Perl、gd、libpng和zlib。可以使用下面的命令来判断系统是否安装有这些软件包:

[root@mail doc]# rpm -qa|grep gd
gd-1.8.4-4
gd-devel-1.8.4-4

[root@mail doc]# rpm -qa|grep perl
perl-5.6.0-17
mod_perl-1.24_01-3

[root@mail doc]# rpm -qa|grep libp
libpng-1.0.12-2
libpng-devel-1.0.12-2

[root@mail doc]# rpm -qa|grep zlib
zlib-1.1.3-24
zlib-devel-1.1.3-24
[root@mail doc]# rpm -qa|grep gcc
gcc-2.96-98
gcc-g77-2.96-98
gcc-c++-2.96-98

如果发现哪个软件包没有安装,只需直接从redhat安装盘安装对应的rpm包即可,例如:
root@mail doc]# rpm -ivh zlib-1.1.3-24 zlib-devel-1.1.3-24

MRTG的安装

目前mrtg的最新版本为2.9.17:

[root@mail src]# tar xvfz mrtg-2.9.17.tar.gz
[root@mail src]# cd mrtg-2.9.17
[root@mail mrtg-2.9.17]# ./configure --prefix=/usr/local/mrtg-2
[root@mail mrtg-2.9.17]# make
[root@mail mrtg-2.9.17]# make install

到现在我们就已经正确地安装了MRTG系统。

配置SNMP服务

对于不同的设备,配置SNMP支持的方法是不一致的,具体请参考设备的随机文档,一般里面都有详细的介绍。这里我们讨论在Linux环境下配置SNMP服务器,以实现对本机流出流入数据的分析和报表(我的应用环境是使用Linux带动一个小型局域网上网,监控本机进出流量)。

在linux环境下安装snmp软件包是很容易的,只需要安装相应的软件包即可:

[root@mail doc]# rpm -qa|grep snmp
ucd-snmp-4.2.1-7
ucd-snmp-utils-4.2.1-7
ucd-snmp-devel-4.2.1-7

这时候运行下面的命令:

[root@mail doc]# /etc/rc.d/init.d/snmpd start
Starting snmpd: [ OK ]

如果命令输出如上所示,就表示snmp服务器启动正常。

为了配合mrtg使用,还要修改snmpd的配置,以使其允许mrtg读取其interface(网络接口)流量数据。

vi /etc/snmp/snmpd.conf



#view systemview included mib2

的内容修改为:

view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

然后将

access notConfigGroup "" any noauth exact systemview none none

修改为:

access notConfigGroup "" any noauth exact mib2 none none

然后再重新启动snmpd:

/etc/rc.d/init.d/snmpd restart

配置MRTG

下一步就是要配置mrtg,实现对网络设备的监控。mrtg的配置信息都是保存在mrtg.cfg文件中的,创建该文件并且在其中定义希望的监控特性。幸运的是一般不需要直接手工编辑该配置文件,因为mrtg软件包提供有cfgmaker配置工具,这是一个脚本文件,根据运行参数可以自动生成mrtg.cfg配置文件。在mrtg源码目录的bin子目录下你可以得到该工具。

首先在www服务器的DocumentRoot目录下创建一个子目录用来存放mrtg生成的统计文件,这里假设apache是默认安装,因此DocumentRoot在/var/www/html目录下,我们在该目录下创建子目录mrtg:

mkdir /var/www/html/mrtg

这里的/var/www/html/mrtg就是mrtg的工作目录。下面就生成mrtg配置文件:

cfgmaker --global "WorkDir: /var/www/html/mrtg"
--global "Options[_]: growright,bits"
--ifref=ip
--output /etc/mrtg.cfg
public@192.168.0.1

这里的--global参数表示后面的选项是对后面指定的设备都是有效的(如果希望对多个设备进行监控时,该参数就会发生作用)。WorkDir用来指示mrtg的工作目录;Options用来指定一些特定的选项,这里的growright,bits是用来指定默认options配置的,对于常见的应用来说默认options配置就可以满足需求了。ifref用来指示用什么选项来标识设备接口,这里指定使用IP地址来标识网络设备接口。ifref可以指定为nr、ip、eth、descr、name。nr表示用接口在MIBII库中Interface接口的ifIndex来识别接口;IP表示使用ip地址识别接口;eth表示使用接口的物理地址标识接口;descr表示使用接口的描述信息来标识接口;name表示使用接口名来标识接口。一般来说ip地址是唯一的,但是有些情况下接口是没有IP地址的,例如交换机就会出现这种情况。对于接口来说nr(接口号)是唯一的,因此对于一般情况使用IP地址就可以了,而对于其他一些情况则需要采用nr了。"--output /etc/mrtg.cfg"标识将生成的配置文件存放在/etc/目录下。"public@192.168.0.1"表示监控IP地址为192.168.0.1的设备,采用public作为共同体名通过snmp协议来监控设备192.168.0.1。

对于希望使用mrtg来对多个设备进行监控的情况,举例如下:

cfgmaker --global "WorkDir: /var/www/html/mrtg"
--global "Options[_]: growright,bits"
--ifref=descr
--ifdesc=alias
public@router1.place.xyz
public@router2.place.xyz
--global "Options[_]: growright"
--ifref=name
--ifdesc=descr
public@switch1.place.xyz
--ifdesc=name
public@switch2.place.xyz > mrtg.cfg

这里指示监控四个设备:router1.place.xyz、router2.place.xyz、switch1.place.xyz
和switch2.place.xyz,所有的设备都采用共同体名public来进行监控。并且两个路由器采用descr来作为设备的描述信息,而两个交换机则采用alias作为设备描述(这两者是不同的,例如对于cisco路由器来说,对于descr来说设备描述为"Serial0",而对于aliasl来说则为"Link to HQ")。

对于我这里的应用环境来说,生成的mrtg.cfg内容如下:

# Created by
# /usr/local/mrtg-2/bin/cfgmaker --global WorkDir: /var/www/html/mrtg --global Options[_]: growright,bits
--output /etc/mrtg.cfg --ifref=ip public@192.168.0.1


### Global Config Options

# for UNIX
# WorkDir: /home/http/mrtg

# or for NT
# WorkDir: c:mrtgdata

### Global Defaults

# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits

WorkDir: /var/www/html/mrtg
Options[_]: growright,bits

######################################################################
# System: 192.168.0.1
# Description: Linux 192.168.0.1 2.4.7-10smp #1 SMP Thu Sep 6 17:09:31 EDT 2001 i686
# Contact: Root (configure /etc/snmp/snmp.local.conf)
# Location: Unknown (edit /etc/snmp/snmpd.conf)
######################################################################


### Interface 1 >> Descr: lo | Name: | Ip: 127.0.0.1 | Eth: ###
### The following interface is commented out because:
### * it is a Software Loopback interface
#
# Target[192.168.0.1_127.0.0.1]: /127.0.0.1ublic@192.168.0.1:
# SetEnv[192.168.0.1_127.0.0.1]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo"
# MaxBytes[192.168.0.1_127.0.0.1]: 1250000
# Title[192.168.0.1_127.0.0.1]: Traffic Analysis for 127.0.0.1 -- 192.168.0.1
# PageTop[192.168.0.1_127.0.0.1]:
Traffic Analysis for 127.0.0.1 -- 192.168.0.1

#
# System: 192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)

# Maintainer: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

# Description: lo

# ifType: softwareLoopback (24)

# ifName:

# Max Speed: 10.0 Mbits/s

# Ip: 127.0.0.1 (localhost)

#


### Interface 2 >> Descr: eth0 | Name: | Ip: 211.99.43.111 | Eth: 0-d0-b7-b7-bb-30 ###

Target[192.168.0.1_211.99.43.158]: /211.99.43.158ublic@192.168.0.1:
SetEnv[192.168.0.1_211.99.43.158]: MRTG_INT_IP="211.99.43.158" MRTG_INT_DESCR="eth0"
MaxBytes[192.168.0.1_211.99.43.158]: 1250000
Title[192.168.0.1_211.99.43.158]: Traffic Analysis for 211.99.43.158 -- 192.168.0.1
PageTop[192.168.0.1_211.99.43.158]:
Traffic Analysis for 211.99.43.158 -- 192.168.0.1


System: 192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)

Maintainer: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

Description: eth0

ifType: ethernetCsmacd (6)

ifName:

Max Speed: 10.0 Mbits/s

Ip: 211.99.43.158 (192.168.0.1)


### Interface 3 >> Descr: eth1 | Name: | Ip: 192.168.0.1 | Eth: 0-10-4b-0c-b4-23 ###

Target[192.168.0.1_192.168.0.1]: /192.168.0.1ublic@192.168.0.1:
SetEnv[192.168.0.1_192.168.0.1]: MRTG_INT_IP="192.168.0.1" MRTG_INT_DESCR="eth1"
MaxBytes[192.168.0.1_192.168.0.1]: 1250000
Title[192.168.0.1_192.168.0.1]: Traffic Analysis for 192.168.0.1 -- 192.168.0.1
PageTop[192.168.0.1_192.168.0.1]:
Traffic Analysis for 192.168.0.1 -- 192.168.0.1
>

System: 192.168.0.1 in Unknown (edit /etc/snmp/snmpd.conf)

Maintainer: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

Description: eth1

ifType: ethernetCsmacd (6)

ifName:

Max Speed: 10.0 Mbits/s

Ip: 192.168.0.1 (192.168.0.1)


运行mrtg

一旦生成正确的配置文件,就运行下面的命令:

/usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

这将查询被监控的设备并在工作目录下创建初始的流量图和web页面,在前三次运行时可能会报告遗失日志文件的告警信息,不要理睬这些信息,只需要连续运行三次以后再运行就不会产生告警信息了。如果仍然出现告警那么就需要察看问题出在哪里了。

使用手工运行mrtg并不能定时产生适当的统计信息,因此最好还是定时自动运行mrtg来生成统计信息,默认为五分钟运行一次。作为root身份crontab -e进入编辑状态,添加内容如下:

*/5 * * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg.cfg

然后就可以通过浏览器访问地址http://192.168.0.1/mrtg/选择适当位置

[page]

在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:\telnet 您的交换机的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:\telnet 您的交换机的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:\>cd\mrtg\bin 进入刚才解压的MRTG目录,准备执行命令;
3、 使用perl mrtg 命令测试MRTG是否正确;
4、 执行命令行perl cfgmaker chinatnk@192.168.0.254 --global "WorkDir: c:\www\mrtg" --output mrtg.cfg
这一行命令我要解释一下:
chinatnk@192.168.0.254 使用的是您需要获得SNMP数据的设备的community 和它的IP地址;
WorkDir: c:\www\mrtg 使用的是正确安装MRTG后,需要使用到的WEB目录,要根据实际情况更改;
output mrtg.cfg 则是输出后的配置文件名称;
改好了之后按一下回车,系统就开始执行配置了。由于我是先使用的是交换机来作为的SNMP源,上面命令执行后,它会绑定24个端口,有一些信息显示出来,而路由器上没有那么多需要绑定的端口,所以信息量会稍微少一些。
此一步骤正常执行完后,系统将在MRTG的目录下生成指定的mrtg.cfg文件,我们下一步要做的就是修改MRTG文件,使之符合我们的要求。
有的设备不支持SNMP协议,在这里将会出现错误的提示信息,请各位朋友注意一下。
注意,如果您是需要同时监控多个设备的流量,则需要修改output 参数后面的配置文件名,此例中是mrtg.cfg。
详细资料如下:
C:\mrtg\bin>perl cfgmaker chinatnk@192.168.0.4 --global "WorkDir: e:\webroot\mrt
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:\mrtg\bin>perl mrtg mrtg4.cfg
C:\mrtg\bin>
C:\mrtg\bin>perl cfgmaker chinatnk@192.168.0.254 --global "WorkDir: e:\webroot\m
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:\mrtg\bin>perl mrtg mrtg5.cfg
C:\mrtg\bin>
5、 开始生成流量图及配置文件
6、
C:\mrtg\bin>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:\MRTG\BIN> 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等网页制作软件打开它,按自己所需要或者网站的网格美化一下,就可以正常使用了。

举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-28 00:27 , Processed in 0.643265 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部