NMS開源軟件選型分析評估報告_第1頁
NMS開源軟件選型分析評估報告_第2頁
NMS開源軟件選型分析評估報告_第3頁
NMS開源軟件選型分析評估報告_第4頁
NMS開源軟件選型分析評估報告_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、NMS開源軟件選型分析評估報告15 / 17文檔可自由編輯打印目錄1標準和目標11.1前言11.2目標11.3標準12評估22.1篩選22.1.1候選軟件22.1.2 License評估2 2.1.3軟件功能評估32.1.4開發(fā)語言評估52.1.5小結62.2開發(fā)接口調查72.2.1 Nagios72.2.2 Opennms83結論144MISC141 標準和目標1.1 前言目前開源的網(wǎng)管軟件眾多,時間關系只能通過網(wǎng)絡上的資料介紹和其他用戶的體驗進行評估。對于重點調查的開源軟件通過運行環(huán)境搭建、開發(fā)環(huán)境搭建的方法進行實踐。如果只是對通用網(wǎng)絡設備的管理,被調研的軟件只要經過適當?shù)呐渲镁涂梢詽M足要

2、求。對于我們的需求,這些軟件不能滿足我們100%的需求,必須進行二次開發(fā),對軟件二次研發(fā)的接口的調研就成為我們考察軟件的一個重要的組成部分。部門對網(wǎng)管軟件的定位應該不會投入過多的資金,商用軟件價格高昂應該不在考慮范圍之內,也盡量不選用開源軟件商用版本,重點放在純開源軟件上。選擇了一種開源軟件也就選擇了一種架構,所以架構的選擇也要適合我們部門的開發(fā)能力。1.2 目標選擇一款適合的開源軟件,在此基礎上進行整合和二次開發(fā),構建部門設備網(wǎng)管平臺。1.3 標準選型標準:² License不僅僅是免費,無license限制是首選;² 市場占有率廣泛的市場占有率,說明軟件得到過足夠多的驗

3、證;針對于成功的開源軟件,可以找到一些第三方的擴展資源,我們只要遵循拿來主義就好;² 功能一些功能可以直接拿來使用,或者簡單的改造,可以節(jié)約成本;² 完備的擴展開發(fā)接口被選擇的開源軟件是否已經提供完備的二次開發(fā)接口,滿足二次開發(fā)的要求;² 開發(fā)技術選擇開源軟件的另外一個層面考慮是盡量考慮使用部門成員最熟悉的開發(fā)技術,盡量避免涉及相對部門來說的新技術、開發(fā)語言,這樣可以進一步研發(fā)降低成本;² 開源架構就我們目前的需求,開源網(wǎng)管軟件的功能,我們能用到的部分并不多。選擇了開源其實主要就是選擇它的架構。架構的開放性,易擴展性將直接決定我們的研發(fā)成本。2 評估開源

4、網(wǎng)管軟件的市場占有情況上圖是網(wǎng)絡監(jiān)控軟件的占有率。其中以Nagios和Opennms占有率最高。2.1 篩選2.1.1 候選軟件² Nagios² Opennms² Cacti² Zenoss² Zabbix² SugarNMS2.1.2 License評估開源軟件License使用限制NagiosGPLGPL( GNU General Public License)OpennmsFreeFree,也可以購買相應服務CactiGPLGPL ZenossGPLGPL2Zenoss提供開源版和企業(yè)版兩種版本ZabbixGPLGP

5、L2SugarNMS免費版、標準版、企業(yè)版免費開源和商業(yè)開源兩個版本不是sourceforge下的產品2.1.3 軟件功能評估The NRPE addon is designed to allow you to execute Nagios plugins on remote Linux/Unix machines開源軟件功能Nagios網(wǎng)絡服務監(jiān)控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、)主機資源監(jiān)控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient+ plugin)可以指定自己編寫的Plugin通過網(wǎng)絡收

