四大頂級開源網絡管理工具詳解
譯文【2013年7月10日 51CTO外電頭條】隨著網絡方案的不斷擴展與多元化走勢,大量有線及無線設備開始成為網絡體系不可或缺的組成部分,用戶對網絡監控工具的需求也隨之持續走高。雖然功能豐富的商業產品比比皆是,但來自開源社區的強大方案仍然對監控工具市場的發展起到巨大的推動作用。
在本系列文章中,我們將一同剖析四款高人氣開源產品--Nagios Core 3.5、NetXMS 1.2.7、OpenNMS 1.10.9以及Zenoss Core 4.2。四款產品都已經相當成熟,足以提供與其它企業級同類方案相媲美的綜合性監控能力,同時擁有良好的社區支持體系。
四款產品都提供管理、性能監控以及網絡設備警示與報告功能,其作用范圍涵蓋服務器、路由器、交換機、打印機、UPS、網絡站點、業務應用程序以及移動設備等等。監控功能可以簡單起效,用戶可以像使用PING請求那樣利用SNMP(即簡單網絡管理協議)或者本地代理對單一設備進行全面管理。
此次參與評述的四款產品經實測全部支持SNMP及其它通用型協議,包括WMI、HTTP、SMTP、SSH以及XML。盡管其中兩款產品只能用于特定操作系統,但四者全部可以實現跨平臺IT基礎設施監控(本質上說可作用于任何擁有IP地址的設備)。它們支持的功能包括自動識別、SNMP、可閱讀系統日志、觸發器/警報設置、Web應用程序、分布式監控(即負載平衡)、映射、IPv6(只有NetXMS不支持IPv6)以及庫存追蹤。
四款產品還提供基本而全面的基礎設施監控功能,而且很少甚至完全不需要額外硬件、內存以及存儲機制作為監控環境的支持基礎。在本次評述中,我們將從安裝便捷性、配置便捷性、管理能力、多平臺支持能力、報告機制及總體可用性等幾個角度做出橫向比較。
第一位競爭者:Zenoss
Zenoss堪稱我們的首選方案,這主要是由于其直觀且專業的管理界面對于用戶極具吸引力。另外,其環境配置與報告運作機制也非常簡便;當需要幫助時,我們找到的用戶指導文檔非常翔實清晰--出色的說明資料在開源領域極為難得。但完美永遠只是目標卻無法真正達成,我們發現Zenoss對資源要求較高,即使只管理少數幾臺設備、它也需要消耗大量硬件及內存等附加資源。
Zenoss Core是一款開源網絡管理工具,可以運行在紅帽企業Linux(簡稱RHEL)或者社區企業操作系統(簡稱CentOS)兩大Linux版本當中。另有一套虛擬設備版本,能夠利用VMware Player運行在最小安裝配置下的CentOS當中。Zenoss Core基于Gnu GPL2許可。除了開源版本之外,Zenoss還提供多套商業監控解決方案。
Zenoss不需要搭配代理,且使用SNMP、SSH、Telnet以及WMI等現有協議。在識別過程中,Zenoss會收集個別設備的組件信息并歸納其潛在運行依賴關系,通過這種方式創建出的基礎架構清單被稱為"配置模型"、這也正是Zenoss網絡管理方案的核心所在。
除了使用自動識別功能之外,管理員還可以手動輸入信息并將監控的ZenPack數量調整至200以上,從而拓展單一或多臺設備所搭配的配置模型。ZenPack從使用層面看類似于開源免費社區所開發的功能性插件。Core ZenPack被打包在Zenoss Core版本當中,而商業版ZenPack則只會出現在商業版本中。
在解決了一系列硬件需求與依賴關系問題后,我們最終成功在運行著CentOS 6.4最小化版本(無圖形用戶界面)的虛擬機中安裝了Zenoss 4.2。我們發現Zenoss在設計思路上并沒有考慮輕量級基礎設施的配置現狀--事實上最少要6GB內存才能讓一臺僅安裝了操作系統和Zenoss的設備進入正常運行狀態。Zenoss資源密集型方案的頭銜可謂實至名歸,它能夠監控多達一千臺設備,且建議配置為最少16GB內存與八個CPU核心,存儲空間和傳輸速度也是越強越好。
Zenoss能夠監控多種操作系統平臺,其中包括網絡設備(例如路由器與交換機)、服務器以及特定應用程序。它采用分層式架構:用戶層、數據層、處理層與采集層。用戶層基本負責提供用戶界面,數據層則負責從三個不同的數據庫中收集數據,處理層管理采集層與數據層之間的通信工作,采集層利用一系列服務向數據層提供收集到的數據。
可用性監控的實現依賴于一系列手段,例如利用ICMP或者SNMP響應對TCP/IP端口及服務進行測試及查詢。Zenoss還能夠對Windows及Linux流程及服務進行可用性檢測。
Zenoss通過收集SNMP OID值的方式實現性能監控。整個過程需要借助預加載MIB(即管理信息基礎)、新的本地MIB以及對定制性能插件的內置支持等機制。
安裝完成之后,Zenoss就能像物理設備那樣接受來自不同設備(包括臺式機、筆記本及移動設備)瀏覽器的訪問。其用戶界面高效而直觀,在默認情況下會顯示警示信息以及基礎設施地理位置。用戶還可以通過配置在瀏覽器中查看任何URL、內部或外部頁面。儀表板中顯示的信息可以通過開發者提供的所謂“門戶組件”進行調整,各項目的對應顯示窗口也可隨時添加、刪除并在儀表板內部任意拖拽及調整窗口尺寸。這樣的開放性讓我們能夠隨心所欲定制出符合需要的選項。“守護進程關閉”、“消息”與“生產狀態”等功能也擁有對應的門戶組件。
在向監控工具中添加設備時,大家可以使用自動識別功能或者手動輸入設備的IP地址或主機名稱。在設備添加完成之后,具體項目會顯示在“基礎設施”選項卡中、并附帶狀態基礎信息與彩色編碼提示。
除了"基礎設施"之外、"事件"選項卡中顯示的基本屬于同類信息,但只按事件進行排序。事件與基礎設施兩種標簽使管理員能夠通過輸入數列標題對大部分數列加以分類。對于每個事件,大家可以執行不同的處理操作,包括“只應答事件但不實際執行”及向設備發出“手動ping”或者“snmpwalk”指令以檢索更多信息等。事件一旦處理完成,Zenoss會將其關閉并進行歸檔。
Zenoss Core提供強大的報告功能,從基礎的準備就緒報告到定制報告功能應有盡有。除了標準的事件、設備及性能報告之外,Zenoss還還提供完善的圖形化報告,包括在同一份報告中包含多份匯總自多臺設備的圖形化報告。這些報告可在屏幕中顯示、打印在紙面上或者被保存為PDF文件。
目前已經有大量第三方ZenPack可供下載,其中一些甚至允許用戶實現Zenoss與移動Android設備間的交互需求,我們也可以利用由Zenoss提供的API說明文檔創建屬于自己的ZenPack。
雖然Zenoss Core對于系統配置的要求頗為嚴苛,但這也使得整套監控環境在性能上極為強大、足以處理規模化設備與數據流量。Zenoss的用戶界面靈活而富于現代氣息,豐富的選項與定制化儀表板令人印象深刻。無論是顯示在屏幕上還是打印成PDF形式,其統計報告都極具綜合性且信息排布井井有條。另外,我們還要再次掌握Zenoss那超過兩百頁的PDF用戶手冊,面面俱到的內容與清晰明了的指導在開源領域極為難得。#p#
第二位競爭者:OpenNMS
OpenNMS是一款強大的網絡管理工具,能夠運行在大多數平臺之上且足以應對大規模數據的管理工作,其定制儀表板功能尤其令人贊嘆。由于已經得到廣泛普及,目前已經有超過一萬五千款插件可供用戶選擇。
作為一款基于Java的跨平臺產品,OpenNMS能夠運行在任何支持Java SDK 1.6及更新版本的平臺上。OpenNMS基于GNU GPL許可,開發團隊還提供商業許可及相關技術支持。OpenNMS的核心功能包括二層及三層連接自動識別、網絡自動識別、自動配置以及服務識別等。在最新版本中,這款工具還添加了對IPv6的支持能力。OpenNMS擁有一套內置網絡服務器系統,用戶通過內置用戶列表、LDAP或者RADIUS協議實現身份驗證。
除了創建自有事件,OpenNMS還可以從SNMP、HTTP、WMI、XML、JMX以及系統日志等外部協議中接收性能數據。從服務監控方面來看,它能夠與一系列常用協議及服務進行通信,包括DNS、Windows服務狀態、BGP會話、思杰、郵件協議等等,這還只是其通信對象中的一小部分。目前已經有一百多家廠商為其開發出超過一萬五千款trap,其中SNMP trap接收器能夠在設備啟動后為其提供大量實用功能。
我們可以通過多種方式實現通知推送目的,包括利用標準頁面調度程序、郵件通知機制以及更具定制特色的微博(例如Twitter)與命令行呼叫等方式。在整合性方面,它能夠與DNS交互、接收并上傳節點信息,還可與Hyperic HQ、RANCID以及Asterisk電話平臺等第三方產品進行交互。
最后,OpenNMS還提供多種報告選擇,用戶可以通過預先配置調整報告機制或添加以日期范圍為基礎的篩選方案。報告可以在指定時間運行,其結果會被保存到文件系統中或通過電子郵件發送至特定收件人。生成的文件格式分為PDF與CSV兩種。
OpenNMS的最低系統要求非常親民,只需要512MB內存。但如果要讓整套系統有能力應對任何數據采集任務,那么用戶仍然需要在處理器、內存以及存儲配置方面進行大幅強化。
由于該工具圖形用戶界面所采用的JSP頁面屬于動態編譯,因此除JRE之外、OpenNMS還必須配合完整的Java SDK才能正常運行。再有,PostgreSQL也必須提前安裝就緒。
我們將OpenNMS作為獨立服務器安裝在Windows系統當中,并利用Web圖形用戶界面在瀏覽器中進行管理操作。在登錄之后,主頁面會顯示關于基礎設施的一些基本信息,例如各節點在過去24小時中的停機或者可用狀態,并額外提供專門的區域用于訪問與報告功能。大家在屏幕上方的水平鏈接欄中還能找到其它導航機制。
OpenNMS主要利用兩種特定配置方式向監控體系中添加新功能,即自動識別與定向識別。我們先通過一系列參數設定讓OpenNMS了解如何根據需求識別基礎設施,大家可以在"識別配置"中輸入URL、特定的IP及IP地址范圍并設定例外情況的方式調整其識別機制。值得一提的是,大部分OpenNMS配置信息都被以XML格式保存在文件中,熟悉XML的用戶可以直接在對應文件中進行修改、而不必使用圖形用戶界面。
在配置過程中,我們發現用戶需要經常查閱在線說明文檔(好在指導材料還算全面),否則很多任務根本無法完成。之所以面臨諸多挑戰,是因為我們對于OpenNMS所使用的基礎設施技術術語不夠熟悉。從理論角度講,節點應該會被自動識別并添加到監控體系當中,但由于我們的測試實驗室擁有許多故意隔離出來的節點,因此這部分配置工作只能通過手動方式完成。
全局導航對于我們來說不太符合邏輯,不過我們認為各個環節與屏幕信息在整合之后會使其得到改善。也許這只是由配置引起的小問題,但我們發現在打開警報、事件或者通知選項卡后,屏幕上確實不會顯示任何內容--除非大家進行搜索或者點擊查看全局鏈接。
不過我們清楚,對于大型基礎設施來說除非與篩選工具配合使用、否則屏幕上直接顯示出的基礎信息幾乎沒什么實際價值。我們在登錄后只能看到采用儀表板風格的屏幕, 而且需要點擊OpenNMS以返回管理面板。我們還可以點擊鏈接激活另一個儀表板界面,其中提供一部分關于基礎設施的簡要信息,但通過橫向比較、我們發現這套方案效果平平。
我們對于搜索功能非常贊賞,而OpenNMS也確實在搜索功能的可用性方面下足了功夫。我們尤其喜愛以節點為單位搜索DNS或者POP3等特定服務這一功能。另一項實用功能在于對與資產(包括位置、操作系統及運行狀態)相關的數據字段進行搜索。
OpenNMS的報告功能非常全面,其中包含大量預創建模板并能夠運行臨時報告。報告可被輸入到屏幕中或者以PDF及/或CSV格式匯總成文件。
我們發現OpenNMS的用戶界面需要經過一定調整才能滿足大部分使用者對直觀性的需求,但隨著對界面的愈發熟悉、我們的注意力更多集中在了這款產品出色的功能身上。管理員界面提供大量實用信息,相信能很快得到大家的肯定。我們也喜歡它帶來的創建只讀儀表板的功能。搜索功能非常強大,彩色編碼警報也效果顯著。總體來看,OpenNMS確實是一款能夠支持多種平臺的出色管理工具。#p#
第三位競爭者:NetXMS
這次我們一起來看NetXMS。這是一款用戶界面有些凌亂、但卻擁有豐富工具集的產品,不僅能對基礎設施進行細化管理、而且在移動方面傾注了大量心血。
NetXMS可以運行在Windows 2003及更新版本、Linux、Solaris、AIX、HP-UX以及FreeBSD等多套系統平臺之上,并遵循GPL許可機制。
NetXMS的最大特色就是能在不借助外部插件的前提下以原生方式支持大量主流平臺。NetXMS能夠使用SNMP以及本地"高性能"代理、從而收集數據并將結果提交并保存至SQL數據庫中(包括甲骨文、微軟SQL Server、PostgreSQL、MySQL以及SQLLite)。我們可以通過自動或者手動方式實現二層與三層網絡基礎設施識別。收集到的數據會被保存在監控服務器中,并由管理員通過多種方式加以訪問。
數據收集由對象/節點負責,而且每個對象/節點都擁有與自身相關聯的閾值限制,例如服務器內存利用率或者路由器流量限值等。一旦超出閾值,NetXMS會直接觸發某些事件;而隨著閾值的回落,系統則繼續觸發正常業務事件。NetXMS還支持Android,既可以對Android設備進行管理、又可以作為設備監控的代理機制。
除了在屏幕上顯示通知及警報信息,NetXMS還允許管理員通過配置發送警報短信及電子郵件。具體事件也可被轉發至另一臺NetXMS服務器或其它外部系統。NetXMS還具備本地腳本引擎,旨在實現高級自動化與管理功能。
NetXMS的系統配置要求簡直可謂沒有要求--只需要512KB內存與主頻低于1GHz的處理器。不過對于大部分生產安裝環境來說,主機操作系統還需要額外的CPU處理核心/強度/速率以及更大的內存容量。要安裝在Windows系統中,我們還需要為其準備一套單獨的數據庫服務器,用于保存配置設定以及數據收集(支持PostgreSQL、MySQL、甲骨文或者SQL Server)。某些PDF說明文檔已經有些過時(官方網站也已經明確提示了這一點),但我們發現維基百科能夠起到很好的指導作用。
在測試環境中,我們將NetXMS安裝在運行著PostgreSQL管理方案的Windows Server 2008 R2系統中,同時配備一套基于Java的桌面界面、Web界面或者移動管理控制臺。NetXMS還會同時安裝自己的輕量級web服務器,這樣大家就不必再安裝IIS、Apache或者其它web服務器了。不過各位千萬不要把Web界面安裝在NetXMS所在的目錄中,這樣會導致工具安裝失敗、相當于搬起石頭砸自己的腳。不過安裝導航會默認將二者裝在同一個目錄中,這可能是供應商的失誤。
NetXMS管理控制臺的既定目標之一在于提供一套統一化跨平臺圖形用戶界面(包括Web界面),從這個角度來看NetXMS無疑獲得了極大成功。
雖然我們也在獨立的臺式機上測試過Web用戶界面,但本次測試的大部分工作都利用了運行在服務器上的桌面應用程序。登錄之后,工作臺就成了我們的主要視圖界面,用戶可以通過不同的自定義方式對其進行調整,并將保存結果用于未來的會話過程。初一上手,用戶界面上的大量標簽與鏈接可能會讓新手們感到不太適應。
要實現完整的自動識別功能,供應商建議我們讓工具對大型網絡進行幾個小時乃至一整夜的全局掃描。由于我們的測試環境規模不大,因此整個識別過程耗時并不太長(不到30分鐘)。大家也可以通過一系列簡單步驟手動添加節點。節點添加完成后,NetXMS將在"事件狀態"窗口中顯示節點的基本信息,例如某個進程無法正常工作或者某個節點處于不可用狀態。此外,工具還提供多個數據連接項(簡稱DCI),允許用戶針對每個節點進行自定義配置或者將配置方案保存在模板并推廣到整個網絡當中。這樣如果需要對配置進行整體修改,我們就不必在每個節點中重復折騰。
屏幕報告功能給我們留下了深刻印象,該功能允許用戶運行一系列臨時報告;報告結果所產生的數據集可被導出為CSV文件。NetXMS還集成了Jaspersoft報告引擎,從而實現了創建自定義報告并在必要時加以重復使用。
總體而言,NetXMS是一套功能強大的管理工具,但在配置方面頗具挑戰,因為設定與控制布局過多使整個調整邏輯顯得有些混亂。用戶手冊也還不錯,但具體內容應該再重新整理一遍。另一項不足之處在于,管理控制臺應該提供與當前情況相關的幫助機制。
從積極的角度看,我們對NetXMS的跨平臺能力、移動設備支持能力以及在移動設備中運行管理控制臺的能力深表贊賞。便捷的自定義儀表板創建功能只需幾次鼠標點擊即可完成,能夠幫助用戶以可視化方式掌握網絡運行狀態。#p#
第四位競爭者:Nagios
Nagios對于基礎設施規模不大的小型企業而言非常理想,在它的幫助下技術團隊無需像大型企業那樣花費大量時間通過命令行對節點加以配置。
早在上世紀九十年代末Nagios就已經誕生,盡管最初是針對Linux所設計、但它在Unix平臺上的運行狀況同樣出色。Nagios Core是一款遵循GNU通用公共許可的開源軟件,另有Nagios企業版為用戶提供商業技術支持。
Nagios能夠監控包括SMTP、POP3、HTTP、NNTP以及PING在內的多種網絡服務。它還會追蹤主機資源的使用情況,例如處理器負載、內存及磁盤使用量等。利用自定義插件,用戶能夠開發出自己的服務檢查方案。Nagios Core與之前提到的幾款工具有所不同,其Core版本與市場上的其它商業產品相比縮水比較嚴重。
如果想使用SNMP trap或者移動應用等功能,大家必須采購其"專業版"或者"商務版",而后端數據庫選項則只在"商務版"中提供。"學生版"雖然僅僅售價50美元,但也只提供了快速入門指南、一套預配置虛擬機外加Web配置圖形用戶界面等基本功能。免費版本更是相當寒酸,只包含開源監控引擎。
HTTP、FTP以及SMTP等公共服務能夠在不部署主機代理或者依賴于SNMP的前提下受到,但任何"私有"服務--例如CPU與內存使用率、用戶信息、服務狀態及運行流程等--都需要通過在主機上安裝代理方可實現。針對不同類型的主機,供應商也提供不同種類的代理機制,例如Windows服務器、Linux/Unix服務器、打印機、路由器與交換機等。除了安裝代理之外,大家還需要更新一系列配置文件以順利啟動監控工具。Nagios Exchange網站提供大量可選插件,足以滿足用戶在實際監控/管理工作中的不同需求。
在通知功能方面,Nagios能夠通過電子郵件或者手機短信發送警示信息,并有專門的系統根據問題的嚴重程度向不同個人及小組傳達情況。
Nagios Core必須運行在Linux或者Unix的衍生系統環境下,如果要使用Web界面(也就是CGI,即計算機生成界面)、我們還需要準備一臺web服務器(最好是Nagios與Apache一一對應)。
準備好前續工作后,我們需要從快速入門指南開始著手Nagios Core的安裝工作。在我們的實際測試中,指南計劃很快擱淺--因為我們選擇Linux最新版本根本不在供應商的支持范疇之內。為了完成測試,我們不得不依靠第三方在線資源的指引將Nagios Core安裝在CentOS 6.4版本中。必須抱怨的是,Nagios官方網站上根本就沒有提供這樣的備選說明。
Web用戶界面中包含的CGI素材在外觀與操作感受上都與Web頁面非常相似。管理員啟動頁面左側設有基本導航與公告/訪問軟件更新、技術支持與其它實用資源等選項。進入左側的導航界面,我們可以訪問各類指標,包括主機、問題以及報告的總體概述與細節信息。
“戰術總結”屏幕顯示出包括主機及服務在內的整套體系的當前運行狀態。狀態摘要則通過“關鍵”、“警告”、“未知”、“待定”以及“良好”等詞匯對情況加以概括。網絡圖中顯示了所有主機、各自運行狀態以及彼此之間的連接方式。通過將光標移向不同主機,我們看到更為詳細的概要信息。如果我們的基礎設施由數百乃至上千臺主機構成,那么這項功能恐怕沒什么實用價值;但在小規模基礎設施中,它倒確實能夠提供實時的網絡體系說明。
Nagios應用的一大優勢在于能夠在節點之間快速起效。略顯平庸的用戶界面使得資源沒有被浪費在花哨的描述與表現形式上(但這也使界面較難上手)。雖然簡單的設計不能算壞事,但我們仍然希望供應商能將界面風格加以進一步統一,同時對顯示數據進行整理以提高可讀性。當然,也許他們是故意通過這種笨拙的效果敦促用戶盡快購買商業版本。
在報告功能方面,Nagios Core提供多種預置屏幕報告方式,用戶可以在通過選項參數設置在下拉菜單中使用臨時報告。但我們無法將報告內容以PDF或者其它任何格式加以導出。
單從免費版本來看,Nagios Core可謂名符其實--只提供“核心”功能組件,即最基本的基礎設施監控引擎。雖然這樣的方案在某些特定環境中也能順利起效,但我們仍然希望花點時間進行任務管理配置。盡管Nagios Core的圖形用戶界面有些過時,但其性能表現非常出色、而且比其它全功能競爭方案更易于設置及管理。
備注:
NetXMS與OpenNMS具備很強的跨平臺能力,而Zenoss與Nagios則基于Linux環境。為了在Linux與Windows之間找到測試環境平衡點,我們選擇將NetXMS與OpenNMS安裝在Windows服務器當中。
原文鏈接:
http://www.networkworld.com/reviews/2013/070813-open-source-network-management-271449.html?page=1