




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、v1.0可编辑可修改NMS开源软件选型分析评估报告v1.0可编辑可修改目录1 标准口目标 11.1 前言 11.2 目标 11.3 标准 12 评估22.1 筛选 22.1.1 候选软件22.1.2 License 评估32.1.3 软件功能评估42.1.4 开发语言评估72.1.5 小结82.2 开发接口调查 102.2.1 Nagios102.2.2 Opennms113 结论194 MISC 1923v1.0可编辑可修改1标准和目标1.1前言目前开源的网管软件众多,时间关系只能通过网络上的资料介绍和其他用户的体验进行评 估。对于重点调查的开源软件通过运行环境搭建、开发环境搭建的方法进行实
2、践。如果只是对通用网络设备的管理,被调研的软件只要经过适当的配置就可以满足要求。对于我们的需求,这些软件不能满足我们100%勺需求,必须进行二次开发,对软件二次研发的接口的调研就成为我们考察软件的一个重要的组成部分。部门对网管软件的定位应该不会投入过多的资金,商用软件价格高昂应该不在考虑范围之内,也尽量不选用开源软件商用版本,重点放在纯开源软件上。选择了一种开源软件也就选择了一种架构,所以架构的选择也要适合我们部门的开发能力。1.2目标选择一款适合的开源软件,在此基础上进行整合和二次开发,构建部门设备网管平台。1.3标准选型标准:Lice nse不仅仅是免费,无lice nse限制是首选;市场
3、占有率广泛的市场占有率, 说明软件得到过足够多的验证;针对于成功的开源软件, 可以找到一些第三方的扩展资源,我们只要遵循拿来主义就好;功能11v1.0可编辑可修改一些功能可以直接拿来使用,或者简单的改造,可以节约成本;完备的扩展开发接口被选择的开源软件是否已经提供完备的二次开发接口,满足二次开发的要求;开发技术选择开源软件的另外一个层面考虑是尽量考虑使用部门成员最熟悉的开发技术,尽量避免涉及相对部门来说的新技术、开发语言,这样可以进一步研发降低成本;开源架构就我们目前的需求, 开源网管软件的功能, 我们能用到的部分并不多。 选择了开源其实主要就是选择它的架构。架构的开放性,易扩展性将直接决定我
4、们的研发成本。2评估开源网管软件的市场占有情况上图是网络监控软件的占有率。其中以Nagios和Opennms占有率最高。2.1筛选2.1.1候选软件NagiosOpennms22v1.0可编辑可修改CactiZenossZabbixSugarNMS2.1.2 License 评估开源软件Lice nse使用限制NagiosGPLGPL( GNUGe neralPublic Lice nse)OpennmsFreeFree,也可以购买相应服 务CactiGPLGPLZenossGPLGPL2Zenoss提供开源版和企业版两种版本ZabbixGPLGPL2SugarNMS免费版、标准版、企业版免费
5、开源和商业开源两个版本不是sourceforge 下的产品33v1.0可编辑可修改2.1.3软件功能评估Hgic-sZabbaxC-actiZ-lfK)SEOpen ULI SRepunse TimeFaitFite?FitChartsHeYasYgTrendingStoY?ggYesTrend pr-ecfictiri畑MenkrcTiU rikTl E ATTIJnlknp-BvnA u teut i 5 coweryMoVesNoVesYesAenthfT奄Y#sNoYesB lii rigWMIVes, using时尺尸EsrjMPYes. usinga pluginYes&SYeaE
6、xterixal crapli mYesY&丫殆UnkiGftmYePlvgjna:Ves囱YeiJnlcrTiVftsYmPlugincreaticnWc-diLTiEasy?T rigg e r s?Al ertEC HIYesYesYejYeaYeaWetsApp 冈Vix a he her CRJ 口 m the irc-it(ta- rig marine: -冲清 are rrxritofLngtiundrcds ar ViDdEnck hadx.1 hnartder* -ild docMtfiaE.hon can bn au nd irl 口”几靶a Hq*.开源软件功能Nagio
7、s网络服务监控 (SMTP POP3 HTTP NNTP ICMR SNMP FTP SSH 主机资源监控(CPU load、disk usage、system logs ),也包括 Win dows 主机(使用 NSClie nt+ plug in )可以指定自己编写的Plugin通过网络收集数据来监控任何情况#v1.0可编辑可修改(温度、警告)可以通过配置Nagios远程执行插件远程执行脚本远程监控支持SSH或SSL加通道方式进行监控简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts 、C+、Perl、ruby、Python、PHR
8、C#等)包含很多图形化数据Plugins ( Nagiosgraph、Nagiosgrapher、PNP4Nagios 等)可并行服务检查能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查当服务或主机出现问题时发出通告,可通过email, pager, sms或任意用户自定义的 plugin进行通知能够自定义事件处理机制重新激活出问题的服务或主机自动日志循环支持冗余监控包括 Web界面可以查看当前网络状态,通知,问题历史,日志文件等-可以通过手机查看系统监控信息Opennms网络节点自动发现图形用户管理界面故障监控故障事件管理操作系统监控网络节点配置信息管理全面的节点监控55v1.
9、0可编辑可修改ZenossZenoss Core是开源企业级IT管理软件-是智能监控软件,他允 许IT管理员依靠单一的 WEB$制台来监控网络架构的状态和健康 度。Zenoss Core同时也是开源的网络与系统管理软件。Zenoss Core的强大能力来自于深入的列表与配置管理数据库, 以发现和管理公司IT环境的各类资产(包括服务器、网络、和其 他结构设备)。Zenoss可以创建关键资产清单和对应的组件级别 (接口、服务、进程,已安装的软件等)。建立好模型后,就可以监控与报告IT架构中各种资源的状态和性能容限了。Zenoss同时提供与CMD联联的事件和错误管理系统,以协助提高各类事件 和提醒的
10、管理效率。以此提高IT管理人员的效率。Zabbix-CPU负荷-内存使用-磁盘使用-网络状况-端口监视-日志监视SugarNMS1. 安全功能支持多用户访问系统,每个用户可以管理不同的设备。系统记录用户操作日志和设备运行日志。2. 网络拓扑图米用zhTelecom iTopoview 技术,生动的展示网络结构图和拓扑图。对于大量的管理对象,可以通过划分组、网络、域进行分级管理。大部分管理操作可以在拓扑图上直接进行。设备运 行状况在拓扑图上可以直接显示。3. 故障管理系统利用多种手段包括主动轮询、设备通报、性能超标诊#v1.0可编辑可修改断等监控故障的发生,并能实时将故障通知到管理员。在拓扑图
11、上通过不冋颜色来提示不冋级别的故障。可以查看故障的原因、 发生时间、发生地等。支持故障智能分析,帮助管理员找到根本 原因。4性能监控系统可按预先定义的策略,定期的对被管设备进行性能监视,采集包括负载、容量、质量、连通性、错误率、工作状态、 可靠度、服务状态等多种性能指标,提供实时和历史的性能数据 报表。5性能分析综合比较分析性能数据,发现网络瓶颈和潜在问题,为优化网络提供依据。预先对性能指标定义不冋的警告阀值,在指标 超过阀值的时候,提前通知管理员,能有效的预防故障发生。6. 设备配置管理控制设备启动、恢复出厂设置,对设备固件升级备份,配 置各种运行参数、服务参数等。7. 管理工具集在界面上集
12、成各种外部管理工具,如Ping、Telnet、Web连接、各种专用工具等。8. 扩展支持系统提供配置文件、数据库、程序3个级别的修改扩展,实现对新功能的支持。2.1.4开发语言评估开源软件语言其他细节77v1.0可编辑可修改NagiosCWeb php+cgiOpennmsJava, jsp/ Servlet,springMaven工程,支持eclipse 开MVC发CactiPHPZenossPytho nZabbixC( backend ) PHP (WEBSugarNMSJavaJ2SE、XML HTTP JDBC Swing、RMI、O-M Mapping、O-RMapping 等2.
13、1.5小结软件选项Lice nse(free得分2, GPL得分1,商用得分0)市场占 有率,以 市场占 有率高 低依次 计分功能(全面得分3, 基本全面2,其他1)管理界面(FULLCONTRL2 其他1)开发语言(Java 得分 3, C/C+得分2,其他1)得分Nagios1631214Opennms2532316Cacti122218Zenoss1432111Zabbix1332211SugarNMS013239关于license , Opennms的license 网站描述如下#v1.0可编辑可修改G O Op&nNMS is free, open s
14、ource softwareThere are no license keys.Iher are no maintenance or upgrade costs eittier.You can download, examine, modify and distribute the source code.Commercial support, development, training, and professional services are available.其他软件基本上都是在 GPL限制下进行。如果我们选用了,在不付费的情况下就是涉及开放 源码的问题。但也可以打擦边球“一个关于G
15、PL重要的争议是,非GPL软件是否可以动态链 接到GPL库”。从市场占有率来讲,Nagios和opennms应用的比较广,也意味着更多的资料可以获取,更 多的经验可以借鉴。从开发语言来说,Nagios使用c开发,界面PHR cgi也是由c来开发的,由于c的复杂性, 扩展开发上存在一定的难度, 但是c对我们部门来说还是比较熟悉的。 Opennms是基于java 的,Web管理界面是基于 JSP/ Servlet , Spring MVC。但是Nagios没有配置界面,配置需要直接修改配置文件。如果选用建议推翻所有目前的cgi方式的管理界面,全部重新开发,或者再结合其他的管理软件。Cacti基于P
16、HP zenoss基于python , zabbix基于c和php, SugarNMS开源程度不够,所 以不做过多调研。 99v1.0可编辑可修改从以上分析,倾向选择 Nagios和opennms中的一种。调研过程中分别搭建了Nagios和Opennm啲运行环境。搭建了 Opennms的开发环境,(Nagios的编译环境,源码包解压缩就是开发环境,无所谓搭建了)。在搭建Opennms的过程中遇到一点点麻烦。Opennms的安装和编译环境搭建都比较费力,Opennms的编译环境依赖于Maven, eclipse的开发环境也需要花上一定的时间,尤其是公司的网络有诸多限制。Nagios编译和部署非常
17、的顺畅,可以下载源码包直接编译安装。2.2开发接口调查基于上文中的调查,对于开发接口的调查只针对于Nagios和Opennms2.2.1 NagiosNagios支持插件开发。支持 C/C+,JAVA,脚本,并且有大量开发好的Plugins。插件是编译的可执行文件或脚本(Perl脚本,shell脚本等),可以从命令行运行检查状态或一个主机或服务。Nagios的插件的使用结果来确定网络上的主机和服务的当前状态。Nagios在需要时执行Plugin检查服务或主机状态。NRPE方 式:Monitoring HostR册ot* Llnux/Un1011NRPE是一个插件,允许执行远程Linux/Un
18、ix主机上的插件。如果需要监控远程主机上的v1.0可编辑可修改1111资源和属性,如磁盘使用情况,CPU负载,内存使用等,需要使用这种方式。通过使用check_by_ssh插件可以实现类似的功能。NSCA方式:Monitoring HealRamate Lbnux/Unlic HostLinux/ Unix主机到 Nagios监控服务器NSCA是 一个插件,允许你发送被动检查结果从远程上运行的守护进程。在分布式和冗余/故障监测设置,这是非常有用的。NDOUtils 方式:NagiosNDOMODModuleTCP orUniiSoi-eliEfft” NDO2DB广*j力MySQLDebase
19、* Dae ma nNDOUtils是一个插件,允许把所有状态信息存储在MySQL数据库中的 Nagios。Nagios的多个实例都可以存储在一个集中的报告的中央数据库的信息。这可能会作为一个新的基于PHP的未来的Nagios的Web界面的基础上。Nagios提供了 Nagios Plugin API。但是并没有提供除 Nagios提供的功能外的其他功能的开发。添加新的服务需要阅读c代码,难度上相对比较大。基于这一点,Nagios并不能满足我们的要求。2.2.2 OpennmsOpe nnms是装配式的,支持根据配置装载服务和插件,扩展性很强。v1.0可编辑可修改RRDUsersT omcat
20、(Xi口攸KR1)KKIJRRDNel work上图为opennms的架构图,其中一些部分在最新版中有所变化。T omcat(JivcvcrvtEE:THAPDC XPSDbICMP flF表是opennms并发的进程并发任务守护程序名称英文描述操作守护程序acti ondActi on daem on - automated acti on (work flow)自动操作执行工 具,用于根据入站 事件自动操作(工 作流)。采集守护程序collectdcollects data从受管节点米集数据。功能守护程序capsdcapability checkon nodes对所发现的节点 执行功能检查
21、。它 通常检查某个接 口的端口,看它是 否支持已知的服 务协议。#v1.0可编辑可修改DHCP守护程序dhcpdDHCP clie nt forOpe nNMS为 Ope nNMS 提 供 DHCP客户 机功能。发现守护程序discoveryin itial andongoingdiscovery 互联网控制消息协议(InternetCon trol Message Protocol或简写 ICMP对受管网络节点 进行初始的发现 以及持续进行定 期发现。事件管理器守护程序eve ntdman ages/stores eve nts管理来自其它并 发任务的事件,并 将它们存储至U RDBMS通知
22、守护程序n otifdexter nalnotification ofusers向用户执行外部通知。故障管理器守护程序outagedOutage man ager daem on - con solidates eve nts合并事件,以为每个受管节点/服 务提供持续的历 史故障视图。轮询器守护程序pollerdPoller daem on - polls man aged no des/services定期轮询受管节点/服务,以决定操作状态。RTC管理器守护rtcdRTC man ager实时收集数据,为1313v1.0可编辑可修改程序daem on - real time availabi
23、lity in formatio n用户定义的各类 受管节点/服务 提供可用性信息。SNMP陷阱守护程序trapdSNMP trap daemon-han dles SNMPtraps处理 SNMP陷阱(事件)。阈值服务守护程序threshdThreshold daem on -mon itor for threshold values根据属性值是否 达到指定的阈值 来监控受管节点 /服务。支持总控/调度,发现,配置采集,性能采集,事件(告警)收集,轮询服务。通过在配置需要的服务。OpenNMS系统配置信息通过 XML数据存储,基于linux系统和Postgres数据库的网络管理系统。网络数据
24、通过JDBC对数据进行持久化, Web采用JSP/Servlet 。OpenNMS是一个OpenSource Framework ,它采用了诸多的开源组件与框架,使用了各种协议的开源实现。每一个层面服务、功能都有自己的配置文件。OpenNM睬用了 xml数据绑定技术(opennms采用的是castor )。根据xml文件的schema定义文件(xsd文件)生成对xml文件到java对象的映射,这样就不需要写解析 xml文件的 代码而是针对java对象进行操作。因此这些类都是在系统编译过程中由 castor包根据xsd 文件生成的。(Castor是一个Java开源数据绑定框架,它主要目标是提供J
25、ava对象与XML的绑定,Java到SQL的持久化等.)Cleanimports 是对java文件中的无用的imports 作清理,并通过配置文件提供的格式对 imports代码段进行格式整理。#v1.0可编辑可修改各种单元测试手段,HttpU nit , jWeb Unit , Ju nit。nekohtml解析HTML Html Tidy对html 字符串进行修正,并做标准化的处理。Avalon主要是一种Server的架构,可以满足配置、日志等服务器程序的需要。Jdhcpjava DHCP 的实现。Xerces 解析 XML API 与实现有:xmlParserAPIs, xml-apis
26、, xercesImpl。jCIFS,用Java开发的SMB客户端库。ldap-impl , LDAP java 实现。,SMTP POP3协议 Java 实现。JRobin基于LGPL授权的网络性能监控系统,是RRDTool的一个纯Java实现。joeSNMP, Java SNMP类库。WebUI:Ope nNMS匡架逻辑上采用了 MVC架构,准确来说是 JSP MVC Model 1,采用此架构的主要理念是尽量把逻辑与表示分离,这有利于系统健壮性,代码重用和结构清晰,便于重新设计,并长期维持。在OpenNM中MVC各部分主要代表如下:1515v1.0可编辑可修改#HITPEwiitfrom
27、 Client Browse+listParairielcre VectorThe print。iyie th ad will stream out html to the client fcinowserModel+ do3onnething:void视图(JSP)OpenNMS勺页面通过Model请求回来的内容以 HTML XML/XSL,图表等形式呈现给客户 端。控制器(Servlet )Ope nNMS勺控制器采用Servlet方式的,配置在文件中,用来接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送 HTML表单时,控制器本身不输出任何东西和做任何
28、处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。模型(Buss in ess Object/Java Bean)模型表示企业数据和业务规则。模型允许重用相同的代码跨数个不同的用户界面组件。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。开发接口:为了扩展OpenNM管理OpenNMSt供了一个简单快速的框架用来扩展设置缺省服务与协议, 一个可定制的服务或协议需满足如下要求:v1.0可编辑可修改以 Caspd plugin 为例编写代码capsd plugin(插件)测试网络接口是否有支持期望的协议或服务添加一个 v
29、protocol plugin元素,在 $OPENNMS_HO的l/etc/ config定义新的服务。编写代码poller插件,在某一特定的网络接口,监测当前期望的协议或服务的状态。在$OPENNMS_HO的ll/etc/ config 配置文件中添加 service和monitor元素定义新的调用服务。1.编写 PluginCapsd使用plugin执行设备的性能检测,一个Plugin是一个实现接口的 Java类。F列接口中的方法必须实现:publicin terfacePlugi npublicStri ng getProtocolName();publicboolea nisProtocolSupported(I netAddress address);publicboolea nisProtocolSupported(I netAddress address, Map qualifiers)在配置文件添加,比如FtpPlugi nvproperty key=port value=21 /vproperty key=timeout value=2000 /vproperty key=retry
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林防火基层知识培训会课件
- 桶装水工艺培训课件
- 桥梁质量培训课件
- 桥梁知识培训心得体会
- 大面积脑梗死的护理试题及答案
- 2025年外企招聘面试技巧与模拟题解析英语专项
- 2025年市场营销专业岗位能力测试题库及答案解析
- 2025年电商物流行业招聘物流运营总监的面试技巧及参考答案
- (2025校招)人工智能工程师招聘笔试试题及答案
- 2025年电商行业运营经理招聘面试题解析
- 我们为什么要努力学习-励志主题班会(课件)
- JJF 2182-2024农灌机井取水量计量监测方法
- 工作交接表模板
- 人教版PEP四年级英语上册全册课件
- 数据治理与数据中台建设方案
- 全册(教案)人教精通版英语六年级上册
- DL-T5455-2012火力发电厂热工电源及气源系统设计技术规程
- 穴位贴敷治疗过敏性鼻炎技术
- 公司自行车管理制度
- 《剧院魅影:25周年纪念演出》完整中英文对照剧本
- 蒋诗萌小品《谁杀死了周日》台词完整版
评论
0/150
提交评论