NMS开源软件选型研究评估报告.docx

上传人:b****0 文档编号:17761194 上传时间:2023-08-03 格式:DOCX 页数:20 大小:389.15KB
下载 相关 举报
NMS开源软件选型研究评估报告.docx_第1页
第1页 / 共20页
NMS开源软件选型研究评估报告.docx_第2页
第2页 / 共20页
NMS开源软件选型研究评估报告.docx_第3页
第3页 / 共20页
NMS开源软件选型研究评估报告.docx_第4页
第4页 / 共20页
NMS开源软件选型研究评估报告.docx_第5页
第5页 / 共20页
NMS开源软件选型研究评估报告.docx_第6页
第6页 / 共20页
NMS开源软件选型研究评估报告.docx_第7页
第7页 / 共20页
NMS开源软件选型研究评估报告.docx_第8页
第8页 / 共20页
NMS开源软件选型研究评估报告.docx_第9页
第9页 / 共20页
NMS开源软件选型研究评估报告.docx_第10页
第10页 / 共20页
NMS开源软件选型研究评估报告.docx_第11页
第11页 / 共20页
NMS开源软件选型研究评估报告.docx_第12页
第12页 / 共20页
NMS开源软件选型研究评估报告.docx_第13页
第13页 / 共20页
NMS开源软件选型研究评估报告.docx_第14页
第14页 / 共20页
NMS开源软件选型研究评估报告.docx_第15页
第15页 / 共20页
NMS开源软件选型研究评估报告.docx_第16页
第16页 / 共20页
NMS开源软件选型研究评估报告.docx_第17页
第17页 / 共20页
NMS开源软件选型研究评估报告.docx_第18页
第18页 / 共20页
NMS开源软件选型研究评估报告.docx_第19页
第19页 / 共20页
NMS开源软件选型研究评估报告.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NMS开源软件选型研究评估报告.docx

《NMS开源软件选型研究评估报告.docx》由会员分享,可在线阅读,更多相关《NMS开源软件选型研究评估报告.docx(20页珍藏版)》请在冰点文库上搜索。

NMS开源软件选型研究评估报告.docx

NMS开源软件选型研究评估报告

NMS开源软件选型分析评估报告

1标准和目标1

1.1前言1

1.2目标1

1.3标准1

2评估2

2.1筛选2

2.1.1候选软件2

2.1.2License评估.2

2.1.3软件功能评估3

2.1.4开发语言评估5

2.1.5小结6

2.2开发接口调查7

2.2.1Nagios7

2.2.2Opennms8

3结论14

4MISC14

1标准和目标

11前言

目前开源的网管软件众多,时间关系只能通过网络上的资料介绍和其他用户的体验逬行评估。

对于重点调查的幵源软件通过运行环境搭建、开发环境搭建的方法进行实践。

如果只是对通用网络设备的管理.被调研的软件只要经过适当的配置就可以满足要求。

对于我们的需求,这些软件不能满足我们100%的需求,必须逬行二次开发,对软件二次研发的接□的调研就成为我们考察软件的一个重要的组成部分。

部门对网管软件的定位应该不会投入过多的资金,商用软件价格高昂应该不在考虑范围之内,也尽量不选用幵源软件商用版本.重点放在纯开源软件上。

选择了一种开源软件也就选择了一种架构,所以架构的选择也要适合我们部门的开发能力。

1.2目标

选择一款适合的幵源软件,在此基础上逬行整合和二次开发,构建部门设备网管平台。

1.3标准

选型标准:

oLicense

不仅仅是免费,无license限制是首选;

市场占有率

广泛的市场占有率,说明软件得到过足够多的验证;针对于成功的开源软件.可以找到—些第三方的扩展资源,我们只妾遵循拿来主义就好;

功能

—些功能可以直接拿来使用,或者简单的改造,可以节约成本;

◊完备的扩展幵发接口

被选择的开源软件是否己经提供完备的二次开发接口,满足二次开发的要求;

◊开发技术

选择开源软件的启外一个层面考虑是尽量考虑使用部门成员最熟悉的幵发技术•尽量避免涉及相对部门来说的新技术、幵发语言,这样可以进一步研发降低成本;

开源架构

