下面根據上面摘自網絡的原理圖對nagios的監控原理進行一下簡單的說明:
1.nagios通過nsca進行被動監控。那么什么是被動監控呢?被動監測:就是指由被監測的服務器主動上傳數據到nagios監控系統中。這種監測方式提高了實時性(出現問題的時候,被監測的服務器可以及時上傳數據通知nagios,從而使管理員可以盡快作出處理,而不用像主動監測中一樣,非要等到下一個監測周期才能獲知被監測服務器的狀態)。NSCA就是可以實現Nagios被動監測的一個程序。目前所知道的,只能通過nsca插件對linux/unix服務器進行被動監控。對於windows服務器暫時沒發現可用的插件。
2.nagios通過nrpe插件和snmp協議進行主動監控。至於什么是主動監控可以參考上面所述。簡單理解決就是nagios按照檢測周期主動的獲取遠程主機的數據。這樣一來實時性就要差一些了。nagios通過nrpe插件和snmp協議實現了對linux/unix服務器進行監控,同時通過snmp協議實現了對windows服務器、交換機、打印機等的監控。另外,nagios通過NSClient++客戶端也可以對windows進行監控,至於有什么好處,暫時還未測試過。
3.nagios目前完全依賴於對配置文件的讀寫進行監控數據的展示與配置。當然寫的操作nagios是不提供的,這個需要手工通過腳本等進行配置。但是NDOMOD模塊的出現解決了nagios無法將數據寫入到數據庫的問題。提供NDOMOD模塊的插件為NDOUtils,NDOMOD模塊需要加載到nagios的配置中,NDOUtils插件通過運行NOD2DB進程將nagios的配置文件(.cfg)和status.dat進行分析,並將分析的結果寫到mysql數據庫中,但是目前來看,這些數據是相當於放入了一個回收站備份一樣,並沒有實際的被大家用到。但是這個數據對於二次開發來說也算是至關重要的。
nagios架構
以下對nagios架構進行下簡要說明:
1. nagios deamon進程對nagios.cfg配置文件進行讀取,nagios.cfg配置文件中放存着一系列配置文件的存放路徑。具體如上圖。
2. nagios deamon進程通過對nagios.cfg配置文件中所引用到的信息進行操作,在服務端執行plugin與被監控端的agent進行通訊獲取監控結果和數據。
3.nagios deamon進程將監控結果寫入status.dat文件中,status.dat文件相當於一個log或一個db。
4.cgi程序對status.dat文件中的監控結果進行分析並與讀到.cfg配置中的數據進行匹配合並,最終顯示在cgi處理結果中。
現在簡單介紹下nagios的cgi:
1.cgi是用c語言編寫的,是與nagios相獨立的一套程序,它不受nagios的影響。
2.對於較早的對動態語言使用者來說cgi無疑是個好幫手,它可以動態的顯示網頁上的信息,實時性較高。並且它最強勁的一點是可以通過C去讀取服務器底層的一些接口,這是其它語言辦不到的。
3.經過翻閱一些國內的一些資料。目前來看國內對cgi的使用已經寥寥無幾了,不知國外用的怎么樣。
4.對cgi的修改還算很容易的。可以在原有的cgi的基礎之上進行一些自定義的界面展示,當然筆者也只是很初級的水平。希望在cgi交流的朋友我們可以私下交流一翻。
以上就是筆者對nagios的架構的一些淺薄認識。因為筆者學藝不精,有疏漏之處請指教,我們共同進步。
請朋友們轉載時注明出處,因為我是為了更好的方便大家來和我討論。謝謝了。
意見及建議:ruberzhu@qq.com