基于SNMP协议的CSG-T3000网管软件的服务端子系统设计
2014-09-21杨震斌
杨震斌,许 强,方 成
(1.科大智能(合肥)科技有限公司,安徽 合肥 230088;2.合肥学院计算机科学及技术系,安徽 合肥 230601)
随着通信技术的迅速发展,通信网络也不断地扩大,设备的种类和数量也越来越多,需要开发出与之配套和同步的商用网络管理系统.网络管理系统能够集中管理网络中各个设备及网络的性能、故障和配置,能够保存历史数据供用户对网络过去运营状况进行分析、评价,对未来状况进行一定的预测,为保证网络正常、高效、经济和安全地运行具有非常重要的作用.
1 系统架构设计
1.1 系统架构设计策略
在网管软件进行系统架构设计之前,结合实际的应用需求和笔者的工程经验,明确以下设计策略:
平台性策略:系统设计致力于打造科大智能网络产品的基础性平台,需为融入公司未来通信产品奠定基础;
扩展性策略:主要包括交换机数量可扩展,交换机种类可扩展,架构可扩展,同时考虑其他类型通信产品的扩展性;
移植性策略:在客户端将业务逻辑单独分离出来,形成中间层,简化了客户端,而且减轻了服务器的负担,提高了代码的重用性,使系统可方便地移植到不同操作系统和数据库;
可用性策略:系统采用主—从式部署,从而保证服务器或软件系统出现故障可提供不间断服务;
兼容性策略:为了便于与其他公司设备的网管连接,提供基于CORBA协议、TL1协议、SNMP协议等多种北向接口模块,并可根据实际需要进行选择;
可配置性策略:为了做到更灵活的监控和管理,系统各功能模块中的运行参数均能做到可配置.
1.2 系统架构设计实现
系统采用C/S结构,分服务端和客户端两个子系统,如图1所示.客户端通过外部网访问服务端,查看网络的各类数据,并进行管理.服务端通过内部网监控和管理所有交换机设备,将数据存储在数据库中.服务端通过SNMP协议管理交换机设备,支持 Get/GetNext/GetBulk/Request/Response/Trap/Inform 7种协议类型.客户端与服务端通讯采用TCP和RMI两种模式并用的方式,其中TCP负责传输设备参数信息和告警数据,RMI负责传输管理数据.这样既保证了重要信息的实时性,又提高了信息完整性和代码的执行效率.
图1 系统架构设计示意图
2 服务端子系统设计
服务端子系统分为设备管理层、工作队列、数据代理层、心跳和数据库5个部分,如图2所示.
图2 服务端子系统设计图
2.1 工作队列
工作队列保存当前网络中设备的实时状态,根据设备的状态建立不同工作队列,分正常队列、重试队列和故障队列3种,对设备进行有效管理.每个设备的状态也对应地分为正常、重试和故障3种,其状态图如图3所示.
图3 工作队列状态图
其中故障恢复手段有两种:
(1)管理员手工恢复.
(2)设备通过Trap机制上报告警信息.当服务器收到该信息后,根据IP将指定设备恢复到正常队列中.
2.2 设备管理层
设备管理层负责访问设备,实现网络扫描、数据采集和故障监控等功能.
网络扫描分为初始扫描和重试扫描两类:初始扫描由系统启动和手工初始化触发,扫描整个网络,找出所有需要管理的交换机设备,计算设备之间的拓扑关系并将设备IP保存到“正常队列”中.重试扫描根据重试队列中的内容扫描该设备是否正常.如果正常则恢复到“正常队列”中,如果连续扫描3次仍不正常则移到“故障队列”.
数据采集根据“正常队列”采集设备的各类数据,保存到数据库中.
故障监控由设备Trap触发和定时扫描中发现设备断网或指标异常时触发,对设备Trap信息进行捕捉,并存储到数据库中.故障内容保存数据库后,同时在内存中保留一份数据(最近24 h),用于客户端请求故障信息时及时反馈,提高效率.
2.3 数据代理层
数据代理层负责接受客户端访问,实现配置管理、故障管理、性能管理和安全管理等功能.
配置管理有查询和更新两种操作,将数据返回客户端,根据用户请求更新数据,并采用SNMP SET更新设备.
故障管理有查询、故障处理、故障配置3种操作.查询分为当前查询和历史查询两类:当前查询是从内存中返回最近24 h的故障数据;历史查询是根据用户查询条件从数据库中返回结果.故障处理分确认和处理两种操作,更改故障状态,并保存到数据库中.故障配置可以配置各种故障的级别、类型、门限等属性,把管理员的配置信息保存到数据库中.其中,故障级别分紧急、主要、次要、提示、未确定、清除6种.故障类型分设备、服务质量、通讯、环境、处理失败5种.故障状态分未确认、已确认和已处理3种,状态变化如图4所示.
图4 故障状态迁移图
性能管理有查询、监测配置二种操作.查询是根据用户查询条件从数据库中返回结果.监测配置是接受管理员的配置请求,存储到数据库中,并控制数据采集模块按照配置进行性能数据采集.其中,配置参数包括性能监测对象(指定的网元、单元盘、端口、通道等)、需要监测的参数名称、监测周期(15 min或者24 h)、监测状态(打开/关闭)、开始时间、结束时间、是否自动上报等.
安全管理包括用户组管理、用户管理、权限管理、日志、参数配置、登录注销等.
2.4 心跳机制
系统支持主—从方式的多服务器部署,建立“软”心跳机制实现在服务器出现故障可由从机顺利接管,保证服务的可用性.心跳机制流程如图5所示.心跳重试次数为3次,3次未接收到主服务响应视为主服务宕机.
图5 主从服务器心跳管理示意图
2.5 数据库
系统采用MySQL数据库,集中存储各类数据,实现数据库的备份与动态创建.
利用MySQL备份功能实现主—从备份,实时地将主数据库备份到远程从数据库中,保证数据的安全性.
对于数据量较大的表,采用动态创建历史表的技术进行数据的移动,保证主表的容量在可控范围内,提高系统的运行效率.
3 服务端子系统的启动过程
服务端启动后,初始化工作如图6所示.
图6 服务端子系统的启动流程图
4 结语
本文设计的网管软件系统架构及服务端子系统,应用于科大智能CSG-T3000网管软件中,经过实际应用,完全满足了可靠性、可扩展性和兼容性的需求.其中,服务端子系统的相关设计很好地满足了功能与性能的指标要求,对广大工程研发人员有参考意义.
[1]朱创录.SNMP网络管理中高效轮询方法研究[J].计算机技术与发展,2012(12):135-138.
[2]袁健美.基于Java的SNMP网络管理系统[J].计算机工程,2009(10):30-32.
[3]基于SNMP的MIB结构树高效算法研究[J].计算机工程与设计,2010,31(15):3386-3389.
[4]钱文光,张云峰.基于SNMP的网络管理系统的研究与设计[J].北华航天工业学院学报,2012(12):7-9.
[5]胡天骄,郭旭静,王祖林.网管软件主备切换协议的设计与验证[J].电子质量,2011(7):26-29.
[8]潘楠,王勇,陶晓玲.一种基于SNMP的链路层拓扑发现算法[J].计算机工程,2012(1):103-105.
[9]魏煜欣,李强.一种基于SNMP网络性能管理数据的采集方法[J].计算机工程与应用,2011,47(2):105-107.