從發現設備到挖掘系統、網絡和數據流方面的可見性,這些免費開源監控工具或許能滿足IT管理人員的種種需求。
在網絡和服務器管理領域,可見性是第一要訣。作為IT管理人員,要是不知道自己的網絡和服務器每時每刻在干什么,無異于兩眼抹黑。
幸好,有許多優秀的工具(商用版和開源版)可以幫助IT管理人員了解自己的環境。本文整理了幾款好用又免費的開源工具,它們在大大小小的網絡中日復一日地證明了其價值。從網絡和服務器監控到趨勢分析、圖形繪制,甚至交換機和路由器配置備份,這些實用工具可以幫助企業IT管理人員解決問題。
Observium
Observium旨在安裝成擁有專門URL的自有服務器,而不是安裝在更龐大的Web樹體系下。
Observium是一款網絡和主機監控工具,它可以使用SNMP登錄憑據,掃描受監控系統的地址范圍。Observium封裝成LAMP應用程序,設置和配置起來比較容易,只需要安裝通常的Apache、PHP、MySQL、數據庫構建和Apache配置等。
登錄到GUI,開始添加主機和網絡,另外可添加自動發現范圍和SNMP數據,讓Observium搜索網絡,收集發現的每個系統方面的數據。Observium還可以通過CDP、LLDP或FDP來發現網絡設備;主機代理可以部署到Linux系統上,幫助收集數據。
Observium結合了系統及網絡監控與性能趨勢分析,它經配置后可以跟蹤幾乎任何可用的指標。
所有這些數據顯示在易于瀏覽的用戶界面中,該界面提供了大量的統計數據、圖表和圖形。這包括從ping及SNMP響應時間,到列有IP吞吐量、分段和數據包數量等信息的圖形。視設備而定,可以列出發現的每個端口的這些數據,包括清查模塊化設備的結果。
就服務器而言,Observium會顯示處理器、內存、存儲、交換文件、溫度和事件日志狀態。你還可以整合數據收集和服務方面的性能繪圖,包括Apache、MySQL、BIND、Memcached、Postfix及其他服務。
Observium作為虛擬機來運行很順暢,所以很快成為獲取服務器和網絡狀態信息的可靠工具。它為將自動發現和圖表功能引入到各種規模的網絡提供了一種很好的方法。
讓這些工具運行起來通常不是太難。它們通常有程序包可供大多數流行的Linux發行版下載。在一些情況下,它們已預先配置成虛擬服務器。配置和改動這些工具可能要花點時間,這取決于基礎設施的規模,但讓它們最初運行起來通常很容易。至少,它們值得試用一下。
Nagios
Nagios為網絡的許多方面提供了預警系統,其好處怎么強調都不過分。
Nagios是一種成熟的網絡監控框架,多年來一直處于積極開發之中。Nagios用C語言編寫而成,監控軟件包提供了系統和網絡管理員可能需要的幾乎每項功能。Web圖形用戶界面(GUI)一目了然,后端極其可靠。
與Cacti一樣,非常活躍的社區在支持Nagios,還有面向眾多軟硬件的插件。從基本的ping測試到與WebInject等插件整合,IT管理人員可以持續監控服務器、服務、網絡鏈路以及基本上支持IP協議的任何設備的狀態。
沒有通知機制的網絡和服務器監控顯然是不完整的。Nagios擁有完整的郵件/短信通知引擎和逐級上報機制,可以明知地決定通知誰、何時通知,倘若使用得當,這可以避免很多麻煩。如果將Nagios通知與Jabber整合起來,那樣一旦發覺異常,除了收到短信或電子郵件外,使用者還能從Nagios收到介紹問題詳情的即時消息(IM),這取決于受監控對象的逐級上報設置。Web GUI可以用來快速停止通知或確認出現的問題,甚至可以記錄管理員輸入的說明。
Nagios用起來對新手來說可能有難度,不過相當復雜的配置也是其強項,因為它稍加改動,就能適合幾乎任何監控任務。
如果嫌這還不夠,繪圖功能可以不失條理地顯示網絡上的所有受監控設備,并使用色標來顯示出現的問題。
Nagios的缺點在于配置。最好通過命令行來進行配置,新手學起來難度相當大,不過熟悉標準Linux/Unix配置文件的人用起來會得心應手。與許多工具一樣,Nagios的功能也很強大,但需要付出同樣很大的努力,才能充分利用這其中的一些功能。
Cacti
Cacti是一款綜合的性能圖形繪制和趨勢分析工具,可用于跟蹤能夠在圖上繪出來的幾乎任何受監控的指標。它還具有無限可定制性,這意味著它在某些地方會變得很復雜。
早在網絡盛行的20世紀90年代,網絡流量圖軟件MRTG的開發者Tobi Oetiker認為有必要編寫一款基于輪循數據庫模式的簡單的圖形繪制工具,這種模式最適合顯示路由器的吞吐量。MRTG孕育了RRDTool,這是一種獨立式的輪詢數據庫和圖形繪制解決方案,如今用于數量眾多的開源工具中。Cacti是目前開源網絡圖形工具的典范,它將MRTG的最初目標提升到了全新水平。
Cacti是一款LAMP應用程序,它為幾乎各種類型的數據提供了完整的圖形框架。如果某設備或服務返回數值數據,數據就可能被整合到Cacti中。還有模版可監控各種設備,從Linux和Windows服務器到思科路由器和交換機——基本上可監控支持SNMP協議的任何設備。
雖然Cacti的默認收集方法是SNMP,但本地Perl或PHP腳本同樣可以使用。該框架巧妙地將數據收集和圖形繪制分成兩種不同的任務,因而很容易改動和重新組織現有數據,以不同的圖形上予以顯示。此外,使用者可以輕松地選擇圖形的特定時間段和部分,只需要點擊和拖動操作。
如果予以監控,Cacti就能跟蹤從磁盤利用率到電源風扇轉速的各種數據,并迅速顯示這些數據。
使用面向Cacti的PHP Network Weathermap插件可以輕松創建實時網絡圖,顯示網絡設備之間的鏈路利用率,還有將鼠標指針移到網絡鏈路的描述上方時出現的圖形。讓IT人員一眼就能了解網絡利用率和鏈路狀況方面的最新信息。
NeDi
NeDi與Cacti有一定程度上的整合;如果為安裝的Cacti提供了登錄憑據,設備發現結果就會連接到該設備的相關Cacti圖形。
如果需要通過遠程登錄到交換機、查詢MAC地址來搜索網絡上的設備,或者就希望知道某個設備的物理位置(或者可能更重要的是,它之前的位置),那么應該好好了解一下NeDi。
NeDi是一款LAMP應用程序,經常巡視網絡交換機上的MAC地址和地址解析協議(ARP)表,將發現的每個設備登記到本地數據庫中。NeDi不如另外幾個項目來得出名,但在設備不斷移動的企業網絡中,它是一款使用特別方便的工具。
登錄到NeDi Web GUI后,可以按MAC地址、IP地址或DNS名稱來進行搜索,以此確定交換機、交換機端口或任何設備的無線接入點。NeDi從它遇到的每個網絡設備收集盡可能多的信息,獲取序列號、固件及軟件版本、當前溫度和模塊配置等。甚至可以使用NeDi來標記丟失或被盜的設備的MAC地址。如果它們再次出現在網絡上,NeDi會告知使用者。
NeDi不斷巡視網絡基礎設施、登記設備,跟蹤它所發現的每個設備。
可以通過計劃任務(cron)按設定的時間間隔來發現設備。配置很簡單,單單一個配置文件就支持靈活定制,包括能夠基于正則表達式或網絡邊界定義,跳過設備這一功能。如果網絡被不可發現的邊界分開來(就像MPLS網絡那樣),使用者甚至可以包含待查詢設備的種子列表。NeDi通常使用思科發現協議或鏈路層發現協議,在巡視網絡的過程中發現新的交換機和路由器,然后連接到它們,收集其信息。一旦初始配置已做好,執行發現設備這項任務相當快。
Icinga
Icinga提供了一套全面的監控和警報框架,旨在與Nagios一樣開放、易于擴展,不過有幾個不同的Web用戶界面(UI)選項。
Icinga起初是Nagios的一個分支,但最近被改寫為Icinga 2。這兩個版本都在積極開發之中,現在已經可用,Icinga 1.x與Nagios插件和配置向后兼容。Icinga 2則更小巧更簡潔,它提供了分布式監控和多線程框架,這是Nagios或Icinga 1所沒有的。你可以從Nagios遷移到Icinga 1,并從Icinga 1遷移到Icinga 2。
與Nagios一樣,Icinga可以用來監控任何支持IP的設備,可以用SNMP和自定義插件及附件來實現深入監控。
Icinga有幾個Web UI,與Nagios的一大區別在于配置,可以通過Web UI而不是通過配置文件來進行配置。對于更喜歡不用命令行來管理配置的人,這是一大優點。
Icinga整合了諸多繪圖和監控軟件包,比如PNPP4Nagios、inGraph和Graphite,提供了強大的性能可視化功能。Icinga還擴展了報告功能。
Zabbix
Zabbix最初的部署頗有難度,但合理使用模版和自動發現可緩解整合方面的麻煩。除了可安裝的程序包外,Zabbix還有虛擬設備這種形式,可支持幾種流行的虛擬機管理程序。
Zabbix是一款全面的網絡和系統監控工具,它把幾項功能合并到基于Web的單一控制臺中。它可以配置成監控和收集來自眾多服務器和網絡設備的數據,以監控每個對象的服務和性能。
Zabbix可通過受監控系統上運行的代理來運行,也可以不用代理來運行,使用SNMP或其他監控方法,比如遠程檢查SMTP和HTTP等開放服務。它明確支持VMware及其他虛擬機管理程序,并生成虛擬機管理程序性能和活動方面的深入數據。另外特別注重對Java應用服務器、Web服務和數據庫的監控。
主機可以手動添加,也可以通過自動發現過程來添加。一套廣泛的默認模版適用于最常見的使用場合,比如Linux、FreeBSD和Windows服務器;SMTP和HTTP等知名服務,以及ICMP和IPMI設備,實現深入的硬件監控。此外,用Perl、Python或幾乎任何語言編寫的自定義檢查機制可以整合到Zabbix中。
Zabbix可借助一系列廣泛的工具來監控服務器和網絡,包括用來監控虛擬機管理程序和Web應用堆棧的工具。
Zabbix還提供了可定制的儀表板和Web UI顯示畫面,以便側重注意最關鍵的部件。通知和逐級上報可利用易于定制的操作,這些操作可應用到主機或主機群。甚至可以配置操作,以觸發遠程命令。
Zabbix以圖形的方式顯示性能數據,比如網絡吞吐量和處理器利用率,并將數據收集起來,通過可定制的圖形來顯示。此外,Zabbix還支持可定制的網絡圖、屏幕,甚至幻燈片,顯示受監控設備的當前狀態。
Ntop
Ntop是一款數據包嗅探工具,其簡潔的Web UI可顯示網絡流量方面的實時數據。它還實時提供了主機數據流和數據通信配對信息。
在過去這十年,Ntop(現在名為Ntopng,意指 “下一代”)已取得了長足發展。可以稱之為Ntop或Ntopng,這是一款一流的網絡流量監控工具,外加一目了然的Web GUI。它用C語言編寫而成,完全獨立。你只要運行配置為監控某個特定網絡接口的單一進程,就這么簡單。
Ntop提供了簡單易懂的圖形和表格以顯示當前和過去的網絡流量,包括協議、來源、目的地和特定事務的歷史記錄,以及兩端的主機。一系列廣泛的網絡利用率圖形、實時圖和趨勢,還有面向眾多附件(比如NetFlow和sFlow監控工具)的插件框架。甚至還有Nbox,這是一款嵌入Ntop的硬件監控工具。
Ntop甚至整合了輕量級Lua API框架,該框架可用來通過腳本語言來支持擴展。Ntop還將主機數據存儲在輪詢數據庫(RRD)文件中,支持持久性數據收集。
Ntopng最方便的用途之一是現場流量檢查。比如,其中一個Cacti PHP Weathermap插件突然顯示紅色的網絡鏈路集合時,IT管理人員就知道那些鏈路的利用率超過了85%,但不知道個中原委。通過切換到監控網段的Ntopng進程,就能獲得會話流量最高者的每分鐘報告,立馬知道哪些主機對此負責、它們在推送什么流量。
這種可見性很重要,也很容易獲得。實際上,IT管理人員可以針對在交換機層面配置成監控另一個端口或虛擬局域網(VLAN)的任何接口運行Ntopong,就是這樣。