就我们目前的需求.开源网管软件的功能,我们箋用到的部分并不多。

选择了开源其实主要就是选择它的架构。

架构的开放性.易犷展性将直接决定我们的研发成本。

2评估

开源网管软件的市场占有情况

上图是网络监控软件的占有率。

其中以Nagios和Opennms占有率最高°

2.1筛选

2•口候选软件

◊Nagios

oOpennms

oCacti

oZenoss

oZabb仪

◊SugarNMS

2eL2License评估

开源软件

License

使用限制

Nagios

GPL

GPL(GNUGeneralPublicLicense)

Opennms

Free

Free,也可以购买相应服务

Cacti

GPL

GPL

Zenoss

GPL

GPL2

Zenoss提供开源版和企业版两种版本

Zabbix

GPL

GPL2

免费开源和商业幵源两个版本

不是sourceforge下的产品

2・1・3软件功能评估

M^me

Nsgios

Zabbix

C^cti

Zenoss

OpenHMS

ResponseTime

Fssi

Fast

?

?

Fast

Charts

Mo

Yes

Yes

Yes

Yes

Trending

Mo

Yes

Ves

Yes

Yes

Trendprediction

Mo

No

Unknown

Unknown

Unkno*»vn

Autodi^covery

Ng

Yes

Kq

Yes

Yes

Agent

Yes

Yes

No

丫e5.U5in©

WMI

Yes.using

NRPE

SHMP

Yes.using

aplugin

Yes

Yes

Yes

Yes

Extern-31scripts[11

Yes

Yes

Yes

Umlcn©wn

Yes

Plugins⑵

畑因

Yes

Unknown

Pluginerratic

Medium

Easy

7

?

Triggers/AlertsW

Yes

Yes

Yes

WebApp⑹

Viewing

only

Full

control

Unknown

Fullcontrol

Fullcontrol

Datastoragemethod

?

SQL

R.RCtO0l

RRDtool3ndMySQL

RRDtooland

Pc<5tgr-eSQL

TheNRPEaddonisdesignedtoallowyoutoexecuteNagiospluginsonremoteLinux/Unixmachines

NRPE

MQP6tsanthatNMwayoutoaxaaxa仪uEnconramataUnux^Uno:

hactfi.Hue&usahJif

vouC8dtonwMbbedwourcwp'ottnbutwlikedokgoge,CPUload,mvrvorvuoope.etc.on9remotebo«t5»mherKrctcn^litycanbe©caxnpHhedbytheFee匕叱拓*CSCehhouj^

Cconoh«herCFUIgdonthemonCogrrochine-esp^olyifycuorenxr«torr»Q

hundradfiormouwncfccfhoatfi.

"Th«NRPEaddonanddocument.boncanb«foundatMtp:

开源软件

功能

Nagios

网络服务监控(SMTP、POP3、HTTP.NNTP、ICMP.SNMP、

FTP.SSH)

主机资源监控(CPUload,diskusage,systemlogs),也包括Windows主机(使用NSCIient++plugin)

可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)

可以通过配置Nogios远程执行插件远程执行脚本

远程监控支持SSH或SSL加通道方式逬行监控

