1 Nagios分布式架構圖

2 Nagios分布式架構圖原理
中心伺服器與分布伺服器的對比
中心伺服器: 目标是從一個或多個分布式伺服器收集服務檢測結果。雖然中心伺服器偶爾也會做些自主檢測,但自主檢測更多隻是在極端情況下才做的,因而可以說中心伺服器目前隻做強制檢測。既然中心伺服器從一台或多台分布伺服器收集強制服務檢測結果,那它就承擔全部監控邏輯的整體輸出工作(如送出通知、運作事件處理腳本、判定主機狀态、安裝并提供Web接口等)。
分布伺服器: 功能是真正地完成你所劃分出一”組”主機的檢測工作。這裡的”組”定義是松散的-完成基于你的網絡情況而自然形成的。在一個實體位置裡可能會有若幹個” 組”,這取決于你的網絡層次劃分,要麼因為WAN而劃分開,要麼因個自獨立的防火牆而劃分開。很重要的一點是,在每個”組”裡都隻有一個運作Nagios 的伺服器并完成對該”組”的監控檢測工作。分布伺服器通常上面隻安裝有Nagios,它不需要安裝Web接口,如果不想讓它來做也可以不送出通知、運作事件處理腳本或是執行任何其他服務檢測。
分布伺服器如何收集服務檢測資訊
利用nsca外部建構完成從遠端主機送出強制檢測結果。該外部構件包括兩部分,第一部分是用戶端程式(send_nsca),運作于遠端主機上并負責将強制檢測結果送到指定的伺服器上去,另一部分是NSCA守護程序(nsca),它既可以獨立地運作于守護服務也可以注冊到inetd裡作為一個inetd客戶程式來提供監聽聯接。從用戶端收到服務檢測結果資訊之後,守護程序将結果送出給在中心伺服器的Nagios,方式是通過在外部指令檔案裡插入一條PROCESS_SVC_CHECK_RESULT指令,之後跟上檢測結果。在Nagios下一次處理外部指令時将會找到這條由分布式伺服器送來的強制檢測資訊并處理它
3. Nagios分布式搭建步驟
1)中心伺服器設定
1、安裝配置好nagios伺服器 ,這裡不再複述。
2、下載下傳并安裝nsca:
以上步驟檢查正确執行以後:
1)、會在src目錄下生成兩個程式 nsca send_nsca(主程式)
2)、sample-config中會有nsca.cfg與send_nsca.cfg(配置檔案)
3)、目前目錄下會有一個init-script(啟動腳本)
修改nsca的配置檔案
修改nagios的配置檔案
3、檢查配置檔案是否正确:
4、啟動nagios和nsca服務
5、配置
定義主機和服務 定義主機的host_name 服務的service_description 一定要和 分布伺服器的設定一樣
6、定義指令 定義服務主動檢測的指令
定義指令的腳本
二)分布伺服器設定
1、安裝Nagios,不需要安裝Web接口;---安裝過程略;
2、Nsca安裝
下載下傳nsca-2.7.2.tar.gz至本地後:
1)會在src目錄下生成兩個程式 nsca send_nsca(主程式)
2)sample-config中會有nsca.cfg與send_nsca.cfg(配置檔案)
修改send_nsca.cfg配置檔案
3、在分布式伺服器的對象配置檔案裡隻定義那些由它直接監控的主機與服務的對象(與中心伺服器定義監控主機和服務對象一緻);
定義監控主機及服務對象示例:
4、修改nagios的配置檔案
5、定義submit_check_result指令
6、建立submit_check_result腳本檔案
7、檢查nagios配置檔案并重新開機nagios服務
四、強制重新整理的了解
check_command service-is-stale 在中心伺服器上配置的服務檢測指令
check_freshness 1 打開強制重新整理
freshness_threshold 100 重新整理頻率是100s
active_checks_enabled 0 關閉主動檢測
Nagios定期地對那些打開了”重新整理檢測”服務的檢測結果進行重新整理情況檢查。服務對象定義裡的freshness_threshold選項指定了服務檢測結果應該在何時間内重新整理。例如,,Nagios将會對目前時間100秒之前的檢測結果判定為”陳舊”。如果沒有指定服務對象裡的freshness_threshold值,Nagios将自動地計算出一個重新整理間隔門限,要麼按照normal_check_interval要麼按retry_check_interval來計算,這取決于服務當時所在什麼樣的狀态類型。一旦服務檢測結果被判定為是”陳舊”,Nagios将使用服務定義裡check_command指定的指令來執行一次服務檢測,這當然是自主服務檢測。
也就是說當分布伺服器過了100s還沒有發送過來資料,中心伺服器就會變被動檢測為主動檢測,用check_command定義的指令執行服務檢測。這樣可以防止當分布伺服器當機或不發送通知時,中心伺服器可以及時報警。
注意點:
1、中心伺服器和分布式伺服器的時間一定要調整一緻
2、分布式伺服器監控用戶端主機可以用任何方式,主動被動都可以
3、分布式上定義的監控主機與服務,在中心伺服器上也要定義,保證主機名(host_name)和服務描述(service_description)一緻。
4、分布式伺服器上定義的服務檢測指令(check_command)是真正的檢測服務的指令 ,中心伺服器上定義的服務檢測指令(check_command)是當中心伺服器由被動檢測變為主動檢測時執行的指令(也就是當分布式主機不發送檢測指令時中心伺服器執行的指令),正常情況下不執行這個指令。