6、集數(shù)據(jù)來監(jiān)控任何情況(溫度、警告)可以通過配置Nagios遠程執(zhí)行插件遠程執(zhí)行腳本遠程監(jiān)控支持SSH或SSL加通道方式進行監(jiān)控簡單的plugin設計允許用戶很容易的開發(fā)自己需要的檢查服務,支持很多開發(fā)語言(shell scripts、C+、Perl、ruby、Python、PHP、C#等)包含很多圖形化數(shù)據(jù)Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)可并行服務檢查能夠定義網(wǎng)絡主機的層次, 允許逐級檢查, 就是從父主機開始向下檢查當服務或主機出現(xiàn)問題時發(fā)出通告,可通過email, pager, sms 或任意用戶自定義的plugin進行通知能夠自定

7、義事件處理機制重新激活出問題的服務或主機自動日志循環(huán)支持冗余監(jiān)控包括Web界面可以查看當前網(wǎng)絡狀態(tài),通知,問題歷史,日志文件等 - 可以通過手機查看系統(tǒng)監(jiān)控信息Opennms網(wǎng)絡節(jié)點自動發(fā)現(xiàn)圖形用戶管理界面故障監(jiān)控故障事件管理操作系統(tǒng)監(jiān)控網(wǎng)絡節(jié)點配置信息管理全面的節(jié)點監(jiān)控ZenossZenoss Core是開源企業(yè)級IT管理軟件-是智能監(jiān)控軟件,他允許IT管理員依靠單一的WEB控制臺來監(jiān)控網(wǎng)絡架構的狀態(tài)和健康度。Zenoss Core同時也是開源的網(wǎng)絡與系統(tǒng)管理軟件。 Zenoss Core的強大能力來自于深入的列表與配置管理數(shù)據(jù)庫,以發(fā)現(xiàn)和管理公司IT環(huán)境的各類資產(包括服務器、網(wǎng)

8、絡、和其他結構設備)。Zenoss可以創(chuàng)建關鍵資產清單和對應的組件級別(接口、服務、進程,已安裝的軟件等)。建立好模型后,就可以監(jiān)控與報告IT架構中各種資源的狀態(tài)和性能容限了。Zenoss同時提供與CMDB關聯(lián)的事件和錯誤管理系統(tǒng),以協(xié)助提高各類事件和提醒的管理效率。以此提高IT管理人員的效率。Zabbix- CPU負荷- 內存使用- 磁盤使用- 網(wǎng)絡狀況- 端口監(jiān)視- 日志監(jiān)視 SugarNMS1. 安全功能    支持多用戶訪問系統(tǒng),每個用戶可以管理不同的設備。系統(tǒng)記錄用戶操作日志和設備運行日志。2. 網(wǎng)絡拓撲圖    采用zhT

9、elecom iTopoview技術,生動的展示網(wǎng)絡結構圖和拓撲圖。對于大量的管理對象,可以通過劃分組、網(wǎng)絡、域 進行分級管理。大部分管理操作可以在拓撲圖上直接進行。設備運行狀況在拓撲圖上可以直接顯示。3. 故障管理    系統(tǒng)利用多種手段包括主動輪詢、設備通報、性能超標診斷等監(jiān)控故障的發(fā)生,并能實時將故障通知到管理員。在拓撲圖上通過不同顏色來提示不同級別的故障??梢圆榭垂收系脑?、發(fā)生時間、發(fā)生地等。支持故障智能分析,幫助管理員找到根本原因。4. 性能監(jiān)控    系統(tǒng)可按預先定義的策略,定期的對被管設備進行性能監(jiān)視,采集包括負載、容

10、量、質量、連通性、錯誤率、工作狀態(tài)、可靠度、服務狀態(tài)等多種性能指標,提供實時和歷史的性能數(shù)據(jù)報表。5. 性能分析    綜合比較分析性能數(shù)據(jù),發(fā)現(xiàn)網(wǎng)絡瓶頸和潛在問題,為優(yōu)化網(wǎng)絡提供依據(jù)。預先對性能指標定義不同的警告閥值,在指標超過閥值的時候,提前通知管理員,能有效的預防故障發(fā)生。6. 設備配置管理    控制設備啟動、恢復出廠設置,對設備固件升級備份,配置各種運行參數(shù)、服務參數(shù)等。7. 管理工具集    在界面上集成各種外部管理工具,如Ping、Telnet、Web連接、各種專用工具等。8. 擴展支持&#

11、160;   系統(tǒng)提供配置文件、數(shù)據(jù)庫、程序 3個級別的修改擴展,實現(xiàn)對新功能的支持。2.1.4 開發(fā)語言評估開源軟件語言其他細節(jié)NagiosCWeb php+cgiOpennmsJava,jsp/ Servlet,spring MVCMaven工程,支持eclipse開發(fā)CactiPHPZenossPythonZabbixC(backend ) PHP(WEB)SugarNMSJavaJ2SE、XML、HTTP、JDBC、Swing、RMI、O-M Mapping、O-R Mapping等2.1.5 小結軟件選項License(free得分2,GPL 得分1,商

12、用得分0)市場占有率,以市場占有率高低依次計分功能(全面得分3,基本全面2,其他1)管理界面(FULL CONTRL2,其他1)開發(fā)語言(Java得分3,C/C+得分2,其他1)得分Nagios1631214Opennms2532316Cacti122218Zenoss1432111Zabbix1332211SugarNMS013239關于license,Opennms的license網(wǎng)站描述如下其他軟件基本上都是在GPL限制下進行。如果我們選用了,在不付費的情況下就是涉及開放源碼的問題。但也可以打擦邊球“一個關于GPL重要的爭議是,非GPL軟件是否可以動態(tài)鏈接到GPL庫”。從市場占有率來講,

13、Nagios和opennms應用的比較廣,也意味著更多的資料可以獲取,更多的經驗可以借鑒。從開發(fā)語言來說,Nagios使用c開發(fā),界面PHP,cgi也是由c來開發(fā)的,由于c的復雜性,擴展開發(fā)上存在一定的難度,但是c對我們部門來說還是比較熟悉的。Opennms是基于java的,Web管理界面是基于JSP/ Servlet,Spring MVC。但是Nagios沒有配置界面,配置需要直接修改配置文件。如果選用建議推翻所有目前的cgi方式的管理界面,全部重新開發(fā),或者再結合其他的管理軟件。Cacti基于PHP,zenoss基于python,zabbix基于c和php,SugarNMS開源程度不夠,所

14、以不做過多調研。從以上分析,傾向選擇Nagios和opennms中的一種。調研過程中分別搭建了Nagios和Opennms的運行環(huán)境。搭建了Opennms的開發(fā)環(huán)境,(Nagios的編譯環(huán)境,源碼包解壓縮就是開發(fā)環(huán)境,無所謂搭建了)。在搭建Opennms的過程中遇到一點點麻煩。Opennms的安裝和編譯環(huán)境搭建都比較費力,Opennms的編譯環(huán)境依賴于Maven,eclipse的開發(fā)環(huán)境也需要花上一定的時間,尤其是公司的網(wǎng)絡有諸多限制。Nagios編譯和部署非常的順暢,可以下載源碼包直接編譯安裝。2.2 開發(fā)接口調查基于上文中的調查,對于開發(fā)接口的調查只針對于Nagios和Opennms。2.

15、2.1 NagiosNagios支持插件開發(fā)。支持C/C+,JAVA,腳本,并且有大量開發(fā)好的Plugins。插件是編譯的可執(zhí)行文件或腳本(Perl腳本,shell腳本等),可以從命令行運行檢查狀態(tài)或一個主機或服務。 Nagios的插件的使用結果來確定網(wǎng)絡上的主機和服務的當前狀態(tài)。Nagios在需要時執(zhí)行Plugin檢查服務或主機狀態(tài)。NRPE方式:NRPE是一個插件,允許執(zhí)行遠程Linux/ Unix主機上的插件。如果需要監(jiān)控遠程主機上的資源和屬性,如磁盤使用情況,CPU負載,內存使用等,需要使用這種方式。通過使用check_by_ssh插件可以實現(xiàn)類似的功能。NSCA方式:NSCA是一個插

16、件,允許你發(fā)送被動檢查結果從遠程Linux/ Unix主機到Nagios監(jiān)控服務器上運行的守護進程。在分布式和冗余/故障監(jiān)測設置,這是非常有用的。NDOUtils方式:NDOUtils是一個插件,允許把所有狀態(tài)信息存儲在MySQL數(shù)據(jù)庫中的Nagios。 Nagios的多個實例都可以存儲在一個集中的報告的中央數(shù)據(jù)庫的信息。這可能會作為一個新的基于PHP的未來的Nagios的Web界面的基礎上。Nagios提供了Nagios Plugin API。但是并沒有提供除Nagios提供的功能外的其他功能的開發(fā)。添加新的服務需要閱讀c代碼,難度上相對比較大?;谶@一點,Nagios并不能滿足我們的要求。

17、2.2.2 OpennmsOpennms是裝配式的,支持根據(jù)配置裝載服務和插件,擴展性很強。上圖為opennms的架構圖,其中一些部分在最新版中有所變化。下表是opennms并發(fā)的進程并發(fā)任務守護程序名稱英文描述操作守護程序actiondAction daemon - automated action (work flow)自動操作執(zhí)行工具,用于根據(jù)入站事件自動操作(工作流)。采集守護程序collectdcollects data從受管節(jié)點采集數(shù)據(jù)。功能守護程序capsdcapability check on nodes對所發(fā)現(xiàn)的節(jié)點執(zhí)行功能檢查。它通常檢查某個接口的端口,看它是否支持已知的服

18、務協(xié)議。DHCP 守護程序dhcpdDHCP client for OpenNMS為 OpenNMS 提供 DHCP 客戶機功能。發(fā)現(xiàn)守護程序discoveryinitial and ongoing discovery互聯(lián)網(wǎng)控制消息協(xié)議(Internet Control Message Protocol或簡寫ICMP)對受管網(wǎng)絡節(jié)點進行初始的發(fā)現(xiàn)以及持續(xù)進行定期發(fā)現(xiàn)。事件管理器守護程序eventdmanages/stores events管理來自其它并發(fā)任務的事件,并將它們存儲到 RDBMS通知守護程序notifdexternal n

19、otification of users向用戶執(zhí)行外部通知。故障管理器守護程序outagedOutage manager daemon - consolidates events合并事件,以為每個受管節(jié)點服務提供持續(xù)的歷史故障視圖。輪詢器守護程序pollerdPoller daemon - polls managed nodes/services定期輪詢受管節(jié)點服務,以決定操作狀態(tài)。RTC 管理器守護程序rtcdRTC manager daemon - real time availability information實時收集數(shù)據(jù),為用戶定義的各類受管節(jié)點服務提供可用性信息。SNM

20、P 陷阱守護程序trapdSNMP trap daemon handles SNMP traps處理 SNMP 陷阱(事件)。閾值服務守護程序threshdThreshold daemon monitor for threshold values根據(jù)屬性值是否達到指定的閾值來監(jiān)控受管節(jié)點服務。支持總控/調度,發(fā)現(xiàn),配置采集,性能采集,事件(告警)收集,輪詢服務。通過在 service-configuration.xml配置需要的服務。OpenNMS系統(tǒng)配置信息通過XML數(shù)據(jù)存儲,基于linux系統(tǒng)和Postgres數(shù)據(jù)庫的網(wǎng)絡管理系統(tǒng)。網(wǎng)絡數(shù)據(jù)通過JDB

21、C對數(shù)據(jù)進行持久化,Web采用JSP/Servlet。OpenNMS是一個Open Source Framework,它采用了諸多的開源組件與框架,使用了各種協(xié)議的開源實現(xiàn)。每一個層面服務、功能都有自己的配置文件。OpenNMS采用了xml數(shù)據(jù)綁定技術(opennms采用的是castor)。根據(jù)xml文件的schema定義文件(xsd文件)生成對xml文件到java對象的映射,這樣就不需要寫解析xml文件的代碼而是針對java對象進行操作。因此這些類都是在系統(tǒng)編譯過程中由castor包根據(jù)xsd文件生成的。(Castor是一個Java開源數(shù)據(jù)綁定框架,它主要目標是提供Java對象與XML

22、60;的綁定,Java到SQL的持久化等.)Cleanimports是對java文件中的無用的imports作清理,并通過配置文件提供的格式對imports代碼段進行格式整理。各種單元測試手段,HttpUnit,jWebUnit,Junit。 nekohtml解析HTML,Html Tidy對html 字符串進行修正,并做標準化的處理。Avalon主要是一種Server的架構,可以滿足配置、日志等服務器程序的需要。Jdhcp,java DHCP的實現(xiàn)。Xerces解析XML,API與實現(xiàn)有:xmlParserAPIs, xml-apis, xercesImpl。&

23、#160;jCIFS,用Java開發(fā)的SMB客戶端庫。 ldap-impl,LDAP java實現(xiàn)。 smtp.jar pop3.jar,SMTP,POP3協(xié)議Java實現(xiàn)。JRobin基于LGPL授權的網(wǎng)絡性能監(jiān)控系統(tǒng),是RRDTool的一個純Java實現(xiàn)。joeSNMP,Java SNMP類庫。WebUI:OpenNMS框架邏輯上采用了MVC架構,準確來說是JSP MVC Model 1,采用此架構的主要理念是盡量把邏輯與表示分離,這有利于系統(tǒng)健壯性,代碼重用和結構清晰,便于重新設計,并長期維持。在OpenNMS中MVC各部分主要代表如下:² 視圖(JSP)O

24、penNMS的頁面通過Model請求回來的內容以HTML,XML/XSL,圖表等形式呈現(xiàn)給客戶端。² 控制器(Servlet)OpenNMS的控制器采用Servlet方式的,配置在web.xml文件中,用來接受用戶的輸入并調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。² 模型(Bussiness Object/Java Bean)模型表示企業(yè)數(shù)據(jù)和業(yè)務規(guī)則。模型允許重用相同的代碼跨數(shù)個不同的用戶界面組件。由

25、于應用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。開發(fā)接口:OpenNMS提供了一個簡單快速的框架用來擴展設置缺省服務與協(xié)議,為了擴展OpenNMS管理一個可定制的服務或協(xié)議需滿足如下要求:以Caspd plugin為例² 編寫代碼capsd plugin(插件)測試網(wǎng)絡接口是否有支持期望的協(xié)議或服務² 添加一個<protocol plugin>元素,在$OPENNMS_HOME的/etc/capsd-configuration.xml config定義新的服務。² 編寫代碼poller插件,在某一特定的網(wǎng)絡接口,監(jiān)測當前期望的

26、協(xié)議或服務的狀態(tài)。² 在$OPENNMS_HOME的/etc/capsd-configuration.xml config配置文件中添加<service>和<monitor>元素定義新的調用服務。1. 編寫PluginCapsd使用plugin執(zhí)行設備的性能檢測,一個Plugin是一個實現(xiàn)psd.Plugin接口的Java類。下列接口中的方法必須實現(xiàn):public interface Plugin     public String getProtocolName(); 

27、   public boolean isProtocolSupported(InetAddress address);    public boolean isProtocolSupported(InetAddress address, Map qualifiers);在配置文件capsd-configuration.xml添加,比如<protocol-plugin protocol="FTP" class-name="psd.plugins.&qu

28、ot; scan="on"> <property key="port" value="21" /> <property key="timeout" value="2000" /> <property key="retry" value="1" /> </protocol-plugin>在運行時,性能daemon調用isProtocolSupported()方法。此方法是每一加載的plugin通過它.In

29、etAddress對象的每一個被發(fā)現(xiàn)的守護daemon,發(fā)現(xiàn)任何支持此接口的服務將通過接結點標識符與IP地址增加到ifservices數(shù)據(jù)表中。創(chuàng)建Poller PluginPoller daemon使用Poller Plugin輪詢受管制接口所支持的服務當前狀態(tài)。一個Poller Plugin是一個實現(xiàn)mgt.poller.monitors.ServiceMonitor接口的Java類。實現(xiàn)下面的poller plugin接口。public void initialize(java.util.Map parameters);   public

30、 void release(); public void initializworkInterface iface); public void releasworkInterface iface); public int polworkInterface iface,              mgt.utils.EventProxy eproxy

31、,              java.util.Map parameters);在poller-configuration.xml中添加一個新的服務,<service>元素定義服務名稱,多少時間間隔與預定時間,參數(shù)列表需定義在<parameter>元素中。配置參數(shù)將通過poll()方法中的java.util.Map傳遞給plugin<service name="FTP" interval="300000">              <parameter key="timeout" value="3000"/>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論