摘 要:日益增長的信息資產(chǎn)對(duì)運(yùn)維人員提出了更高的要求,本文通過開源的監(jiān)控工具Nagios和Cacti的結(jié)合使用,實(shí)現(xiàn)了對(duì)遠(yuǎn)端服務(wù)器及網(wǎng)絡(luò)設(shè)備的監(jiān)控、檢測(cè)及報(bào)警功能。
關(guān)鍵詞:Nagios;Cacti;運(yùn)維;監(jiān)控;服務(wù)器;網(wǎng)絡(luò)設(shè)備
中圖分類號(hào):TP393.18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)06-0030-02
Abstract:The increasing information assets put forward higher requirements for the operation and maintenance personnel. This paper uses the open source monitoring tool Nagios and Cacti to realize the
monitoring,detection and alarm function of the remote server and network equipment.
Keywords:Nagios;Cacti;operation and maintenance;monitoring;server;network equipment
1 互聯(lián)網(wǎng)企業(yè)業(yè)務(wù)快速增長帶來的機(jī)遇及挑戰(zhàn)
隨著互聯(lián)網(wǎng)企業(yè)業(yè)務(wù)的不斷發(fā)展,信息技術(shù)系統(tǒng)規(guī)模日漸龐大,企業(yè)的網(wǎng)絡(luò)范圍和服務(wù)邊界不斷擴(kuò)展,運(yùn)維人員時(shí)常會(huì)遇到以下場(chǎng)景:(1)某些應(yīng)用崩潰了,但由于該應(yīng)用并非時(shí)時(shí)有人訪問,運(yùn)維人員通過用戶報(bào)障才得知應(yīng)用故障;(2)服務(wù)器硬件中的一塊硬盤故障了,但由于巡檢人員發(fā)現(xiàn)不及時(shí)或者工作不仔細(xì),導(dǎo)致該故障被忽略,第二塊硬盤故障接踵而來,最終導(dǎo)致整臺(tái)服務(wù)硬件崩潰,數(shù)據(jù)丟失;(3)辦公區(qū)域網(wǎng)絡(luò)突然緩慢,運(yùn)維人員經(jīng)過多節(jié)點(diǎn)排除檢查,一個(gè)小時(shí)后才最終定位到流量異常的終端設(shè)備;(4)新設(shè)備上架的時(shí)候,技術(shù)人員不小心碰到旁邊備份系統(tǒng)的網(wǎng)線,結(jié)果半年后需要上線備份系統(tǒng)的時(shí)候,由于網(wǎng)絡(luò)原因,數(shù)據(jù)同步不一致。
以上只是列舉了技術(shù)部門運(yùn)維過程中可能遇到的幾種情況,事實(shí)上,類似的安全隱患每天都會(huì)出現(xiàn)。隨著需要維護(hù)的設(shè)備規(guī)模越來越大,運(yùn)維部門逐漸無法承受日復(fù)一日的人工巡檢工作及高出錯(cuò)率所帶來的風(fēng)險(xiǎn)。技術(shù)運(yùn)維部門迫切希望在系統(tǒng)崩潰或者服務(wù)不可用的第一時(shí)間得到通知,可以快速對(duì)故障進(jìn)行響應(yīng)處理,而不是被動(dòng)等待用戶的投訴或者抱怨。隨著服務(wù)器數(shù)量的激增,分布式部署范圍的擴(kuò)大,也對(duì)監(jiān)控工具全局的監(jiān)控和展示能力提出了要求。
2 開源工具Cacti與Nagios介紹
Cacti和Nagios是現(xiàn)在使用得比較多的網(wǎng)絡(luò)監(jiān)控軟件,這兩款監(jiān)控軟件的區(qū)別在于側(cè)重點(diǎn)不同。
2.1 Cacti
是一個(gè)免費(fèi)開源,基于Web的實(shí)時(shí)網(wǎng)絡(luò)Linux監(jiān)視工具。它基于RRDtool,提供一套前端界面,使用SNMP協(xié)議收集數(shù)據(jù)。它允許用戶在一定的時(shí)間間隔檢查服務(wù)運(yùn)行狀態(tài),并使用易于閱讀的圖形格式展示一切數(shù)據(jù)。Cacti提供快速輪詢、高級(jí)圖形模板、多種數(shù)據(jù)采集方法和用戶管理功能。該工具收集數(shù)據(jù)中心中各種服務(wù)的監(jiān)控?cái)?shù)據(jù),并將其存儲(chǔ)在MySQL數(shù)據(jù)庫中,以便管理員監(jiān)視服務(wù)器負(fù)載和網(wǎng)絡(luò)性能等。Cacti還包括用戶管理工具,支持添加用戶,并按需給其賦予某些區(qū)域的訪問權(quán)限。Cacti的優(yōu)勢(shì)在于它對(duì)腳本和模板的支持能力。借助該工具,可以完成想做的任何事情?;炯夹g(shù)架構(gòu)如圖1所示。Cacti比較著重于對(duì)直觀數(shù)據(jù)的監(jiān)控,其易于生成圖形,適合用來監(jiān)控網(wǎng)絡(luò)流量、CPU使用率、硬盤使用率等,符合監(jiān)控歷史資源數(shù)據(jù)及展示的需求。
2.2 Nagios
作為一個(gè)被業(yè)界普遍認(rèn)可的基礎(chǔ)設(shè)施監(jiān)控工具,比較注重應(yīng)用程序、服務(wù)、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、系統(tǒng)指標(biāo)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施的監(jiān)控,并且有很強(qiáng)大的發(fā)送報(bào)警信息的功能,能夠在系統(tǒng)發(fā)生警告(Warning)或者緊急(Critical)狀態(tài)時(shí)迅速地通知相關(guān)人員,而在何種情況下會(huì)產(chǎn)生警告信息或者緊急信息,則由系統(tǒng)管理員提前指定。通常情況下,Nagios提供一個(gè)Web形式的信息系統(tǒng)狀態(tài)匯總,以綠色、黃色、紅色分別標(biāo)明某一系統(tǒng)處于正常、告警、緊急狀態(tài)。此外,Nagios還能夠?qū)⒏婢畔⑼ㄖo特定關(guān)聯(lián)的系統(tǒng)管理人員,無論是通過電子郵件還是借助手機(jī)短信,系統(tǒng)管理員都會(huì)在第一時(shí)間得到系統(tǒng)狀態(tài)的最新通知,使系統(tǒng)管理員能夠提前感知系統(tǒng)故障并施展必要的預(yù)防措施或者解決手段,其開發(fā)社區(qū)有數(shù)以百計(jì)的第三方插件,能夠監(jiān)控幾乎任何類型的應(yīng)用、服務(wù)或系統(tǒng)。Nagios是為各種Linux的數(shù)據(jù)中心管理員設(shè)計(jì)的成熟工具,能夠幫助管理員管理復(fù)雜的網(wǎng)絡(luò)工程,監(jiān)控網(wǎng)絡(luò)流量、服務(wù)器CPU負(fù)載、溫度和磁盤使用情況等,監(jiān)測(cè)流程如圖2所示。
3 基于Nagios和Cacti的集中運(yùn)維監(jiān)控系統(tǒng)及其主要監(jiān)測(cè)內(nèi)容
這兩個(gè)工具最好都裝在Linux系統(tǒng)上,Cacti需要通過SNMP協(xié)議收集被監(jiān)控服務(wù)器的信息,Nagios則有自己的Agent去收集信息。Cacti偏重于網(wǎng)絡(luò)流量和系統(tǒng)負(fù)載方面的監(jiān)控,Nagios偏重于系統(tǒng)服務(wù)方面的監(jiān)控。把兩者結(jié)合起來,既可以使報(bào)警機(jī)制高效及時(shí),又可以很容易地查看各項(xiàng)數(shù)據(jù)的情況,使網(wǎng)管監(jiān)控不留死角。主要監(jiān)測(cè)內(nèi)容為以下幾項(xiàng):(1)網(wǎng)絡(luò)服務(wù)監(jiān)控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH);(2)主機(jī)資源監(jiān)控(CPU load、disk usage、system logs),也包括Windows主機(jī)(使用NSClient++plugin);(3)可以指定自己編寫的Plugin,通過網(wǎng)絡(luò)收集數(shù)據(jù)來監(jiān)控任何情況(溫度、警告……);(4)可以通過配置Nagios遠(yuǎn)程執(zhí)行插件遠(yuǎn)程執(zhí)行腳本;(5)遠(yuǎn)程監(jiān)控支持SSH或SSL加通道方式進(jìn)行監(jiān)控;(6)簡(jiǎn)單的plugin設(shè)計(jì)允許用戶很容易地開發(fā)自己需要的檢查服務(wù),支持很多開發(fā)語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等);(7)多樣圖形化數(shù)據(jù)(網(wǎng)絡(luò)流量、系統(tǒng)負(fù)載、存儲(chǔ)空間等)(使用Cacti實(shí)現(xiàn));(8)可并行服務(wù)檢查;(9)能夠定義網(wǎng)絡(luò)主機(jī)的層次,允許逐級(jí)檢查,就是從父主機(jī)開始向下檢查;(10)當(dāng)服務(wù)或主機(jī)出現(xiàn)問題時(shí)發(fā)出通告,可通過E-mail、Pager、SMS或任意用戶自定義的plugin進(jìn)行通知;(11)能夠自定義事件處理機(jī)制,重新激活出問題的服務(wù)或主機(jī);(12)自動(dòng)日志循環(huán);(13)支持冗余監(jiān)控;(14)包括Web界面,可以查看當(dāng)前網(wǎng)絡(luò)狀態(tài)、通知、問題歷史和日志文件等。
4 集中運(yùn)維監(jiān)控系統(tǒng)的管理策略
集中運(yùn)維監(jiān)控系統(tǒng)實(shí)現(xiàn)了對(duì)故障的實(shí)時(shí)短信預(yù)警、指標(biāo)運(yùn)行狀態(tài)的報(bào)表分析等網(wǎng)管功能,為技術(shù)管理實(shí)現(xiàn)自動(dòng)化、智能化和可視化邁進(jìn)了一大步,極大地提高了技術(shù)人員工作效率,并有效降低了網(wǎng)絡(luò)系統(tǒng)的故障率,對(duì)于快速處置故障也起到了很好的決策判斷作用。
首先,要對(duì)所有使用運(yùn)維監(jiān)控系統(tǒng)的人員,特別是管理人員進(jìn)行系統(tǒng)全面的培訓(xùn),建立健全的培訓(xùn)機(jī)制,樹立正確的危機(jī)意識(shí),使其對(duì)于運(yùn)維監(jiān)控系統(tǒng)的日常操作有所了解,重視每一條系統(tǒng)的報(bào)警信息,對(duì)一些可能會(huì)造成重大影響的操作要謹(jǐn)慎為之。
其次,以發(fā)展的眼光建設(shè)好運(yùn)維監(jiān)控系統(tǒng)的基礎(chǔ)設(shè)施,盡量每個(gè)節(jié)點(diǎn)都用“負(fù)載均衡+容災(zāi)”的方式進(jìn)行部署,減少單點(diǎn)故障影響整個(gè)系統(tǒng)的可能性;負(fù)載均衡的部署方式也方便以后整個(gè)系統(tǒng)的統(tǒng)一維護(hù)以及擴(kuò)容;建立完善的應(yīng)急處理方案,做到快速反應(yīng)及快速處理故障,使該核心系統(tǒng)盡快恢復(fù)正常運(yùn)行狀態(tài)。
再次,高效的運(yùn)維監(jiān)控系統(tǒng)應(yīng)當(dāng)設(shè)置一個(gè)靈活清晰的報(bào)警策略。在制定報(bào)警策略時(shí),我們有四個(gè)重要的考量:對(duì)報(bào)警進(jìn)行分級(jí)、分類;在添加報(bào)警時(shí)要能夠批量添加、批量更改;針對(duì)某一個(gè)或者某一組設(shè)備要具備單獨(dú)抽離控制的能力;當(dāng)發(fā)生大范圍報(bào)警時(shí),要具備能力對(duì)報(bào)警進(jìn)行合并,避免報(bào)警干擾。
最后,完善運(yùn)維監(jiān)控系統(tǒng)管理辦法,明確各運(yùn)維人員的責(zé)任,對(duì)于收到監(jiān)控報(bào)警信息未及時(shí)處理而造成重大故障事故的人或者部門,要追究到具體負(fù)責(zé)人。在完善管理辦法的同時(shí),還要不斷加強(qiáng)公司內(nèi)部的通告,提高全體使用技術(shù)人員的素質(zhì)水平,倡導(dǎo)高效使用運(yùn)維監(jiān)控系統(tǒng),增強(qiáng)每個(gè)用戶的安全意識(shí),只有這樣才能從根本上完善整個(gè)信息資產(chǎn)的日常運(yùn)維管理。
用技術(shù)創(chuàng)造價(jià)值,縮短技術(shù)人員對(duì)技術(shù)故障的反應(yīng)時(shí)間,提高網(wǎng)民的用戶體驗(yàn),真正實(shí)現(xiàn)先于網(wǎng)民發(fā)現(xiàn)服務(wù)的故障并加以解決,做到防患于未然。
5 結(jié) 論
本研究結(jié)果說明了Nagios與Cacti兩種開源監(jiān)控工具結(jié)合使用能互相取長補(bǔ)短,很好地解決運(yùn)維監(jiān)控?cái)?shù)據(jù)難于閱讀以及服務(wù)狀態(tài)報(bào)警缺失的兩大運(yùn)維難題,同時(shí)結(jié)合企業(yè)自身的技術(shù)管理實(shí)際經(jīng)驗(yàn),能很好地對(duì)日益增長的企業(yè)業(yè)務(wù)做好技術(shù)支撐工作,大大降低運(yùn)維人員的時(shí)間成本投入,提高運(yùn)維工作效率。為以后的機(jī)器學(xué)習(xí)和自動(dòng)化運(yùn)維的數(shù)據(jù)提供及服務(wù)支撐打下良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 付哲.海量運(yùn)維監(jiān)控系統(tǒng)規(guī)劃與部署(基于Linux+Nagios +Centreon+Nagvis等)[M].北京:清華大學(xué)出版社,2015.
作者簡(jiǎn)介:張鵬(1983-),男,漢族,廣東化州人,技術(shù)中心運(yùn)維與安全組運(yùn)維工程師,電子工程技術(shù)工程師,本科。研究方向:系統(tǒng)運(yùn)維Linux、Web架構(gòu)、DevOps。