在講求客戶權益的現代,「服務中斷」是每個企業都無法承受的考驗,更是每個網管人員心中揮之不去的夢魘。但限於人力的考量,網管人員不可能24小時都站在主機前監控系統服務的運作,因此一套能時時監控系統服務,當系統服務發生異常時能夠即時通知管理者的監控系統,將是每個網管人員所迫切需要的。
check_ping(利用ICMP來監控主機是否還存活)
可用的參數,包含以下幾項:
-H:設定欲監控的主機網域名稱或IP資訊。
-p:設定欲監控主機的埠資訊,預設為22。
-4:使用IPv4的方式連接。
-6:使用IPv6的方式連接。
-p:每次偵測時所發出的封包個數,預設為5個封包。
-t:設定連接測試的時間(Timeout),預設為10秒(即10秒內無法跟對方建立連線即判定對方無法連線)。
-w:設定警告(Warn)的門檻值,格式為[毫秒],[門監比率]%,如設定為200,50%,即表示在200毫秒內如果丟包率(Packet Lose)超過50%即表示為警告情況。
-c:設定嚴重(Critical)情況的門檻值,格式為[毫秒],[門監比率]%,例如設定200,60%。如設定為200,50%,表示在200毫秒內若丟包率超過60%,即為嚴重情況,這裡須特別注意一點是,嚴重情況的丟包率須大於警告情況的丟包率。
可利用指令「check_ping -H 140.117.100.5 -w 200,50% -c 200,60%」來檢查網站伺服器是否存活,回應會包括如下的兩種狀況:
1. 正常存活情況(回應資訊會告知OK及相關如丟包率等資訊)
2. 嚴重情況(回應資訊會告知Critical,如下例為監控一個不存在的主機)
設定Nagios組態檔
以下以設定監控一個網站伺服器為例,讀者可從sample-config目錄下取得相關組態檔的範例並複製到「/usr/local/nagios/etc」目錄下。相關組態檔設定如下所述。
nagios.cfg(Nagios的主要組態檔)
nagios.cfg設定如下所示:
(localhost.cfg為設定主機及服務等相關資訊)
(commands.cfg為定義指令的行為,例如設定檢查指令的參數)
(contac ts.cfg為定義聯絡人的相關資訊,如email sms等)
(timeperiods.cfg為定義規則有效的時間區間資訊,例如設定朝九晚五的時刻才有效)
(templates.cfg為設定相關行為的樣版,可利用樣版方式來減低規則設定的複雜性)
(設定Nagios的log資訊存放的檔案位置)
(設定相關Cache資訊暫存的檔案位置)
(設定相關的資源檔位置)
(設定儲存Nagios的偵測結果位置,在本方案中所使用的Web程式即是解析此檔案來取得相關的結果,並顯示在網頁上)
(設定Nagios偵測結果狀態更新的時間區隔,以秒為單位,此例即為10秒更新一次)
(Nagios執行時所使用的身分)
(設定也使用syslog機制,同時會將Nagios的相關log資訊寫入messages檔案中)
(Nagios系統服務容錯機制,可設定須重試幾次偵測服務異常後才判定服務失敗,而寫入log檔案中)
(Nagios主機服務容錯機制,可設定須重試幾次偵測主機異常後才判定主機異常而寫入log檔案中)
(設定Nagios執行時,儲存PID資訊的檔案位置)
(設定Nagios執行時,暫存檔案的檔案位置)
(設定Nagios執行時,暫存檔案的目錄位置)
(設定啟用event_broker功能,後續置入資料庫所需)
(設定每日定時轉換log格式)
(設定log檔案備份的目錄位址)
templates.cfg
templates.cfg是用來設定相關行為的樣版,以供相關的主機服務或系統服務來套用,以下以定義Linux主機及HTTP服務為例進行說明: