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