王光武 孫謙 賀寶華
摘? ?要:隨著校園網(wǎng)絡規(guī)模不斷擴大,學校網(wǎng)絡節(jié)點、各類服務主機也在不斷增多,這種環(huán)境下,對各個網(wǎng)絡節(jié)點、主機的運行狀態(tài)進行有效監(jiān)控與記錄,已成為網(wǎng)絡運維中必不可少的環(huán)節(jié)。而一個高效可靠的工具,更能為監(jiān)控與記錄帶來事半功倍的效果。本文介紹了開源監(jiān)測工具Cacti EZ,以及如何利用并實現(xiàn)對網(wǎng)絡流量、服務主機運行參數(shù)的有效監(jiān)控。
關(guān)鍵詞:網(wǎng)絡監(jiān)控;Cacti EZ;校園網(wǎng)絡運維
中圖分類號:TP393.18 文獻標志碼:A 文章編號:1673-8454(2019)15-0093-04
一、引言
隨著學校教育信息化的逐步深化、智慧校園建設(shè)的不斷完善,校園網(wǎng)絡節(jié)點正逐漸增多,各類校園應用陸續(xù)上線,學校數(shù)據(jù)中心服務主機、虛擬主機等數(shù)量也是水漲船高,校園網(wǎng)絡變得龐大,環(huán)境也更加復雜。對于運維人員來說,如何借助有效工具,對各個網(wǎng)絡節(jié)點、主機的運行狀態(tài)進行有效的監(jiān)控與記錄,并在出現(xiàn)異常時及時發(fā)現(xiàn)處理,成為運維工作必不可少的環(huán)節(jié)。同時一個完整全面的監(jiān)控日志,還可為運維工作提供數(shù)據(jù)支撐,根據(jù)日志挖掘出網(wǎng)絡節(jié)點、主機的運行規(guī)律及隱患,以此不斷提高網(wǎng)絡運維水平及問題處理效率。
二、Cacti簡介
Cacti是一套基于PHP、MySQL、SNMP及RRDTool開發(fā)的網(wǎng)絡流量監(jiān)測工具,其主要功能是通過SNMP協(xié)議獲取數(shù)據(jù),并利用RRDTool工具儲存和更新數(shù)據(jù),進而生成圖表呈現(xiàn)給用戶,方便用戶查看數(shù)據(jù)。
Cacti部署靈活,可以部署在校園網(wǎng)絡中的任何位置,只要保持Cacti服務器與被監(jiān)控主機網(wǎng)絡可達即可。雖然部署靈活,但要形成完整的Cacti監(jiān)控平臺,除安裝Cacti自身軟件外,還需安裝Mysql、Apache、Net-snmp、RRDTool等一系列支撐軟件,并加載相應的數(shù)據(jù)監(jiān)控模板,配置相對麻煩煩瑣。在此情況下,為減少部署的工作量,輕松完成完整可用的Cacti平臺的搭建,就離不開高度集成的Cacti EZ幫助。
三、Cacti EZ的優(yōu)勢
Cacti EZ是最簡單有效的Cacti解決方案,它是基于Centos,并整合Cacti、Mysql、Apache等相關(guān)軟件,重新編譯而成的一個整體的操作系統(tǒng)。[1]Cacti EZ部署便捷,對運行環(huán)境要求不高,甚至可以使用普通PC電腦作為服務器。同時無需安裝Linux操作系統(tǒng)、數(shù)據(jù)庫等,省去了復雜煩瑣的Cacti配置過程,安裝后即可使用。
在使用方面,Cacti EZ集成了Thold、Monitor、Syslog、Weathermap、Realtime、Errorimage、Mobile、Aggregate等插件,以及Apache、Squid、F5、Nginx、MySQL等主機監(jiān)控模版,可以直接加載使用,從而實現(xiàn)對網(wǎng)絡中的交換機、服務主機等設(shè)備的監(jiān)測。
四、Cacti EZ的部署
1.Cacti EZ安裝
筆者學校安裝部署采用的是Cacti EZ 10.1版本,僅需準備一臺存儲空間大于10G的主機即可。我們將Cacti EZ 10.1鏡像刻錄成光盤,主機通過光盤啟動引導自動進入Cacti EZ的安裝頁面,無需過多操作,系統(tǒng)將自動安裝完成。安裝完成后,便可進入軟件平臺的初始化配置頁面, 整個安裝過程僅僅耗時15 分鐘左右。在上述操作完成后,僅需配置主機的網(wǎng)絡地址便可登錄平臺。
2.監(jiān)控模版及被監(jiān)控設(shè)備配置
(1)監(jiān)控模版
Cacti EZ通常提供了一定設(shè)備的監(jiān)控模版供直接使用,包括Linux主機、Windows主機,以及Apache、Mysql等服務模版。但是對于網(wǎng)絡設(shè)備來說,由于市面上交換機和路由器的型號眾多,而不同型號需要不同模版,不能像Windows和Linux主機一樣進行統(tǒng)一配置使用。而系統(tǒng)默認提供的模版通常是為國外設(shè)備廠商(多數(shù)為Cisco)而定制的,對于國內(nèi)廠商如華為、銳捷的設(shè)備,基本沒有直接對應的模版可供使用。所以當我們需要監(jiān)控上述廠商的交換機和路由器時,需要自行收集或者在Cacti官網(wǎng)的模版庫中進行查找。Cacti官網(wǎng)不僅提供了許多官方模版,而且很多愛好者也提供了大量的自定義模版,我們可以直接下載,解壓縮,然后導入模版,直接使用,基本能夠滿足我們的監(jiān)控需求。當然我們還可以通過查閱設(shè)備文檔、咨詢售后服務等,以此獲取設(shè)備常見指標的 OID值,并通過OID值,制定特定型號交換機的監(jiān)控模版。
(2)被監(jiān)控設(shè)備配置
被監(jiān)控設(shè)備無論是網(wǎng)絡設(shè)備,還是服務主機均需要安裝SNMP協(xié)議并正確配置,才能順利加入到Cacti EZ監(jiān)控平臺中進行后續(xù)操作。SNMP是目前網(wǎng)絡中用得最廣泛的網(wǎng)絡管理協(xié)議,用于保證設(shè)備的管理信息在網(wǎng)絡中任意兩點間的傳送,便于網(wǎng)絡管理員在網(wǎng)絡上的任何節(jié)點上完成檢索信息、修改信息、定位故障、完成故障診斷、進行容量規(guī)劃和生成報告等。Cacti EZ利用SNMP協(xié)議的SNMPGET命令,從而獲取遠程主機設(shè)備MIB中的管理信息。MIB是主機用來存放和記錄管理信息的數(shù)據(jù)庫,主機可以是計算機工作站、終端、路由器、網(wǎng)絡打印機等。管理信息包括CPU利用率、磁盤使用情況、網(wǎng)絡流量等大量內(nèi)容。
高校校園網(wǎng)絡一般為物理三層、邏輯二層的網(wǎng)絡結(jié)構(gòu),包括大量的接入、匯聚設(shè)備,以及一系列校園服務應用主機,這些設(shè)備都是日常網(wǎng)絡運維所需監(jiān)控的對象。這里以筆者學校校園網(wǎng)絡拓撲為例,將Cacti EZ監(jiān)控平臺部署在內(nèi)網(wǎng),并保障其與校園網(wǎng)絡各設(shè)備的連通,進而實現(xiàn)對校園網(wǎng)絡節(jié)點的監(jiān)控,如圖1所示。
①網(wǎng)絡設(shè)備的監(jiān)控實現(xiàn)
通常的網(wǎng)絡設(shè)備,均支持SNMP協(xié)議。這里以筆者學校部分樓宇的華為廠商交換機為例,在其配置中啟用SNMP協(xié)議,具體如下:
snmp-server enable(開啟SNMP協(xié)議)
snmp-server securityip XXX.XXX.XXX.XXX (Cacti EZ監(jiān)控平臺地址)
snmp-server community ro XXXXXXXX(設(shè)置SNMP團體名稱)
snmp-server sys-info version all(設(shè)置SNMP版本)
上述配置命令在其他廠商設(shè)備也大體通用。這里值得注意的是SNMP團體名稱的設(shè)置,由于Cacti EZ默認為public,存在較大安全隱患。為保障網(wǎng)絡安全,我們在設(shè)置團體名稱時,除采用其他字符代替public以外,還要配置securityip,以此實現(xiàn)僅允許Cacti EZ監(jiān)控平臺接收被監(jiān)控主機的SNMP報文。
②Windows主機的監(jiān)控配置
對于學校數(shù)據(jù)中心內(nèi)的Windows主機,可在Windows系統(tǒng)組件中安裝SNMP協(xié)議,同時也要添加SNMP的團體名稱。Windows主機也自帶了IP 篩選功能,與交換設(shè)備securityip功能類似,需要設(shè)置成為Cacti EZ監(jiān)控平臺的地址。除此之外,在主機防火墻上,還要添加SNMP協(xié)議端口的例外。
③Linux主機的監(jiān)控配置
對于Linux主機,我們需要安裝Net-snmp來支持。Net-snmp的安裝方式較多,這里建議通過yum安裝比較方便,命令如下:
yum install net-snmp
安裝后同樣需要配置SNMP,在Linux系統(tǒng)中的配置文件路徑為/etc/snmp/snmpd.conf。
配置具體如下:
查找以下代碼:
com2sec notConfigUser default public
上述代碼中的“public”即為團體名稱,將其修改即可?!癲efault”字段,為IP篩選功能,將其改為Cacti EZ監(jiān)控平臺地址。
再查找以下代碼:
access notConfigGroup "" any noauth exact systemview none none
將systemview改為all,表示定義了一個可操作的范圍名稱,名稱為“all”。
再查找以下代碼:
#view all included .1 80
將該行前面的“#”去掉,表示定義了范圍名稱“all”中能夠查看的設(shè)備OID(對象標識符)值?!?1”代表可查看設(shè)備指標“.1”節(jié)點下的所有信息,包括cpu、內(nèi)存、硬盤等。[2]配置完成后保存并重啟SNMP服務。在Linux服務器中,同樣需要在主機防火墻中開放SNMP對應的端口。
(3)Cacti EZ監(jiān)控配置
①添加主機
在Cacti EZ控制臺首頁,已經(jīng)直觀地展示出了如何通過一系列操作,達到監(jiān)控主機的目的,如圖2所示。
根據(jù)控制臺提示,選擇添加主機及對應監(jiān)控模版后,Cacti EZ監(jiān)控平臺會自動根據(jù)對應模版,加載出目前能夠監(jiān)控到主機設(shè)備的一系列“數(shù)據(jù)查詢”信息,包括CPU使用率、內(nèi)存使用率、進程數(shù)量等等。在閾值設(shè)置上,我們可以根據(jù)運維經(jīng)驗或者實際情況進行配置。閾值設(shè)置的目的在于,當圖形監(jiān)控超出設(shè)置的閾值時,Cacti EZ監(jiān)控平臺會根據(jù)所填寫的報警郵件地址,自動向該郵件地址發(fā)送報警郵件(具體的報警郵件配置在后文中進行闡述),以此實現(xiàn)自動預警。
②添加圖形樹
圖形樹的意義在于,能夠為用戶提供直觀的監(jiān)控圖形查看方式。圖形樹可將圖形進行詳細的樹狀分類,以父子層次結(jié)構(gòu)來組織圖形對象。[3]用戶可以根據(jù)實際情況對圖形進行歸類,并向下級設(shè)置分支,最后將圖形添加到對應的分支上。
用戶可以在“圖形”選項卡中查看已添加好的圖形樹及分支對應的圖形。用戶也可以在【查看狀態(tài)】頁面,看到已添加好的主機運行狀態(tài),進而查看主機所包含的各類監(jiān)控圖形。
③郵件報警
Cacti EZ監(jiān)控平臺已經(jīng)集成了郵件報警功能,我們只需要正確配置,即可實現(xiàn)郵件報警功能。這里不建議采用Linux系統(tǒng)自帶的sendmail功能發(fā)送郵件,而是用常用的SMTP功能進行,同時SMTP服務器地址以及定義的端口號不要填寫錯誤。對于SMTP用戶名和密碼,即填寫需要收到報警郵件郵箱的用戶名和密碼。同時還要檢查郵箱賬戶是否開啟SMTP服務,否則將提示賬戶認證失敗。
郵件報警配置成功后,還要在“報警/閾值”選項卡內(nèi),進一步設(shè)置報警參數(shù)?!皥缶?閾值”選項卡內(nèi)容,可根據(jù)實際情況填寫,也可以按照Cacti EZ監(jiān)控平臺的默認值提交即可。除異常情況下的閾值報警外,當被監(jiān)控的主機宕機或恢復后,Cacti EZ監(jiān)控平臺也會發(fā)出報警郵件,圖3為被監(jiān)控主機的宕機及恢復測試。
通過上述配置網(wǎng)絡管理人員郵箱,并利用郵箱提供商便捷的移動端(如QQ郵箱APP)郵件提醒功能,可實現(xiàn)及時接收監(jiān)控平臺發(fā)來的報警信息,以免帶來不必要的損失。
(4)實踐與應用
對校園網(wǎng)絡各層交換設(shè)備的實時監(jiān)控,包括設(shè)備溫度、CPU利用率和內(nèi)存占用率、上行接口流量等一系列信息,目的是通過監(jiān)控及時發(fā)現(xiàn)設(shè)備異常情況,準確定位異常發(fā)生的時間、范圍等信息,為運行維護與故障排查帶來便利,有助于及時發(fā)現(xiàn)故障,有效防止設(shè)備損壞和不必要的損失發(fā)生。
①接入設(shè)備CPU使用率監(jiān)控
圖4是筆者學校某個樓宇某層接入設(shè)備一天的CPU使用率,根據(jù)該樓宇日常在線用戶情況,接入設(shè)備的CPU通常應處于較低的使用率。如在某個時間節(jié)點后,接入設(shè)備的CPU使用率突然異常增大,甚至達到70%以上,且居高不下,這種情況極有可能是由于某個房間出現(xiàn)環(huán)路造成的,接入設(shè)備的CPU資源將會被環(huán)路耗盡,最終導致樓層網(wǎng)絡癱瘓,網(wǎng)管人員發(fā)現(xiàn)后應及時排查處理。
②核心設(shè)備的下聯(lián)鏈路監(jiān)控
圖5是對筆者學校某校區(qū)核心設(shè)備的下聯(lián)鏈路流量進行的監(jiān)控與記錄(部分截圖)。從圖中可以看出,監(jiān)控平臺記錄了各下聯(lián)鏈路某個時間段的網(wǎng)絡流量使用情況,可使學校網(wǎng)絡管理人員直觀地了解到校區(qū)各節(jié)點樓宇的網(wǎng)絡帶寬利用率,便于掌握網(wǎng)絡使用規(guī)律,為網(wǎng)絡帶寬調(diào)度和分配提供決策依據(jù)。
③對主機CPU的監(jiān)控
圖6展示的是通過Cacti EZ監(jiān)控平臺記錄筆者學校某個應用服務器1天之內(nèi)CPU的使用率,可以看出該服務器的使用集中在下午16點至22點,且使用率不到10%,其余時間使用率較低,但在這一天的12點左右卻出現(xiàn)了20%的短暫小高峰。這種情況下,運維人員可以根據(jù)此項記錄,了解服務器在此時進行的作業(yè)是否存在異常情況,進而做出相應處理。
④對主機進程數(shù)量的監(jiān)控
圖7展示的是通過Cacti EZ監(jiān)控平臺記錄某個服務器1年之內(nèi)的進程數(shù)量走勢圖,我們可以看出,服務器在去年3月份進程數(shù)量突破了2000,達到3000左右,并一直維持在這個區(qū)間,且在本年度2月份突破了4000峰值,可能有保持這個數(shù)量的趨勢。這種情況對于普通網(wǎng)站服務器是比較危險的,硬件資源將會不足。運維人員可以根據(jù)此項記錄,應盡快對服務器資源進行調(diào)整和規(guī)劃,以免出現(xiàn)不必要的宕機。
五、總結(jié)
本文介紹了在校園網(wǎng)絡環(huán)境下,如何正確部署Cacti EZ監(jiān)控平臺,并合理有效利用,以此對學校校園網(wǎng)絡各個節(jié)點進行監(jiān)控,使學校網(wǎng)絡運維人員能夠直觀高效地掌握校園網(wǎng)絡內(nèi)各節(jié)點的運行情況,并通過閾值設(shè)定實現(xiàn)自動報警。Cacti EZ監(jiān)控平臺的使用,將有利于網(wǎng)絡管理人員在第一時間發(fā)現(xiàn)異常情況,同時也為網(wǎng)絡管理人員提供了合理規(guī)劃、分配網(wǎng)絡帶寬的決策依據(jù)。[4]
參考文獻:
[1]殷永明.CACTI和QQVIEW在網(wǎng)絡監(jiān)控中的應用分析[J].福建電腦,2011(4):145-146.
[2]朱凡.校園網(wǎng)絡監(jiān)測預警系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:東華大學,2012.
[3]李莉,羅漢杰.基于Linux的網(wǎng)絡監(jiān)控工具Cacti研究和實現(xiàn)[J].信息安全與通信保密,2013(8):45-47.
[4]劉穎,劉景,鄭海燕.Cacti在校園網(wǎng)絡流量監(jiān)測中的應用[J].電腦與電信,2008(4):10-14.
(編輯:王天鵬)