简单的plugin设计允许用户很容易的幵发自己需要的检杳服务,支持很多幵发语言(shellscripts.C++、PerLruby.Python.PHP.C#等)

包含很多图形化数据Plugins(Nagiosgraph,Nagiosgrapher,PNP4Nagios等)

可并行服务检查

能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查

当服务或主机出现冋题时发出通告,可通过email,pager,sms或任意用户自定义的plugin进行通知

能够自定义事件处理机制重新激活出冋题的服务或主机

自动日志循环

支持冗余监控

包括Web界面可以查看当刖网络状态,通知,问题历史,日志文件等

-可以通过手机查看系统监控信息

Opennms

网络节点自动发现图形用户管理界面故障监控故障事件管理操作系统监控

网络节点配置信息管理全面的节点监控

Zenoss

ZenossCore是幵源企业级IT管理软件-是智能监控软件.他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。

ZenossCore同时也是开源的网络与系统管理软件。

ZenossCore的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产(包括服务器、网络、和其他结构设备)。

Zenoss可以创建关键资产清单和对应的组件级别(接□、服务、逬程,己安装的软件等)。

建立好模型后,就可以监控与报告IT架构中各种资源的状态和性能容限了。

Zenoss同肘提供与CMDB关朕的事件和错误管理系统,以协助提高各类事件和提饌的管理效率。

以此提高IT管理人员的效率。

Zabbix

-CPU负荷-内存使用-磁盘使用-网络状况

-端□监视

■日志监视

SugarNMS

】•安全功能

支持多用户访冋系统,每个用户可以管理不同的设备。

系统记录用户操作日志和设备运行日志。

2.网络拓扑图

采用zhTelecomiTopoview技术,生动的展示网络结构图和拓扑图。

对于大量的管理对爱,可以通过划分组、网络、域逬行分级管理。

大部分管理操作可以在拓扑图上直接进行。

设备运行状况在拓扑图上可以直接显示。

3.故障管理

系统利用多种手段包括主动轮询、设备通报、性能超标诊断等监控故障的发生,并能实时將故障通知到管理员。

在拓扑图上通过不冋颜色来提加不冋级别的故障。

可以查看故障的原因、发生肘间、发生地等。

支持故障智能分析.帮助管理员找到根本原因。

4.性能监控

系统可按预先定义的策略,定期的对被管设备逬行性能监视,采集包括负载、容量、质量、连通性、错误率、工作状态、可靠度、服务状态等多种性能指标,提供实旳和历史的性能数据报表。

5•性能分析

综合比较分析性能数据,发现网络瓶颈和潛在问题,为优化网络提供依据。

预先对性能指标定义不冋的警告阀值,在指标超过阀值的时候,提前通知管理员,能有效的预防故障发生。

6.设备配置管理

控制设备启动、恢复出厂设置.对设备固件升级备份,配置各种运行参数、服务参数等。

7.管理工具集

在界面上集成各种外部管理工具,如Ping.Telnet.Web连接、各种专用工具等。

8.扩展支持

系统提供配置文件、数据库、程序3个级别的修改扩展,实现对新功能的支持。

2・1・4开发语言评估

开源软件

语言

其他细节

Nagios

c

Webphp+cgi

Opennms

Javatjsp/Servletspring

MVC

Maven工程.支持eclipse开发

Cacti

PHP

Zenoss

Python

Zabbix

C(backend)PHP(WEB)

SugarNMS

Java

J2SE、XML、HTTP、JDBC.

Swing、RMI、O-MMapping.O-RMapping等

2・1・5小结

软件\选项

License

(free得分2,GPL得分1,商用得分0)

市场占有率,以市场占有率高低依次计分

功能(全面得分3,基本全面

2,其他1)

管理界面(FULL

CONTRL2,其他])

幵发语言(Java得分3.

C/C++得分2,其他1)

得分

Nagios

1

6

3

1

2

14

Opennms

2

5

3

2

3

16

Cacti

1

2

2

2

1

8

Zenoss

1

4

3

2

1

11

Zabbix

1

3

3

2

2

11

SugarNMS

0

1

3

2

3

9

关于license,Opennms的license网站描述如下

COwww.opennms.org

■OpenNMSisfree,open.sourcesoftware.

Therearenolicensekeys.

Therearenomaintenanceorupgradecostseither.

Youcandownload,examine,modifyanddistributethesourcecode.

Commercialsupport,development,training,andprofessionalservicesareavailable.其他软件基本上都是在GPL限制下进行。

如果我们选用了,在不付费的情况下就是涉及开放源码的冋题。

但也可以打擦边球“一个关于GPL重要的争议是.非GPL软件是否可以动态链接到GPL库”。

从市场占有率来讲,Nogios和opennms应用的比较广,也意味着更多的资料可以获取.更多的经验可以借鉴。

从开发语言来说,Nogios使用c开发,界面PHP,cgi也是由c来开发的,由于c的复杂性,扩展幵发上存在一定的难度,但是c对我们部门来说还是比较熟悉的。

Opennms是基于jovo的,Web管理界面是基于JSP/Servlet,SpringMVCO

但是Nogios没有配置界面,配置需要直接修改配置文件。

