随着网络系统结构的日益庞大复杂,运维人员有必要使用一套网络管理系统来方便快捷的管理好网络。为了更好的管理各种设备,便于对网络中的故障进行排查,公司需要一款满足需求的网管软件。目前市面上的网管软件众多,这些软件经过适当的配置即可对通用设备进行管理。但这些通用的功能无法满足我们100%的需求,必须进行二次开发。出于公司所使用技术(Java)、市场占用率和功能全面性,选择了两款提供两次开发的平台,OpenNMS与智和网管平台,通过对两款产品进行全方位的对比,选择出一款适合的网管软件,在此基础上进行整合和二次开发,构建部门设备网管平台。
一、选型标准
1.功能性
网管通用的功能可以直接拿来使用,或者简单的改造,可以节约成本;
2.完备的扩展开发接口
被选择的开源软件是否已经提供完备的二次开发接口,满足二次开发的要求;
3.易于扩展的架构设计
网管平台的架构应该是易于进行二次开发的,或者在设计平台时,就考虑到了在平台基础上进行二次开发;
4.开发技术
选择网管平台的另外一个层面考虑是尽量考虑使用部门成员最熟悉的开发技术,尽量避免涉及相对部门来说的新技术、开发语言,这样可以进一步研发降低成本;
5.技术支持与服务
平台稳定性需要高,对于开发中常见的问题能够快速的找到解决方案,对于平台中出现的问题,官方能够及时的解决
二、软件简介
1.OpenNMS
OpenNMS是网络管理系统Network Management System 的简称,是一种开源软件网络监视工具。可用来自动发现网络节点,监控网络服务,如 HTTP,DNS,SSH 等,当系统服务停止时,OpenNMS会依管理者所建立的规则寄出通知,告知运维人员网络障碍,事件汇整,自动执行对应动作,以及服务层级效能监控。它可以支持SNMP网络管理协议,确保管理的扩展性,并且提供定制功能从而有利于管理范围的伸缩,流量和接点系统硬件使用情况需要在配置SNMP。
2.智和网管平台
智和网管平台由北京智和信通技术有限公司自主研发,完美兼容主流/国产系统及数据库,提供C/S和B/S两种客户端界面,兼容PC以及移动设备。实现包括设备拓扑、故障管理、性能管理、配置管理和安全管理等基础网管功能,以“管控万物,无所不能,无处不在”为理念,采用了设备统一接入模型,可以管理网络设备、计算机、服务器、智能设备、物联网、工业设备等所有联网设备;适用于国防、电信、政府、金融、交通、能源、企业、工业、制造等多种领域。让企业把重点放在具体的客户业务需求上,最短几个人周就能开发出一款网管软件。
三、通用功能评估
对于网管的通用功能包括但不限于设备拓扑、故障管理、性能管理、配置管理以及安全管理等网管软件基本功能。在软件平台上进行二次开发时,可以不用自己实现这些通用功能,或者简单的修改即可,只需关心公司自身的网管业务需求。
(一)OpenNMS
1.网络节点自动发现
对象存储库中的信息并不是靠管理员手工输入和维护的,而是由软件的自动扫描模块自动的从网络中搜索设备。
2.图形用户管理界面
通过浏览器查看各种界面视图,使得管理员通过管理工具看到现实世界对象的真实反映,而不是抽象的符号。使用户能够监控整个系统的概貌,系统的大体分布和总体运行状况等。
3.故障监控
Opennms的监控引擎模块支持对SNMP网管的网络设备、部署了SNMP服务的服务器上的操作系统进行数据采集和状态维护。采取统一的通讯方式从这些管理对象上采集可用性和故障信息,Opennms得到被管理对象的轮询或Trap信息后,根据收到的信息类型、对象原来的状态和网络系统管理的策略和逻辑判断对象的状态是否发生变 化。如果发生了变化,则可以按照管理策略采取若干更新操作。
4.故障事件管理
当被管理对象的运行状态发生变化时,就会产生事件。如果该事件是由正常变为故障,则会产生故障报警。如系统资源出现短缺、数据库连接失败、网络通信中断、主机文件系统溢出等等都会以事件的形式表现出来。
5.操作系统监控
Opennms对各种计算机操作系统的可用性、运行状况和故障的集中监控是通过本身的SNMP服务程序完成的。这些SNMP代理程序是SNMP服 务的组成部分。
6.网络节点配置信息管理
被监控对象节点在数据中的配置信息是IT设备的资产信息,每个网络节点都是一个特定的IT资产设备。每个节点在数据库中有很多属性字段供选择填写。
7.全面的节点监控
每个被监控的节点都能被细致的记录和监控。当查看某节点的信息时,有这样几类信息:状态信息、各种网络服务总的可用性、SNMP属性、各个接口熟 悉、最近发生的5个事件和最近的故障事件。
(二)智和网管平台
1.一键式自动发现
在自动发现过程中搜索网络设备,识别设备类型和厂商型号,生成设备的面板图。或搜索设备资源,发现设备之间的链路关系,简化用户操作,提升管理效率。
2.全面化设备管理
通过拓扑视图,方便管理设备及其配置参数,支持对设备进行相关操作。自动识别当前设备类型及其配置参数,支持所有主流设备,可自定义添加设备,实时查看设备运行情况。
3.可视化拓扑管理
支持树形/平面结构联动展示网络拓扑关系,多种布局方式划分网络。在拓扑中以不同图标实时展现设备状态。图形化、具象化的拓扑形式对设备、设备资源、链路进行管理,降低维护难度,拖动式的布局形式使配置更加灵活。
4.及时性故障管理
多种告警机制与自定义配置告警阈值,可迅速定位告警设备。全面采集警信息,并按多种维度以图表等形式展现。及时告警、自动处理,确保故障及时解决,极大提升告警处理效率,降低因故障带来的损失。
5.多维度性能管理
全面采集设备资源、应用、服务等性能信息。将性能信息数据按照时间、资源、性能类型等多种维度以图表等形式展现。多维度,多形式展示设备性能信息,运维人员随时把握设备性能状态,防范于未然。
6.深度管控设备
可对每多台设备进行配置/备份和软件升级,以减少管理员的工作量,提高系统的可用性。支持单个和批量设备的配置文件升级、备份和恢复功能。有配置管理、设备软件管理、设备参数管理来帮你减轻工作负担。
7.精细化报表统计
具有多项数据的统计功能,可将统计图表导出或打印,以便备份或对比查看。通过多种类型的图表展现,使用户对整体网络有一个全面直观的了解,通过数据分析,全面把握网络状况为决策提供依据。
8.多层次安全管理
通过对用户网络、用户权限进行设置,以及对黑白名单的控制,以多层次多角度提升网络安全性,保障用户网络安全。
(三)总结
对于一般的通用网管需求,两款软件平台都基本覆盖了这些基本功能,唯一比较遗憾的是OpenNMS是缺少拓扑图功能。
功能点 |
OpenNMS |
智和网管平台 |
自动发现设备 |
√ |
√ |
拓扑图 |
× |
√ |
设备管理 |
√ |
√ |
支持多种管理协议 |
√ |
√ |
链路管理 |
× |
√ |
故障管理 |
√ |
√ |
告警管理 |
√ |
√ |
安全管理 |
√ |
√ |
数据统计功能 |
√ |
√ |
扩展功能 |
√ |
√ |
四、开发过程评估
公司选择的是在一个网管平台进行二次开发,因此,对开发接口的要求就显得尤为重要了。在对开发接口的评估中,将主要从功能的全面性,开发的易用性两个方面来进行比较。
(一)OpenNMS
1.整体架构
OpenNMS是装配式的,支持根据配置装载服务和插件,扩展性很强。
OpenNMS系统配置信息通过XML数据存储,基于linux系统和Postgres数据库的网络管理系统。网络数据通过JDBC对数据进行持久化,Web采用JSP/Servlet。OpenNMS是一个Open Source Framework,它采用了诸多的开源组件与框架,使用了各种协议的开源实现。每一个层面服务、功能都有自己的配置文件。
OpenNMS采用了xml数据绑定技术(opennms采用的是castor)。根据xml文件的schema定义文件(xsd文件)生成对xml文件到java对象的映射,这样就不需要写解析xml文件的代码而是针对java对象进行操作。因此这些类都是在系统编译过程中由castor包根据xsd文件生成的。
2.二次开发接口与模块
功能模块介绍:
HttpUnit,jWebUnit,Junit:各种单元测试手段。
nekohtml:解析HTML,Html Tidy对html 字符串进行修正,并做标准化的处理。
Avalon:主要是一种Server的架构,可以满足配置、日志等服务器程序的需要。
Jdhcp:java DHCP的实现。
Xerces:解析XML,API与实现有xmlParserAPIs, xml-apis, xercesImpl。
jCIFS:用Java开发的SMB客户端库。
ldap-impl:LDAP java实现。
smtp.jar pop3.jar:SMTP,POP3协议Java实现。
JRobin:基于LGPL授权的网络性能监控系统,是RRDTool的一个纯Java实现。
joeSNMP:Java SNMP类库。
Daemon(capsd)主要负责扫描发现网络接口,发现discovery daemon(守护进程),为Services/Protocols提供支持并且更新到Database中。根据上次检查是否有任何额外的服务有受管理的接口的能力,Capsd也将定期重新扫描管理接口。
Poller daemon在定期的配置区间中,负责检查每个受管接口的每个状态,如果服务的状态从上次一个适当的事件已改变,表明接口将产生新的服务的状态。
OpenNMS提供了一个简单快速的框架用来扩展设置缺省服务与协议,为了扩展OpenNMS管理一个可定制的服务或协议需满足如下要求:
编写代码capsd plugin(插件)测试网络接口是否有支持期望的协议或服务。
添加一个
元素,在$OPENNMS_HOME的/etc/capsd-configuration.xml config定义新的服务。 编写代码poller插件,在某一特定的网络接口,监测当前期望的协议或服务的状态。
在$OPENNMS_HOME的/etc/capsd-configuration.xml config配置文件中添加
和 元素定义新的调用服务。
3.文档与服务
OpenNMS的优势在于开源和市占率高,网络上能够找到相关资料,但OpenNMS缺少足够的中文文档和本土服务支持,目前汉化还有很长的一段距离要走。而且对技术要求很高,一般运维人员要想用好难度很大。在使用的过程中会出现不能启动现象,特别是关于SNMP问题的,一般需要关掉TRAP服务。
(二)智和网管平台
1.整体架构
智和网管平台由多层次架构模式组成,按照电信网管系统的特点划分模块和层次,既符合网管业务的要求,又保证在软件上是易实现、易维护、易扩充的,各层直接通过Corba和WebService通信,框架采用设备中间层屏蔽不同厂商设备管理协议的差异。实现支持管理不同类型的被管设备。
智和网管平台架构图
2.二次开发接口与模块
通用网管功能的基础上,开发人员可以选择进行模块或者代码式的开发形式,以便在最短时间内满足用户各种定制需求,提高研发效率。同时智和信通提供全套开发资料及完善的培训服务,用户可以随心定制出符合自身需求的网管平台,并对平台功能不断更新,以满足日益变化的管理需求。智和网管平台提供多种可复用的平台扩展组件,简化网管基础技术研究,提高平台开发扩展效率。
1)监控组件
由多种(SSH、WMI、JMX等)不同协议的模块组件组成,可以监控不同协议设备的性能信息。
2)界面开发组件
界面展示功能也采用了功能模块内聚的设计方式,比如:拓扑图模块、导航树模块、导航和拓扑联动模块、菜单模块、对象表格模块、属性表模块等。在二次开发过程中可直接使用或者继承扩展这些模块来实现界面功能。
3)iTopoview拓扑组件
iTopoview 是高度封装的拓扑图图形开发组件, 可以满足网管 GUI 客户端开发的需要。 iTopoview 可以让网管产品的操作界面全部基于拓扑图的所见所得管理模式。所有的权限管理、故障管理、性能管理、配置管理、维护管理等功能,都是直接与拓扑图集成。iTopoview 内置树状视图和网络拓扑视图,并能在二者之间实现自动同步。使用拓扑图组件还可以开发出地域、组织结构等的层级划分图,以及机架图、面板图等。
4)数据库组件
SugarNMS 数据库模块支持所有关系型数据库,采用数据库领域流行的 O-R Mapping 技术。使用工厂方法根据不同的环境创建数据库服务接口 API,提供了各种数据库的添加、删除、修改、查询等服务。并支持 WebServcie/RMI 等通信方式远程调用数据库服务接口。
5)监控调度组件
所有监控模块包括:SNMP 监控模块、WMI 监控模块、Telnet/SSH 监控模块、数据库监控模块、中间件监控模块均注册在监控调度模块,由监控调度模块统一调度分发监视器至各个监视器模块,智和网管开发平台再由各个监控模块执行监视器任务。该模块支持插件方式,在统一接口可方便注册新的监控模块,并调度分发任务。此外,监控调度模块起到了网管软件和监控对象(网络设备、主机/服务器、应用服务等)之间的桥梁,屏蔽了监控对象之间的协议差异,使得监控更简单也更有扩展性。
6)消息分发组件
所有需要把故障、事件、消息分发到客户端的模块都由消息分发模块统一处理。目前 Syslog 模块、Trap 模块、故障监控模块均使用消息分发模块。消息的分发包括服务端自动向客户端推送消息和客户端主动向服务端请求消息两种方式。
7)ObjectSNMP
SNMP 协议开发组件和网络自动发现服务,封装了 SNMP 通信功能和上层 SNMP 故障、性能、配置、TRAP 应用。SNMP 组件采用对象化的编程方式,将以往复杂的 SNNP 开发工作变得非常简单和高效。可以支持任意的 SNNP 设备和私有 SNMP MIB、以及设备 SNMP 接口的变动。具备Java/SNMP 网关、WebService/SNMP、Proxy 代理网关和专利技术的网络自动发现,设备组件发现,设备类型识别。
3.文档与服务
智和网管开发平台提供全套文档,并提供培训,帮助开发人员快速理解系统及相关背景知识,尽快进入开发阶段。提供远程在线、电话及现场支持服务,帮助开发人员一起解决开发中遇到的问题,快速攻克技术难关。
智和网管平台提供代码级开放模式,研发人员深入客户端源代码,实现用户个性化需求。同时提供完善的开发文档、实施培训以及技术支持服务,让用户从开发起始到平台使用全无后顾之忧。
(三)总结
两款开发平台都对扩展开发提供了良好的支持,其中智和网管平台提供的开发模式较多,可以选择直接使用部分模块,也可以选择使用平台提供的API进行开发。
五、结论
基于这段时间调研与试用,智和网管平台更满足我们的实际需求。在通用功能上,智和网管平台拥有的自动生成拓扑功能是我们的必要需求,而在OpenNMS上单独开发实现拓扑图,会加大开发周期。通过试用这两款软件,由于智和网管平台是全国产,相比于OpenNMS,已有的网管通用功能更符合公司网管人员的使用习惯。在平台二次开发上,智和网管平台提供了多种开发模式,智和网管平台提供的核心组件,特别是SNMP组件,与监控组件,极大的简化了与设备交互的复杂性,最后我们选择了基于智和网管平台进行开发。