基于SNMP的网络性能管理系统研究与实现摘要:概述了网络管理技术的发展现状,全面介绍了一个基于SNMP网络性能管理系统的实现过程。
性能管理是网络管理的一个重要组成部分,本系统利用标准的SNMP协议定期采集网络关键设备的流量情况,处理后以结构化、层次化的方式保存起来,并提供了图形化的用户接口,所收集的各种历史数据和实时数据在其中以数值表和曲线图的方式直观地显示出来,方便了对网络整体性能的观察、分析。
关键词:网络性能管理;性能数据;简单网络管理协议;管理信息库(MIB)1引言随着网络规模不断扩大,人们越来越意识到网络管理的重要性,并对网络管理展开深入的研究与开发,先后提出了多种网络管理方案,其中主要有ISO的CMIP( the Common Management InformationProtocol)和ITEF的SNMP(Simple NetworkManage-mentProtocol)等。
通常,一个完整的网络管理体系是由管理模型、信息模型、通信协议以及功能模型等构成的。
管理模型定义在管理应用项上,通过两个系统管理实体,即管理者(Manager)和代理(A-gent)之间的合作,以分布方式执行管理活动。
管理者系统负责管理资源,根据指定的管理策略,向远程的一个或多个代理进程发出管理请求。
代理进程具体执行管理者的管理请求,对实际的资源进行管理。
信息模型则根据对网络被管资源的描述来构造管理信息。
被管资源可以是智能集线器、路由器、交换机、主机或应用程序。
信息模型主要涉及为便于网络管理而对实际资源或称被管对象的抽象和描述,它包含了管理应用所需的管理信息,通常由管理信息库(MIB)来描述。
通信协议用于支持在管理者和代理进程之间传送管理信息。
ISO将网络管理功能分为五个功能域:故障管理、配置管理、性能管理、计费管理和安全管理,分别完成不同的网络管理功能。
性能管理在整个网管中是非常重要的一环。
随着网络的带宽不断增加,网络架构不断扩充并复杂化,各种网络应用的兴起也逐渐取代过去人们的习惯。
性能管理加强了网络之间的可视性与可靠性,就好像医师所使用的X光、超音波一样,可以透视企业内部的网络运作情况,并找出潜在的问题,让企作者简介:周锦玉(1979-),女,四川内江人,硕士研究生,主研方向:软件项目管理。
微处理机业的网络更可靠与稳定。
因此,下面将着重讨论基于SNMP的网络性能管理研究与实现。
2网络管理协议当前最典型的网络管理协议有基于OSI七层模型的公共管理信息协议(CMIP)和基于TCP/IP的简单网络管理协议(SNMP)。
OSI/CMIP系统管理模型是目前理论上最完备的网络管理模型,是其他网络管理模型的基本参考。
但由于该模型比较复杂,实现代价高,因此并没有得到广泛的应用。
相反,当初只是为了管理TCP/IP网络的SNMP却得到了迅速的发展和广泛应用。
SNMP网络管理模型的突出特点是简单、易于实现,因而得到了厂商的支持。
特别是在Internet上的成功应用,使得它的重要性越来越突出,已经成为事实上的工业标准。
SNMP由3个主要部分组成,分别是管理信息结构(Structure ofManagement Information,SMI)管理信息库(MIB)和管理协议(SNMP)。
SMI给出了管理对象定义的一般框架,它定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板;MIB是设备所维护的全部被管理对象的结构集合,它定义了可以通过网络管理协议进行访问的管理对象的集合; SNMP协议包括SNMP操作、SNMP信息的格式以及如何在应用程序和设备间交换消息。
SNMP采用代理/ 管理站模型进行网络管理。
它是应用层协议,定义了网络管理者如何对代理进程的MIB对象进行读写操作。
SNMP中的MIB是一种树状数据库。
MIB管理的对象,就是图中树的端节点。
每个节点都有唯一的位置和唯一的名字。
IETF规定管理信息库由对象识别符(OID:Object Identifier)唯一指定。
其命名规则就是父节点的名字作为子节点名字的前缀:例如mib-2的命名为1. 3. 6. 1. 2. 1。
3网络性能管理系统的设计3.1管理域中网络管理的确定首先要确定管理域,也就是管理范围。
对于这个管理范围以外的网络设备,管理系统一般不关心其配置、性能和故障等信息。
一般来说管理域的增大意味着网络管理在系统开销上的响应增大,所以合理确定一个网络管理系统的管理域是很重要的。
一般情况下,网络管理的管理域就是本部门的所有网络设备和资源。
对于大型网络的管理来说,管理域的划分要复杂的多。
大型网络在网络配置上,可能需要了解整个网络的规模和拓扑关系,而在性能和故障管理上,所关心的一般只是主干网络上有关设备的情况。
因此对不同的管理功能要定义不同的管理域。
这里主要研究连入Internet 的大型网络主干网的性能管理,所以管理域为主干网络上的关键节点,主要是主干路由器。
通过对路由器各端口流量和通信情况的检测和分析,对网络性能进行评价和分析。
我们的系统可以对多个路由器或者路由器端口进行性能监测。
3.2性能参数的选择性能参数是网络性能管理用来分析和评价网络性能状态的基础指标。
其数值大小和增减趋势也是评价和预测网络性能发展趋势的基础。
性能参数有很多不同的网络元素,如路由器、服务器等有着不同的性能参数集合。
不同的性能管理任务,所关心的性能参数也不同。
根据性能管理任务的管理域和管理要求,选择合适的性能参数同样是很重要的。
我们考虑到的管理要求是:通过对关键节点(路由器)的性能分析,流量跟踪,评价网络资源利用水平,判断传输是否正常,响应时间是否增加,及早发现网络瓶颈及故障点。
从而合理调整网络的路由,分配流量。
并防患于未然,杜绝和减少各种故障,保证网络高效、稳定、可靠的运行。
在这样的管理要求下,我们选择了路由器的以下性能参数:吞吐量,丢包率,差错率,利用率以及反映其性能状态的其它信息。
3.3系统管理任务根据需求分析系统具体要实现以下管理任务:①路由器的实时性能检测。
包括响应时间,路由器总体状况,各端口详细性能情况。
②性能分析。
对性能历史数据进行分析、统计和整理,对一段时间内的性能状况做出判断和总结,并对网络发展趋势进行预测。
包括任意时间内各种性能参数的数值表和相应的曲线图报告。
③阀值设置。
对被管对象的属性设置阀值。
通过设置阀值并进行阀值检查,可以在网络将出现性能问题时及时向管理人员告警。
④可视化的性能报告。
对数据进行处理,生成各种图表,以直观的形式显示性能检测和分析的结果。
作为网络管理人员的参考。
3.4系统功能模块分析为实现系统功能模块分析这样的管理需求,系统要具有以下的主要功能模块:(1)数据采集。
分为主动采集和被动采集(被动采集就是代理向管理站的报警)。
数据采集是进行管理的基础。
主要是应用简单网络管理协议对路由器进行数据采集。
得到进行性能分析和管理的原始数据。
并且经过预处理存入数据库中。
(2)数据的处理和分析。
这一模块是用来处理和分析采集模块所采集到的数据,进而计算出评价网络性能的参数,并进一步对大量的性能参数进行分析。
(3)性能统计模块。
以数值表和曲线图的方式将性能检测和分析结果显示给用户。
包括实时检测和性能分析。
(4)阀值管理模块。
用户可以自定义阀值大小,阀值会以红虚线显示在曲线图上,当数据达到阀值后会产生报警。
(5)IP管理模块。
用户根据需要,可以增加或减少所要查看性能信息的设备IP。
4网络性能管理系统的实现网络性能管理实现系统是使用SNMP++软件包来实现SNMP协议操作的。
我们使用SNMP协议在W indow平台上做开发应用,通过SNMP协议获取管理信息,实现网络设备的监视和控制。
因此, SNMP协议的实现是整个系统的基础。
我们选用了SNMP++软件包来实现SNMP协议的开发,实现SNMP网络管理的基本功能, SNMP++是由HP公司开发的软件,它实现了SNMP的基本功能,HP公司把该软件放在自己的FTP站点上,公开了程序的源代码,让世界各地的SNMP用户免费使用。
我们的系统具有IP设置、阀值设置、性能统计等多个功能,其中性能统计是重点。
性能统计就是把利用SNMP协议采集到的数据以直观的方式展示给用户,方便了用户对网络整体性能的监测。
下面就以性能统计为主,通过描述系统是如何采集数据并展示给用户,来说明基于SNMP的网络性能管理系统是如何实现的。
4.1性能数据采集性能数据的采集性能数据的采集是利用SNMP协议读取被管设备的MIB库中OID 的数据。
在实际应用中,没有必要采集所有的与性能相关的MIB对象值,可以根据网络情况,确定最关心的能够反映网络的性能指标和设备参数,如网络流量、线路利用率、错误率、丢包率等,采用实时及定时的方法收集信息并保存到数据库的表里,形成关于网络性能的历史数据,表1显示了数据库中保存数据采集信息的表结构。
数据采集信息表字段名称字段类型字段描述OidIfDescr varChar接口的文字描述1.3.6.1.2.1.2.2.1.2IfInOctets numeric接口流入字节数1.3.6.1.2.1.2.2.1.10IfOutOctets numeric接口流出字节数1.3.6.1.2.1.2.2.1.16IfInErrors numeric包含错误的输入包数1.3.6.1.2.1.2.2.1.14IfOutErrors numeric包含错误的输出包数1.3.6.1.2.1.2.2.1.20IfInDiscards numeric接口丢弃输入包数1.3.6.1.2.1.2.2.1.13IfOutDiscards numeric接口丢弃输出包数1.3.6.1.2.1.2.2.1.19DateTmi e datetmi e数据采集的时间无4.2性能数据保存性能数据的保存对于流量,在每次采集完成后,把该时间段的流量加到该小时流量中,在1小时结束后,形成该小时的完整流量,在每天结束时计算出该天的流量情况。
在每周末计算该周的流量,在每月、每年末计算该月、该年的流量。
对于线路利用率、输入错误率、输出错误率、丢包率等则是取平均值。
为每一个网络设备建一个数据库,同时对性能数据按时间进行水平分割,形成按小时、按天、按月、按年的统计表如:Minute表保存每隔5分钟采集到的数据,每次的数据作为一条新记录;Hour 表保存每小时的统计数据;Week表保存每周的统计数据;Month表保存每月的统计数据;Year表保存每年的信息。
为了防止表无限扩大,必须有程序定期自动删除表的一些记录。
Minute表保存一天即被清空,Hour表保存时间为一个月,Week表保存时间为一年,Month表和Year表可以长期保存。