網(wǎng)絡(luò)監(jiān)控神器!這7大免費開源工具可別錯過
編者按,在房地產(chǎn)市場,真正一錘定音的是地段,但在網(wǎng)絡(luò)和服務(wù)器管理領(lǐng)域,可視性才是一切。如果你不了解自家的網(wǎng)絡(luò)和服務(wù)器每天都在“密謀”著什么,早晚都得碰上大災(zāi)難。
幸運的是,市場上有大量工具(有收費的也有開源的)可以點亮我們的網(wǎng)絡(luò)環(huán)境,保我們不受黑暗侵擾。
對普通用戶來說,免費總比收費好,因此今天編輯決定把自己壓箱底的開源工具分享出來,希望它們能守護好各位的網(wǎng)絡(luò)。這 7 大免費工具可以滿足用戶從網(wǎng)絡(luò)到服務(wù)器監(jiān)控的各種需求,里面甚至還有交換機和路由器的備份。
Cacti
此前如果要監(jiān)控網(wǎng)絡(luò)鏈路流量負載,大家一般會用到 MRTG 這個工具。上世紀 90 年代,Tobi Oetiker 抓住時機以輪詢數(shù)據(jù)庫為基礎(chǔ)寫了一個簡單的繪圖工具,這個工具監(jiān)控起路由器流量非常好用,它就是 MRTG。經(jīng)過一段時間的發(fā)展,Cacti 出現(xiàn)了,它扛起了 MRTG 的大旗,將流量監(jiān)控能力提高到了一個新的高度。
Cacti 是一款 LAMP 應(yīng)用,它能為各類數(shù)據(jù)繪制出一個完整的圖形框架。在最新版本中,Cacti 采集數(shù)據(jù)的能力幾乎無人可及,從數(shù)據(jù)中心冷卻單元回液溫度、濾波器體積再到 FLEXlm 許可證的應(yīng)用都不在話下。如果設(shè)備或服務(wù)可以反饋數(shù)值型數(shù)據(jù),它就能與 Cacti 融為一體。對于如何監(jiān)控使用了 SNMP 協(xié)議的設(shè)備(Linux 和 Windows 服務(wù)器、路由器、交換機等),Cacti 已經(jīng)有了模版,而針對其他硬件和軟件的模板也在不斷完善中。
雖然 Cacti 默認主攻 SNMP 協(xié)議設(shè)備,但本地 Perl 或 PHP 腳本照樣可以使用。Cacti 的圖形框架可以熟練的分離采集到的數(shù)據(jù)并將其繪制成離散實例圖,方便重組現(xiàn)有數(shù)據(jù)并反饋到監(jiān)視器中。除此之外,你還能通過點擊和拖曳在圖中觀察特定的時間點和區(qū)域。
只要能監(jiān)控到的數(shù)據(jù),Cacti 都能追蹤到
只要用上 PHP Network Weathermap 插件,你就能創(chuàng)建自己的實時網(wǎng)絡(luò)地圖,實時掌握網(wǎng)絡(luò)設(shè)備的鏈路使用率。當你的鼠標懸停在網(wǎng)絡(luò)鏈接的描述上時,就會有完整的圖像出現(xiàn)。聽說,許多地方都可以用到Cacti,比如,把一臺 42 寸的 LCD 顯示器掛在墻上,讓員工一眼就能看到網(wǎng)絡(luò)的利用情況和連接的狀態(tài)。
Cacti 絕對是一款性能強悍且用途廣泛的繪圖和趨勢工具,它除了能追蹤一切,還有近乎無限的可定制能力,因此到底能不能挖掘出 Cacti 的最大潛力還得看你自己。
Nagios
Nagios 是一款成熟的網(wǎng)絡(luò)監(jiān)控工具,它已經(jīng)誕生多年且處在不斷開發(fā)中。用 C 語言編寫的 Nagios 只要搭配監(jiān)控套件使用,就能滿足大多數(shù)網(wǎng)絡(luò)和系統(tǒng)監(jiān)控人員的需求。Nagios 后端穩(wěn)固且擁有流暢直觀的 Web 圖形用戶界面。
與 Cacti 一樣,Nagios 背后有一個活躍的社群,它能用到的插件資源也相當豐富。配合 WebInject 使用,你就能完成對服務(wù)器、網(wǎng)絡(luò)服務(wù)和連接等的實時監(jiān)控。筆者主要用 Nagios 監(jiān)控服務(wù)器磁盤空間、RAM、CPU 和 FLEXlm 許可證利用率、服務(wù)器溫度、WAN 和網(wǎng)絡(luò)連接延遲等。此外,它還能保證 Web 服務(wù)器不但能回答 HTTP 查詢,還能反饋期望頁面。
沒有通知提醒的網(wǎng)絡(luò)和服務(wù)器監(jiān)控無疑是不完整的,Nagios 就有一套 email/短信通知引擎,同時還能通過升級來獲取智能通知能力(在對的時間通知對的人),如果使用得當絕對是超級殺手锏。除此之外,筆者還將 Nagios 與 Jabber(即時通訊服務(wù)器)進行了整合,有了即時通訊、email 和短信三種方案,再也不怕錯過通知了。借助流暢的 Web 圖形用戶界面,用戶還能快速暫停通知或發(fā)現(xiàn)問題,同時它還能記錄管理員留下的便條。
Nagios 對初學者來說有些困難,但復雜的配置也是它的力量來源
如果以上這些還不夠你用,Nagios 還有映射功能,它能按網(wǎng)絡(luò)上的位置將被監(jiān)控設(shè)備有邏輯的呈現(xiàn)在監(jiān)視器上,同時用彩色編碼標出存在的問題。
不過 Nagios 也有缺點,它配置起來實在太復雜了,至少對初學者來說是挺費時間的。不過,如果你掌握了標準的 Linux/Unix 配置文檔,就會覺得一切都挺簡單。與其他工具一樣,Nagios 功能繁多,但想用好這些功能也得有相對應(yīng)的能力。
在這里我想說的是,別因為 Nagios 的復雜性而氣餒,玩轉(zhuǎn)了它之后能省下的時間簡直不可限量。此外,Nagios 上的預警系統(tǒng)絕對值得一用,所以花點時間好好學學吧。
Icinga
Icinga 起初是 Nagios 的一個分支,但最近被重新編寫成了 Icinga 2。眼下,兩個版本都還處在不斷開發(fā)中,Icinga 1.x 可以直接反向兼容 Nagios 插件和配置。Icinga 2 則是做減法得來的,它還能提供分布式監(jiān)控和多線程框架,這是 Nagios 或 Icinga 1 所不具備的。你可以從 Nagios 遷移到 Icinga 1,然后再遷移到 Icinga 2。
與 Nagios 一樣,Icinga 幾乎也能通吃所有設(shè)備,搭配 SNMP、定制插件和擴展使用效果更佳。
Icinga 提供全局監(jiān)控和警告框架,只是在 Web UI 上與 Nagios 有所不同
Icinga 有多款 Web UI,它與 Nagios 的不同主要是配置,用戶通過 Web UI 就能搞定,省去了麻煩的配置文檔。對于那些在命令行之外管理配置的人來說,這是個重大利好。
Icinga 融入了多款繪圖和監(jiān)控套件(如 PNP4Nagios、inGraph 和 Graphite),可視化性能絕對可靠。此外,Icinga 還擁有擴展報告功能。
NeDi
如果你搜尋網(wǎng)絡(luò)上的設(shè)備時還需要遠程登錄交換機并進行 MAC 地址查詢,或者說你希望知道某臺設(shè)備身處何方,那么 NeDi 絕對是個好選擇。
NeDi 是一款 LAMP 應(yīng)用,它會對網(wǎng)絡(luò)交換機上的 MAC 地址和 APR 映射表進行篩查,在本地數(shù)據(jù)庫給發(fā)現(xiàn)的每個設(shè)備編目。雖然這款工具不太有名,但對于那些設(shè)備一直處在移動中的公司網(wǎng)絡(luò)來說,它用起來確實非常方便。
你可以直接登陸 NeDi 的 Web 圖形用戶界面并通過 MAC 地址、IP 地址或 DNS 域名來搜索交換機、交換機端口或任何設(shè)備的無線 AP。NeDi 會盡可能多的從它遇到的網(wǎng)絡(luò)設(shè)備上采集信息,并把序列號、硬件和軟件版本號、當前的溫度、模塊配置等給記錄下來。你甚至可以用 NeDi 標示出被盜或丟失設(shè)備的 MAC 地址。如果這些設(shè)備重新在網(wǎng)絡(luò)上露面,NeDi 會自動通知用戶。
NeDi 會一直游走在網(wǎng)絡(luò)中并給設(shè)備編目
發(fā)現(xiàn)設(shè)備是定時任務(wù),而配置則更加直截了當,它自帶一個配置文檔,用戶可以根據(jù)需求進行定制,包括使用正規(guī)則表達式或網(wǎng)絡(luò)邊界定義跳過某個設(shè)備。如果你使用的是 MPLS 網(wǎng)絡(luò)或由原先的界限分隔的網(wǎng)絡(luò),甚至可以直接插入設(shè)備的種子列表來查詢。NeDi 通常會使用 CDP 協(xié)定或鏈路層發(fā)現(xiàn)協(xié)定,在網(wǎng)絡(luò)中穿梭時它會順帶發(fā)現(xiàn)新的交換機和路由器,隨后連上這些設(shè)備手機信息。一旦搞定了初始設(shè)置,運行發(fā)現(xiàn)任務(wù)就會變的相當快。
其實 NeDi 與 Cacti 已經(jīng)實現(xiàn)了一定程度的融合,如果給 Cacti 提供可用的增速,還能直接調(diào)用 Cacti 的圖形框架。
Ntop
Ntop 計劃,也就是傳說中的 Ntopng,已經(jīng)陸陸續(xù)續(xù)開發(fā)了十年。它是一款頂尖的網(wǎng)絡(luò)流量監(jiān)控工具,Web 圖形用戶界面簡潔且順滑。它使用 C 語言編寫且完全獨立,你只需要運行配置,就能監(jiān)控某個特定網(wǎng)絡(luò)接口的單一進程,就這么簡單。
Ntop 提供了簡單易懂的圖形和表格來顯示當前和過去的網(wǎng)絡(luò)流量,包括協(xié)議、源、目的地以及特定交易的歷史,甚至兩端的主機。此外,你還會發(fā)現(xiàn)廣泛的網(wǎng)絡(luò)利用率圖表、實時地圖和趨勢,以及針對各種附加件(例如NetFlow和sFlow)的插件框架。這里甚至還有專門嵌入到 Ntop 的硬件監(jiān)控器 Nbox。
Ntop 甚至用上了輕量級 Lua API 框架,通過腳本語言就能支持擴展。Ntop 還可以將主機數(shù)據(jù)存儲在 RRD 文件中,以支持持久的數(shù)據(jù)采集。
Ntop 最便捷的用途就是現(xiàn)場流量檢查。當你發(fā)現(xiàn)自己的某個 Cacti PHP Weathermap 突然顯示紅色的網(wǎng)絡(luò)鏈接集時,就意味著這些鏈接的利用率超過了 85%,但原因卻不得而知。只要切換到 Ntopng 程序來監(jiān)控該網(wǎng)絡(luò)段,就可以查看最高流量消耗者每分鐘的報表,并立即獲知到底哪個主機在占用流量。
這種可視性算得上是無價之寶了,而且唾手可得。從本質(zhì)上來講,你可以在被配置成交換機級別的任何端口運行 Ntopng,以便監(jiān)控任何端口或者 VLAN。
Zabbix
Zabbix 是一款全面的網(wǎng)絡(luò)和系統(tǒng)監(jiān)控工具,它將多個功能集成到了一個基于 Web 的控制臺。它可以配置為監(jiān)控和采集來自各種服務(wù)器和網(wǎng)絡(luò)設(shè)備的數(shù)據(jù),為每個目標提供服務(wù)和性能監(jiān)控。
Zabbix 可與運行在監(jiān)控系統(tǒng)上的代理協(xié)同工作,它也可以使用 SNMP 或其他監(jiān)控方法(如對開放服務(wù) SMTP 和 HTTP 的遠程檢查),這樣無需代理就能運行。它支持 VMware 和其他虛擬化管理程序,并可生成關(guān)于管理程序性能和活動的深度數(shù)據(jù)。此外,Zabbix 還可以監(jiān)控 Java 應(yīng)用程序服務(wù)器、Web 服務(wù)和數(shù)據(jù)庫等。
用戶可以手動或通過自動發(fā)現(xiàn)過程添加主機。一組廣泛的默認模版集適用于最常見的用例,例如 Linux、FreeBSD 和 Windows 服務(wù)器。一些知名服務(wù)(如 SMTP 和 HTTP),以及 ICMP 和 IPMI 設(shè)備也可進行詳細的硬件監(jiān)控。此外,使用 Perl、Python 或幾乎任何語言編寫的自定義檢查也可以整合進 Zabbix。
監(jiān)控服務(wù)器和網(wǎng)絡(luò)時,Zabbix 用到了一個巨大的工具集
Zabbix 還能提供可定制的儀表盤及 Web 用戶圖形界面來突顯最關(guān)鍵的組件。通知和升級可以作為自定義操作添加到主機或主機組。你還可以將操作配置為觸發(fā)遠程命令,當觀察到某個事件達到一定標準,就會自動在被監(jiān)控的主機運行腳本。
Zabbix 會以圖形形式顯示性能數(shù)據(jù),如網(wǎng)絡(luò)數(shù)據(jù)吞吐量和 CPU 使用率,用戶還可以用定制的顯示方式收集它們。此外,Zabbix 支持用定制地圖、屏幕及幻燈片來顯示被監(jiān)控設(shè)備的當前狀態(tài)。
開始階段 Zabbix 用起來很復雜,但謹慎使用模版和自動發(fā)現(xiàn)功能可以緩解整合時的麻煩。此外,除了可安裝的工具包,Zabbix 還可以充當幾種流行管理程序的虛擬設(shè)備。
Observium
Observium 是一個網(wǎng)絡(luò)和主機監(jiān)控器,它可以為系統(tǒng)掃描位置范圍并使用通用 SNMP 登錄憑證來監(jiān)控系統(tǒng)。作為一款 LAMP 應(yīng)用,Observium 設(shè)置和配置起來比較容易,只需安裝常見的 Apache、PHP、MySQL、數(shù)據(jù)庫創(chuàng)建和 Apache 配置等。安裝完成后,它就成了自己的服務(wù)器,自帶專用 URL,而不是隸屬于更大的 Web 樹。
隨后,你可以登錄圖形用戶界面并開始添加主機和網(wǎng)絡(luò)、自動發(fā)現(xiàn)范圍和 SNMP 數(shù)據(jù)等。下一步就是讓 Observium 在整個網(wǎng)絡(luò)穿行,并采集每個系統(tǒng)的數(shù)據(jù)。Observium 還可以通過 CDP、LLDP 或 FDP 發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備,主機代理則可以部署到 Linux 系統(tǒng)來幫助完成數(shù)據(jù)的采集。
Observium 結(jié)合了系統(tǒng)網(wǎng)絡(luò)監(jiān)控與性能趨勢分析
所有這些數(shù)據(jù)都會呈現(xiàn)在易用的用戶界面上,它能提供大量統(tǒng)計數(shù)據(jù)、圖表和圖形,其中包括 ping 和 SNMP 響應(yīng)時間,以及 IP 輸出、分片、數(shù)據(jù)包數(shù)量等。根據(jù)設(shè)備的不同,這些數(shù)據(jù)可以用于每個端口,也包括模塊化設(shè)備。
對服務(wù)器來說,Observium 會顯示 CPU、RAM、存儲、swap、溫度和事件日志狀態(tài)。你還可以將數(shù)據(jù)收集和服務(wù)的性能圖表進行整合,包括 Apache、MySQL、BIND、Memcached 和 Postfix等。
Observium 是一款超棒的 VM 工具,因此它也可以迅速成為監(jiān)控服務(wù)器和網(wǎng)絡(luò)狀態(tài)信息的常用工具,該工具可以給各種規(guī)模的網(wǎng)絡(luò)帶來自動發(fā)現(xiàn)和圖表功能。
DIY
通常來說,IT 管理員認為他們不能越線,無論我們面對的是定制應(yīng)用或“不受支持”的硬件,我們很多人都認為,如果監(jiān)控工具無法立即處理它,也就意味著它無法處理了。但事實并非如此,只要多付出點努力,沒有什么不能監(jiān)控、登記,而且我們還能讓它們更具可視性。
典型例子就是具有數(shù)據(jù)庫后端的自定義應(yīng)用,如 Web 商店或公司內(nèi)部財務(wù)應(yīng)用。管理層希望通過漂亮的圖形和圖表來描述數(shù)據(jù)的使用情況。舉例來說,如果你已經(jīng)在使用 Cacti,就有幾種方法可以構(gòu)建這種圖表,比如構(gòu)建簡單的 Perl 或者 PHP 腳本在數(shù)據(jù)庫運行查詢功能,并將數(shù)據(jù)傳輸?shù)?Cacti,或者使用私有 MIB(管理信息庫)調(diào)用 SNMP 數(shù)據(jù)庫服務(wù)器。這完全可以做到,并且很容易就能完成。
如果是不受支持的硬件,只要它使用 SNMP,就很容易獲取你需要的數(shù)據(jù),但可能需要費點勁。只要你有正確的 MIB 來查詢,隨后就可以使用這些信息來編寫或修改插件來采集這些數(shù)據(jù)。在很多情況下,你甚至可以使用標準 SNMP 整合你的云服務(wù)到這種監(jiān)控中,當然也可以通過云供應(yīng)商提供的 API。雖然你有云服務(wù),但并不意味著你應(yīng)該將所有監(jiān)控交給云供應(yīng)商。因為它們可能不像你一樣了解你的應(yīng)用和服務(wù)堆棧。
對普通技術(shù)人員來說,讓這些工具運行起來并不困難,因為這些工具通常有針對 Linux 的數(shù)據(jù)包可供下載。在某些情況下,它們還可被預先配置為虛擬服務(wù)器。配置和調(diào)整這些工具可能需要一些時間,但最初并不難。無論怎么說,這些工具絕對值得嘗試。
無論你最終會用到哪款工具,至少都能獲得一個全年無休搞監(jiān)控的好工具。雖然有些工具用起來稍顯困難,但相信我,前期投入的時間絕對虧不了。此外,記得在另一個服務(wù)器上運行一組小型監(jiān)控工具來盯著主監(jiān)控服務(wù)器。