网络流量监控器mrtg全攻略.docx

上传人:b****6 文档编号:6045486 上传时间:2023-01-03 格式:DOCX 页数:42 大小:52.57KB
下载 相关 举报
网络流量监控器mrtg全攻略.docx_第1页
第1页 / 共42页
网络流量监控器mrtg全攻略.docx_第2页
第2页 / 共42页
网络流量监控器mrtg全攻略.docx_第3页
第3页 / 共42页
网络流量监控器mrtg全攻略.docx_第4页
第4页 / 共42页
网络流量监控器mrtg全攻略.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

网络流量监控器mrtg全攻略.docx

《网络流量监控器mrtg全攻略.docx》由会员分享,可在线阅读,更多相关《网络流量监控器mrtg全攻略.docx(42页珍藏版)》请在冰豆网上搜索。

网络流量监控器mrtg全攻略.docx

网络流量监控器mrtg全攻略

网络流量监控器mrtg全攻略

简介

Mrtg(MultiRouterTrafficGrapher,MRTG)是一个监控网络链路流量负载的工具软件,它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户,以非常直观的形式显示流量负载(可以在网站http:

//www.stat.ee.ethz.ch/mrtg/得到mrtg的输出结果示例)。

关于mrtg的最详细的信息可以从http:

//people.ee.ethz.ch/~oetiker/webtools/mrtg得到。

mrtg具有以下特色:

可移植性:

目前可以运行在大多数Unix系统和WindowsNT之上。

源码开放:

Mrtg是用perl编写的,源代码完全开放。

高可移植性的SNMP支持:

Mrtg采用了SimonLeinen编写的具有高可移植性的SNMP实现模块,从而不依赖于操作系统的SNMP模块支持。

支持SNMPv2c:

MRTG可以读取SNMPv2c的64位的记数器,从而大大减少了记数器回转次数。

可靠的接口标识:

被监控的设备的接口可以以IP地址、设备描述、SNMP对接口的编号及Mac地址来标识。

常量大小的日志文件:

MRTG的日志不会变大,因为这里使用了独特的数据合并算法。

自动配置功能:

MRTG自身有配置工具套件,使得配置过程非常简单。

性能:

时间敏感的部分使用C代码编写,因此具有很好的性能。

PNG格式图形:

图形采用GD库直接产生PNG格式。

可定制性:

MRTG产生的web页面是完全可以定制的。

mrtg的主页是http:

//www.mrtg.org,可以从这里下载软件。

Mrtg兼容性

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

Linux1.2.x,2.0.x,2.2.x,2.4.x(IntelandAlphaandSparcandPowerPC)

LinuxMIPS,LinuxS/390

SunOS4.1.3

Solaris2.4,2.5,2.5.1,2.6,7,8

AIX4.1.4,4.2.0.0,4.3.2

HPUX9,10,11

WindowsNT3.51,4.0,2k,XP

IRIX5.3,6.2

BSDIBSD/OS2.1,4.x,3.1

NetBSD1.5.x

FreeBSD2.1.x,2.2.x,3.1,3.4,4.x

OpenBSD2.x

DigitalUnix4.0

SCOOpenServer5.0

ReliantUNIX

NeXTStep3.3

OpenStep4.2

MacOSX10.1

AndaboutandothersensibleUnix

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

3ComNETBuilders,LANplex6012and2500

3Cometherswitchesandhubs

3ComLinkswitch100011003300

3ComSuperstackIIswitch3900,3300MX

3Com812ADSLRouter

Alantecpowerhub7000

AlliedTelesyn-8224XLand8324XL24portmanagedswitches

Annexterminalserver

AsanteHub

Ascend(Lucent)Max600,[24]00x,Pipeline50,TNT,APX-8000,MAX-6000

Alcatel(AssuredAccess)x1600,OmniSR9,OmniCore5022

AT&TWavePoint,Lan

BayNetworks(Wellfleet)7.80andup,BayStack350T,InstantInternet,seeNortel

BreezeComAP,SA

CabletronESX-820Etherswitch,Smartswitch2000,6000androuter

CentillionTokenRingSpeedSwtich100(IBM8251TokenRingSwitch)

AbouteveryCiscoKitthereis...

CentreCOM8116

CompatibleSystems

DECBridge620,DEC900EF,900EE,Gigaswitch

ELSALancomL11(WirelessRouter)

EnterasysMatrixE5,VH-4802andVH-2402SSwitche

EricssonTirgisSeriesRASServers

ExtremeNetworks--Blackdiamond6808&Alpine3808Layer3Switches

ForeASX200ATM

FlowPoint2200ATM/DSLRouter

Formula8200series

FoundryBigIron8000Gigabit,FastIronSwitch,ServerIronSwitch

CableModemsfromLancity,TerayonandDOCSIS

HP-networkinterfaces,disks,databaseInformix

HPAdvanceStack/ProcurveSwitch2000and2524,AdvanceStackSwitch200

HPProcurveSwitches,model4000m,2424mand2400m

IBM8260swtich(with155MBATMbladesinstalled),IBM2210ISDNRouters.

Intelswitches(details)--510T,IntelGigabitServeradapter

IMVVictronNetPro3000UPS

KentroxPacesetterPro

LantronixBridge

Lucent/XediaAccessPointT450,1000

Livingston(Lucent)IRX3.2.1R,IRX114,PM2E(R)PM3-2EOR-U

Motorola6560RegionalNode,SB3100CableModem,320,6430and6455routers

Morningstarterminalservers/routers

MGE(MerlinGerin)UPSes(details)

NetworkAppliance

NetopiaR7100CSDSL

Netscreen5/10/100

NortelNetworks,BayRoutersBCN,BLN,ASN,ARN,AN,Passport1kandPassport8k3seriesL3switches,BayStack450L2switches.

NortelNetworks,AccelarL3Switches

NokiaIP330/440/650

Nbaseethernetswitch

Novell3.11,4.11

Rmonprobes

SGI-Server(Irix5.3)

AnyserverserverrunningHP-UX,Ultrix,Solaris,SunOS,OSF,NetBSD,FreeBSD,BSDi,Linux,AIX,OpenBSD,IrixorevenWindowsoperatingsystems(badly),whenusingNET-SNMP(formerUCD-SNMP).

AppleMac(AnsnmpserviceisincludedontheOSCD>=8.5)

ShivaAccesport

SolarisServer

SquidWebcache

US-RoboticsTotalControlModemracks

Wellfleet(laterBayNetworks):

seeNortelrouters

WaveWirelessSpeedLan8x00RFRouters

WinNT,MSProxy

Xylan(todayAlcatel)4024C24port10/100OmniStackSwitch,9kdevices,includingATMlinks.

Yamahart100i

ZyxelPrestigeP310,153X,642.

不支持mrtg的设备:

D-Linkswitches(details)

SNMP简介

一个网络管理系统一般要包含以下几个元素:

①若干个(可能很多个)需要被管理的网络设备节点,如路由器、服务器等设备,每个节点上都运行着一个称为设备代理(agent)的应用进程,其实现对被管理设备的各种被管理对象的信息如流量等的搜集和对这些被管对象的访问的支持;②至少一个管理工作站,该管理站运行着管理平台应用系统,实现为管理员提供对被管设备的可视化的图形界面,从而使管理员可以方便的进行管理;③一个管理协议,用来定义设备代理和管理工作站之间管理信息传送的规程。

其中管理协议的操作是在管理框架下进行的,管理框架定义了和安全相关的认证,授权,访问控制和加密策略等各种安全防护框架。

在运行TCP/IP协议的互联网环境中,管理协议标准是简单网络管理协议(SimpleNetworkManagementProtocol,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协议定义的;而被管理设备将其各种管理对象的信息都存放在一个称为管理信息库(ManagementInformationBase)库结构中。

其中SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。

其中161端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如Trap。

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

管理对象库MIB

MIB是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。

管理对象是按照模块的形式组织,每个对象的父节点表示该种对象属于上层的哪一个模块。

而且OSI为树中每一层的每个节点定义唯一的一个数字标识,每层中的该数字标识从1开始递增,这样树中的每个节点都可以用从根开始到目的节点的相应的标识对应的一连串的数字来表示,如1.3.6.1.2.1.1表示了MIBII中系统组子树,而1.3.6.1.2.1.1.1.0表示系统组中的系统描述(sytemDescrption)对象。

每个对象的一连串数字表示被称为对象标识符(ObjectIndentifier,OID)。

相关的一组对象的集合被定义为一个MIB模块。

这些模块使用OSI的抽象语法标记(AbstractSyntaxNotationOne,ASN.1)的一个子集写成。

该子集被定义为管理信息结构(ManagementInformation,SMI)。

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

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

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采用了一种简单的基于共同体名的安全机制:

管理站和被管设备上都存储有该充当密码作用的共同体名;消息发送者(一般是管理者)在要发送的消息中的共同体名字段中填入对应于接收者的共同体名,然后以明文方式在网络上发送消息,接收方(被管理设备)接收到消息以后,如果消息格式是正确的,则读取该字段,与自身保存的共同体名相比较,来实现对发送消息者的认证。

在一些实现中,对应于每个共同体名还有一个机器地址列表,来表示只有地址在这个列表中的机器使用该共同体名发送的消息才认为是可信的。

这里的共同体名就担任密码的作用。

同时对应于每个共同体名都有一个访问控制权限,可能值为读或读写。

只有请求的操作和使用的共同体名的权限一致才允许进行。

详细情况请参考RFC1157、RFC1902、RFC2273、RFC2274。

MRTG的安装配置

安装支持软件

我们这里以Rehat7.2为例子讨论MRTG的配置和安装。

要安装MRTG需要安装以下软件包:

GCC、Perl、gd、libpng和zlib。

可以使用下面的命令来判断系统是否安装有这些软件包:

[root@maildoc]#rpm-qa|grepgd

gd-1.8.4-4

gd-devel-1.8.4-4

[root@maildoc]#rpm-qa|grepperl

perl-5.6.0-17

mod_perl-1.24_01-3

[root@maildoc]#rpm-qa|greplibp

libpng-1.0.12-2

libpng-devel-1.0.12-2

[root@maildoc]#rpm-qa|grepzlib

zlib-1.1.3-24

zlib-devel-1.1.3-24

[root@maildoc]#rpm-qa|grepgcc

gcc-2.96-98

gcc-g77-2.96-98

gcc-c++-2.96-98

如果发现哪个软件包没有安装,只需直接从redhat安装盘安装对应的rpm包即可,例如:

root@maildoc]#rpm-ivhzlib-1.1.3-24zlib-devel-1.1.3-24

MRTG的安装

目前mrtg的最新版本为2.9.17:

[root@mailsrc]#tarxvfzmrtg-2.9.17.tar.gz

[root@mailsrc]#cdmrtg-2.9.17

[root@mailmrtg-2.9.17]#./configure--prefix=/usr/local/mrtg-2

[root@mailmrtg-2.9.17]#make

[root@mailmrtg-2.9.17]#makeinstall

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

配置SNMP服务

对于不同的设备,配置SNMP支持的方法是不一致的,具体请参考设备的随机文档,一般里面都有详细的介绍。

这里我们讨论在Linux环境下配置SNMP服务器,以实现对本机流出流入数据的分析和报表(我的应用环境是使用Linux带动一个小型局域网上网,监控本机进出流量)。

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

[root@maildoc]#rpm-qa|grepsnmp

ucd-snmp-4.2.1-7

ucd-snmp-utils-4.2.1-7

ucd-snmp-devel-4.2.1-7

这时候运行下面的命令:

[root@maildoc]#/etc/rc.d/init.d/snmpdstart

Startingsnmpd:

[OK]

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

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

vi/etc/snmp/snmpd.conf

#viewsystemviewincludedmib2

的内容修改为:

viewmib2included.iso.org.dod.internet.mgmt.mib-2fc

然后将

accessnotConfigGroup""anynoauthexactsystemviewnonenone

修改为:

accessnotConfigGroup""anynoauthexactmib2nonenone

然后再重新启动snmpd:

/etc/rc.d/init.d/snmpdrestart

配置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.xy

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1