如果选用建议推翻所有目前的cgi方式的管理界面,全部重新开发,或者再结合其他的管理软件。

Cacti基于PHP,zenoss基于python,zabbix基于c和php,SugarNMS开源程度不够,所以不做过多调研。

从以上分析,倾向选择Nogios和openniris中的一种。

调研过程中分别搭建了Nagios和Opennms的运行环境°搭建了Opennms的开发环境,(Nagios的编译环境,源码包解压缩就是开发环境,无所谓搭建了)。

在搭建Opennms的过程中遇到一点点麻烦。

Opennms的安装和编译环境搭建都比较费力,Opennms的编译环境依赖于Maven,

eclipse的幵发环境也需要花上一定的时间,尤其是公司的网络有诸多限制。

Nagios编译和部署非常的顺畅,可以下载源码包直接编译安装。

2.2开发接□调查

基于上文中的调查,对于幵发接□的调查只针对于Nogios和Opennms。

2.2.1Nagios

Nagios支持插件开发。

支持C/C++,JAVA,脚本,并且有大量开发好的Plugins。

插件是编译的可执行文件或脚本(Perl脚本,shell脚本等),可以从命令行运行检查状态或—个主机或服务。

Nagios的插件的使用结果来确定网络上的主机和服务的当前状态。

Nagios在需要时执行Plugin检查服务或主机状态。

NRPE方式:

MonitoringHostRomot*Linux/UnixHost

NRPE是一个插件.允许执行远程Linux/Unix主机上的插件。

如果需要监控远程主机上的资源和属性.如磁盘使用情况.CPU负载.内存使用等.需要使用这种方式。

通过使用check_by_ssh插件可以实现类似的功能。

NSCA方式:

MonitoringHostRomotoLinux/UnixHost

NSCA是一个插件.允许你发送被动检查结果从远程Linux/Unix主机到Nagios监控服务器上运行的守护进程。

在分布式和冗余/故障监测设置.这是非常有用的。

NDOUtils方式:

NDOUtils是一个插件,允许把所有状态信息存储在MySQL数据厚中的Nogios。

Nagios的多个实例都可以存储在一个集中的报告的中央数据库的信息。

这可能会作为一个新的基于PHP的未来的Nagios的Web界面的基础上。

Nagios提供了NagiosPluginAPI。

但是并没有提供除Nagios提供的功能外的其他功能的开发。

添加新的服务需要阅读c代码,难度上相对比较大。

基于这一点.Nogios并不能满足我们的要求。

2.2.2Opennms

Opennms是装配式的,支持根据配置装载服务和插件.扩展性很强。

Users

 

Network

上图为opennms的架构图.其中一些部分在最新版中有所变化。

下表是opennms并发的进程

并发任务

守护程序名称

英文

描述

操作守护程序

actiond

Actiondaemon一automatedaction(workflow)

自动操作执行工具,用于根据入站事件自动操作(工作流)。

采集守护程序

collectd

collectsdata

从受管节点采集数据。

功能守护程序

capsd

capabilitycheckonnodes

对所发现的节点执行功能检查。

它通常检查某个接口的端口,看它是否支持已知的服务协议。

DHCP守护程序

dhepd

DHCPclientfor

OpenNMS

为OpenNMS提供DHCP客户机功能。

发现守护程序

discovery

initialandongoingdiscovery互联网控制消息协议

(InternetControlMessageProtocol或简写

对受管网络节点进行初始的发现以及持续进行定期发现。

ICMP)

事件管理器守护程序

eventd

manages/storesevents

管理来自其它并

发任务的事件,并将它们存储

到RDBMS

通知守护程序

notifd

externalnotificationofusers

向用户执行外部通知。

故障管理器守护程序

outaged

Outagemanagerdaemon一consolidatesevents

合并事件,以为每个受管节点/服务提供持续的历史故障视图。

轮询器守护程序

pollerd

Pollerdaemon一pollsmanagednodes/services

定期轮询受管节点/服务,以决定操作状态。

RTC管理器守护程序

rtcd

RTCmanagerdaemon一realtimeavailabilityinformation

实时收集数据,为用户定义的各类受管节点/服务提供可用性信息。

SNMP陷阱守护程序

