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