基于SNMP的配置管理系统的设计与实现
中图分类号:TP393.07文献标识码:A文章编号:1671-7597(2011)0320107-02
0 引言
计算机网络的发展日新月异,规模不断扩大,也越来越复杂。如何保证网络设备可靠、安全、高效地运行成了一个函待解决的问题。网络管理集通信技术、网络技术和信息处理技术于一身,通过调度和协调资源,进行配置管理、故障管理、性能管理、安全管理和计费管理。一个好的网络管理系统可以对各种网络设备及其软件资源进行有效的监视、解释和控制,达到网络可靠、安全和高效运行的目的。因此,网络管理己经成为当前网络技术研究的一个重要部分,它在组网、建网和管理维护中的重要地位己经成为计算机网络与通信界的共识。
本文分析并研究了简单网络管理协议(SNMP),设计并实现了一个基于SNMP的网络管理系统中的一个模块配置管理模块。
1 简单网络管理协议SNMP
SNMP协议是为了解决近期内TCP/IP网络的管理问题提出来的。它是目前在计算机网络中用得最广泛的网络管理协议,而且SNMP已成为事实上的工业标准。现在全球网络设备厂家绝大多数都支持SNMP协议。SNMP是基于TCP/IP网络的网络管理标准。它使用传输层提供无连接服务的UDP协议来交换网络设备的管理信息,包括协议自身、数据库的定义和相关概念。
SNMP的网络管理模型包括以下关键元素:管理者、代理者、管理信息库、网络管理协议。如图1所示:
管理者一般是一个分立的设备,也可以利用共享系统实现。管理者被作为网络管理员与网络管理系统的接口。要满足以下条件:① 拥有一组具有分析数据、发现故障等功能的管理程序;② 提供网络管理员监视和控制网络的接口;③ 能够将网络管理员的要求转变为对远程网络元素的实际监控;④ 能够从网络上所有被管网络实体的MIB中提取出信息数据库。
代理者是网络管理系统中另一个重要元素。装备了SNMP的平台,如主机、网桥、路由器及集线器均可作为代理者工作。代理者对来自管理者的信息请求和动作请求进行应答,并随机地为管理站报告一些重要的意外事件。
管理信息库是管理资源的表示方法,是将这些资源以对象的形式表现出来。每一个对象,从本质上讲,就是一个代表管理代理的数据变量。而这些对象的集合称为管理信息库(MIB)。管理站通过获取MIB对象的值来实现监视功能;通过修改特殊变量的值,在管理代理上实现一个动作。
网络管理协议是管理者和代理者之间的桥梁,包括以下主要功能:① Get功能:由管理站去获得代理的MIB对象值;② Set功能:由管理站去设置代理的MIB对象值;③ Trap功能:代理向管理站通告重要事件。
管理者和代理之间以SNMP报文的形式来交换信息。
2 配置管理模块的设计与实现
2.1 本系统的实现环境
编程语言:JAVA
后台数据库:SQL Server 2000
2.2 配置管理简介
配置管理是指发现和配置某些关键网络设备的过程。而这些网络设备配置的好坏往往会影响计算机网络的性能。配置管理使管理者能够获得当前设备的配置信息,远程修改设备配置,储存数据,维护一个最新的设备清单并根据数据产生报告。利用配置管理工具自动地收集数据,就可以避免陷入手工获取和更新配置数据的繁重任务中。许多配置管理工具提供了监视网络设备配置的功能,可以保证管理者拥有最新的设备配置清单。
2.3 配置管理模块数据库设计
配置管理类主要涉及到对网络配置的收集、监视和修改时使用到的数据,本系统中为配置管理所设计的表项主要包括主机上运行软件表和设备接口信息表等,具体设计如下。
2.3.1 被管主机上运行软件列表
该表是正在运行或预备运行的软件(如主机操作系统、设备驱动程序和应用程序等)的列表。被管主机上运行软件列表如下表1所示。
2.3.2 被管设备接口信息表
该表提供了网络实体物理层借口的详细信息,包括配置信息和在每个接口上发生事件的统计信息。被管设备接口信息表如下表2所示。
2.4 配置管理模块的实现
配置管理所要管理的信息可以分为两类:SNMP配置信息和非SNMP配置信息。在每一个支持SNMP协议的网络设备的MIB库中都保存有大量的该设备的配置信息,称为支持SNMP配置信息,他们可以通过读取设备的MIB库来获得;其他的一些信息,如:该设备的维护人员、设备的位置等,成为非SNMP配置信息,则必须由管理员设定。配置管理包括设备的查询、增加、修改和删除以及一致性检查。查询是由管理员给出一定的查询区间,提取数据库中相应的设备配置信息给管理员查看,并生成配置清单;对设备的增加和删除也就是对数据库中相应的记录进行增加和删除的操作;对设备的修改包括两方面的功能:修改数据库中的设备属性和修改设备的MIB库中的属性。一致性检查是比较设备MIB库中的信息与数据库中的信息是否一致,如果不一致就通知管理员进行维护。
配置管理模块中的修改设备MIB库中的信息主要通过SNMP的Setquest
操作对MIB变量进行设置操作,而其他的操作都和数据库有关,只要对相应数据库进行存取和删除操作即可。
Set操作的代码实例如下:
SnmpAPI api=new SnmpAPI();
SnmpSession session=new Snmpsession(api);
Try{
Session.open();
}
catch(SnmpException e){
system.err.println(“Error:”+e);
}
SnmpPDU pdu=new SnmpPDU();
Pdu.setcommmand(SnmpAPI.SETQ_MSG);
SnmpOID oid=new SnmpOID(“1.5.0”);
String value=“localhost”;
SnmpVar var=null;
Try{
Var=SnmpVAR.createVariable(value,dataType);
}
catch(SnmpException e){
System,err,println(“不能创建变量“+oid+”其值为:”+value);
Return;
}
SnmpVarBind varbind=new SnmpvarBind(oid,var);
Pdu.addVariableBinding(varbind);
SnmpPDU result=session.syncSend(pdu);
If(result==null){
System.out.println(“请求超时!”);
}
else{
if(result.getErrstat()==0){
System.out.println(result.printVarbinds());}
else{
System.out.println(result.getError());
}
}
session.close();
api.close();
Set操作的流程图如图2所示:
3 结束语
在系统的实现中,采用标准SNMP协议和纯JAVA语言,保证了系统的平台无关性和通用性。而且在数据的采集、显示中,尽量不在程序中使用一些绝对的变量,而是尽量把所有的选项都在文件中设置,为该系统的广泛适应性提供了基础。
作者简介:
李双林,沈阳理工大学信息科学与工程学院工程硕士,锦州市机电工程学校讲师。
注:“本文中所涉及到的图表、公式、注解等请以PDF格式阅读”
版权声明:
1.十号范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《基于SNMP的配置管理系统的设计与实现》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。
本栏目阅读排行
栏目最新
- 1在农民收入调查工作动员培训会上讲话
- 22024年领导干部政治素质自评材料(完整)
- 3公司党委党建工作总结报告【完整版】
- 42024年主题教育党建调研开展情况总结
- 52024年度区妇联关于党建工作述职报告(完整)
- 6关于加强企业人才队伍建设调研与思考(完整文档)
- 72024县党员干部抓基层党建工作述职报告
- 8第二批主题教育研讨发言:时刻“以民为本”,听“实言实语”,办实事好事
- 92024关于党员干部法治信仰情况调研报告(2024年)
- 10局网络安全工作责任制落实自查报告(全文)
- 11XX国企分管领导关于党建设引领企业高质量发展研讨发言(范文推荐)
- 122024年第二批主题教育专题读书班研讨发言提纲(6)【完整版】