trapd

SNMPtrapdaemon

-handlesSNMFtraps

处理SNMP陷阱(事件)o

阈值服务守护程序

threshd

Thresholddaemon

-monitorforthresholdvalues

根据属性值是否达到指定的阈值来监控受管节点/服务。

支持总控/调度,发现,配置采集,性能采集.事件(告警)收集,轮询服务。

通过在service-configuration.xml配置需要的服务。

OpenNMS系统配置信息通过XML数据存储,基于linux系统和Postgres数据库的网络管理系统。

网络数据通过JDBC对数据逬行持久化,Web采用JSP/ServletoOpenNMS是—个OpenSourceFramework,它采用了诸多的开源组件与框架,使用了各种协议的开源实现。

每一个层面服务、功能都有自己的配置文件。

OpenNMS采用了xml数据绑定技术(opennms采用的是castor)o根据xml文件的schema定义文件(xsd文件)生成对xml文件到jovci对象的映射,这样就不需要写解读xml文件的代码而是针对jovQ对象逬行操作。

因此这些类都是在系统编译过程中由castor包根据xsd文件生成的。

(Castor是一个Java开源数据绑定框架,它主要目标是提供Java对爱与XML的绑定,Jam到SQL的持久化等.)

Cleanimports是对java文件中的无用的imports作清理.并通过配置文件提供的格式对imports代码段进行格式整理。

各种单元测试手段.HttpUnit.jWebUnit.Junito

nekohtml解读HTML,HtmlTidy对html字符串进行修正.并做标准化的处理。

Avalon主要是一种Server架构,可以满足配置、日志等服务器程序的需要。

JdhcpjavaDHCP的实现。

Xerces解读XML.API与实现有:

xmlParserAPIszxml-apiszxerceslmplo

jCIFS,用Java开发的SMB客户端库。

Idap-impl,LDAPjcivci实现。

smtp.jarpop3.jar,SMTP.POP3协议Java实现。

JRobin基于LGPL授权的网络性能监控系统.是RRDTool的一个纯Java实现。

joeSNMP,JavaSNMP类库。

WebUI:

OpenNMS框架逻辑上采用了MVC架构,准确来说是JSPMVCModel1.采用此架构的主要理念是尽量把逻辑与表示分离,这有利于系统健壮性,代码重用和结构清晰.便于重新设计.并长期维持。

在openNMS中MVC各部分主要代表如下:

 

◊视图(JSP)

OpenNMS的页面通过Model请求回来的内容以HTML.XML/XSL.图表等形式呈现给客户端。

控制器(Servlet)

OpenNMS的控制器采用Servlet方式的.配置在web.xml文件中.用来接受用户的输入并调用模型和视图去完成用户的需求。

所以当单击Web页面中的超链接和发送HTML表单时.控制器本身不输出任何东西和做任何处理。

它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

◊模型(BussinessObject/JavaBean)

模型表示企业数据和业务规则。

模型允许重用相同的代码跨数个不同的用户界面组件。

由于应用于模型的代码只需写一次就可以被多个视图重用.所以减少了代码的重复性。

开发接□:

OpenNMS提供了一个简单快速的框架用来扩展设置缺省服务与协议.为了扩展

OpenNMS管理一个可定制的服务或协议需满足如下要求:

以Caspdplugin为例

编写代码capsdplugin(插件)测试网络接□是否有支持朋望的协议或服务

◊添加一个元素.在$OPENNMS_HOME的/etc/capsd-configuration.xmlconfig定义新的服务。

编写代码poller插件,在某一特定的网络接口,监测当前期望的协议或服务的状态。

◊在$OPENNMS_HOME的/etc/capsd-configuration.xmlconfig配置文件中添加

元素定义新的调用服务°

1.编写Plugin

Capsd使用plugin执行设备的性能检测,一个Plugin是一个实现mgt.capsd.Plugin接口的Jovo类。

下列接口中的方法必须实现:

publicinterfacePlugin{

publicStringgetProtocolName()。

publicbooleanisProtocolSupported(InetAddressaddress)o

publicbooleanisProtocolSupported(InetAddressaddress,Mapqualifiers)。

在配置文件capsd-configuratio

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2