張甫
(山信軟件股份有限公司 萊蕪自動化分公司,山東 濟南 271104)
Nagios作為一款開源免費的網絡監視工具,可以對Windows、Linux和Unix的主機狀態進行有效監控,而基于Nagios的網絡監控系統具有監控范圍廣、操作簡便、運行穩定等優勢,在網絡運行環境中始終扮演著重要角色,該系統的建立不僅有效解決了網絡用戶數據丟失的問題,同時,也給網絡的安全穩定運行提供了強大的技術保障。
Nagios系統由一個主程序、一個Nagios-plugins插件和幾個可選的ADDON組成,其中Nagios-plugins插件可以對多種系統與網絡服務進行有效監控。Nagios的主要功能是:監控HTTP、SMTP、PING等網絡服務,監控CPU負荷、磁盤利用率等主機資源,監控方式可以通過擴展Nagiosplugins插件予以實現,而且多種監控方式可以同步運行,一旦監測到網絡服務存在異常狀況,該系統常常以站內短信或者郵箱的方式,將異常信息反饋給終端操作人員,當操作人員接收到這些故障信息后,可以及時啟動系統故障應急預案,使網絡服務質量得到切實改善。對于Nagios系統來說,插件種類繁多,因此,可以任意選擇不同類型的插件,同時,這些插件可以和自定義shell腳本并行工作,這就使得網絡監控能力得到大幅提升,基于對這一靈活、多樣性插件選擇方式的考慮,該系統適用于不同經營發展規模的企業[1]。
Nagios系統的工作原理如下:首先,Nagios按照需求對libexec文件夾當中的插件進行調用,然后,執行命令行,對主機與網絡服務進行檢測,最后,檢測結果直接反饋給Nagios系統。其中,Nagios系統的監控方式主要有NRPE和NSCA兩種,NRPE為主動檢測方式,NSCA為被動檢測方式,主動檢測的監控方式,其動作執行過程較為簡單,但是反饋結果無法實現正常傳遞。而被動檢測則是采取客戶端向服務端主動上報監控信息的監控方式,看似監控原理較為復雜,但是,反饋信息可由多級路由予以發送,這是與主動檢測方式的最大區別。通過對以上兩種監控方式的分析可以看出,在實際應用過程中,應當充分發揮主動與被動檢測的優勢,來協同完成網絡監控任務。
下面以某學術研究中心網絡為例,對基于Nagios的網絡監控系統的總體部署設計進行論述。該學術研究中心被監控的網絡服務器有54臺,被監控的交換機有12臺,需要提供監控服務項目共有88個。為了清晰展現每一個被監控對象的運行狀態,首先需要對被監控對象進行命名,無論是服務器還是交換機,自身的名字具有獨立性,每一個名字不得出現重復的情況。比如以DNS為域名的解析服務器,可以命名為DNS工作組,承擔學術研究中心圖書館網絡監控任務的服務器,可以命名為LIBRARY工作,根據這一命名原則,服務器與交換機可以并入到11個不同的工作組當中,這樣,能夠直觀的辨識出每一個被監控對象所在的組別。比如以SEITCH-GROUP工作組為例,該工作組一共有6臺交換機,每一臺交換機的名稱如表1所示。

表1 SEITCH-GROUP 工作組6 臺交換機名稱
其它工作組中的被監控對象也是遵循表1中的原則予以命名。
在網絡監控系統當中,被監控對象是否存在異常運行狀況,除了監控系統正常發揮監控功能以外,還需要系統管理員對系統反饋信息進行監測與處理[2]。而基于Nagios的網絡監控系統的管理員一般區分為兩個類別,一類屬于最高系統管理員,另一類則屬于普通管理員,最高系統管理員管理權限遠遠凌駕于普通管理員之上,可以站位至高點,對系統開發與使用的全局工作進行統籌部署。而普通系統管理員的管理權限相對較小。舉例說明,對于Nagios監控系統來說,最高系統管理員具有登錄訪問權限、修改賬號密碼權限、優化系統配置權限等,但是,普通系統管理員則不具有這些權限。另外,對于一個單獨的服務設備來說,其監控的服務項目一般只有一至兩項,因此,在設計過程中,應當重點考慮每個服務設備所對應分管人員的任務管理職責,這樣,當服務設備出現異常運行狀況時,相關信息可以直接反饋給與之相對應的分管人員,如表2所示。

表2 系統管理員的管理任務分配表
從表2中可以看出,工作組別不同,所承擔的工作任務也有所不同,因此,這種任務分配方法能夠大幅提升工作效率。比如以NETWORK-GROUP、SWITCH-GROUP這兩個工作組為例,如果這兩個工作組當中的設備出現異常運行狀況,系統將第一時間以短信或者郵件的方式,將信息直接反饋給最高系統管理員以及分管該組別的XYJ系統管理員[3]。
該網絡監控平臺的運行環境采用Linux操作系統,因此,基于nagios是在Linux主機上的一種開源軟件,其中nagios主程序是nagios-2.9.tar.gz,監控linux主機所需軟件是nagios-plugins-1.4.9.tar.gz軟件與nrpe-2.8.1.tar.gz軟件。該監控系統配置的防火墻是selinux,如果確認系統已經關閉,則需要通過#setenforce 0的命令來完成。
首先需要添加nagios來運行用戶與用戶組,然后將apache加入到nagcmd組當中,這樣,在操作nagios時,可以具有足夠的操作權限,這一執行過程需要執行的命令是#usermod-a-G nagcmd apache。編譯搭建nagios平臺需要經過三個步驟,第一步執行make install,以便于安裝所需的程序,以及HTML等文件。第二步執行make installinit,這一過程以nagios作為運行腳本,當輸入執行命令以后,系統開啟。第三步執行make install-config,這一過程主要是將配置文件復制到該系統的安裝目錄下。當nagios系統啟動以后,需要執行#chkconfig-add nagios以及#chkconfig nagios on命令,使nagios自動加入到服務隊列當中。然后,程序設計人員應對主配置文件語法的正確性進行檢查,當確定無誤后,則開啟nagios服務,接下來,通過web界面對nagios進行查看[4]。
在構建nagios監控系統環境時,需要將自定義的一套規則用于配置文件,在這一過程中,最為關鍵的是明確“對象”的概念,比如可以假定“性別”這個對象,這個對象的值只有兩種,既“男”和“女”,當確定對象的值以后,可以定義某個具體的人為一個對象,比如確定“李四”這個人,然后再對“李四”的性別進行確定,這時,屬性對象的特征便得以確定。通過對這一概念的深入剖析,對nagios環境對象定義理解難度也大幅降低。比如“監控時間段”這一基本對象,其定義是:7×24小時不間斷還是周一至周五,或者自定義的其他時間段[5-6]。
目前,隨著我國信息技術的迅猛發展,網絡監控系統的監控功能日漸完善,而基于Nagios的網絡監控系統,逐步在IT領域站穩腳跟,該系統在網絡運行環境中的實際應用,不僅緩解了系統管理員的工作壓力,減輕了工作量,同時,也營造了一個安全、穩定的網絡運行環境。因此,設計人員應當始終秉持與時俱進的態度,不斷對網絡監控系統的各項服務功能進行優化和完善,為推進我國的信息化建設進程而做出積極貢獻。