Nagios程式常用來即時監控系統服務狀態,但對於檢測系統磁碟剩餘容量是否仍在安全範圍內卻力有未逮,而另一個軟體SNMP可以提供更詳細的系統資訊,剛好能夠補其不足。為此,本文將實作結合SNMP服務的Nagios,讓網管工作更安全更輕鬆。
5. 開啟磁碟的監控
由於本文實作主要在於監控磁碟容量,因此SNMP服務必須開啟磁碟監控選項,因此在組態檔內加入下列選項:
設定完成後,利用指令「/etc/init.d/snmpd restart」重啟SNMP服務。接著,執行指令「snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.2021.9」,如果一切正常,就會看到本機端所有關於主機磁碟容量的資訊。以下表格簡單的說明SNMP所提供常用的相關程式。
SNMP所提供的相關程式
設定結合SNMP服務的Nagios
前幾期已經談論過Nagios的用法,就不再多談相關的用法,直接設定相關的組態檔。以設定check_snmp_storage為例,可從Nagios原始碼目錄中的「sample-config」目錄內取得相關組態檔的範例並複製到「/usr/local/nagios/etc」目錄下。
而即將設定的相關組態檔包括nagios.cfg、localhost.cfg和commands.cfg,個別的設定說明如下:
nagios.cfg是Nagios的主要組態檔,其相關設定如下所示:
(其中的localhost.cfg為設定主機及服務等相關資訊)
(commands.cfg為實際定義指令的行為,如設定檢查指令的參數)
(contacts.cfg為定義聯絡人的相關資訊,如email、sms等等,當Nagios發現問題時,即依此資訊來通知管理者)
(timeperiods.cfg為定義規則有效的時間區間資訊,例如設定朝九晚五的時刻才有效)
(templates.cfg為設定相關行為的樣版,可利用樣版方式來減低規則設定的複雜性)
(設定Nagios的log資訊存放的檔案位置)
(設定相關cache資訊暫存的檔案位置)
(設定相關的資源檔位置,在資源檔中會定義常用的變數)
(設定儲存Nagios的偵測結果位置)
(設定Nagios偵測結果狀態更新的時間區隔,以秒為單位,此例即為10秒更新一次)
(Nagios系統服務容錯機制,可設定須重試幾次偵測服務異常後才判定服務失敗而寫入log檔案中)
(Nagios主機服務容錯機制,可設定須重試幾次偵測主機異常方才判定主機異常而寫入log檔案中)
localhost.cfg是可在此檔案加上檢查磁碟容量的指令,設定如下所示:
commands.cfg為設定check_snmp的指令,設定內容如下所示:
設定完成後,即可啟動Nagios程式,利用SNMP服務來監控磁碟。在啟動Nagios之前,必須先確定被監控端的主機SNMP服務已經正常啟動,可利用指令「/usr/local/nagios/libexec/check_snmp_storage -H 127.0.0.1 -C public -m / -w 80 -c 81」進行測試。如果有出現下圖所示的提示訊息,即表示SNMP已正常地啟動。
而後,執行指令「nagios -d nagios.cfg」啟動Nagios,即可利用Nagios來監控磁碟容量。
結語
在本解決方案中,筆者僅以檢查磁碟容量為例來實作Nagios與SNMP服務的結合運用,其實SNMP可提供的服務遠多於此,例如可利用SNMP服務檢查CPU、記憶體和Process等等,此部分就留待讀者自行發揮了。