Nagios SNMP 主機監控

結合SNMP服務 Nagios監控能力更全面

2012-06-07
Nagios程式常用來即時監控系統服務狀態,但對於檢測系統磁碟剩餘容量是否仍在安全範圍內卻力有未逮,而另一個軟體SNMP可以提供更詳細的系統資訊,剛好能夠補其不足。為此,本文將實作結合SNMP服務的Nagios,讓網管工作更安全更輕鬆。

樹狀結構上的物件都會分配一組唯一的物件識別碼,如上述結構中的internet,物件識別碼表示方法即為iso.org.dod.internet或1.3.6.1,SNMP即可利用物件識別碼資訊來識別被監控設備並取得被監控設備的狀態,或是利用設定物件識別碼資訊來設定被監控設備的狀態。以下表格簡單說明mib-II各子群與其功能。

mib-II各子群與其功能

而隨著時代的演進,SNMP版本也不斷的更新,以更符合環境現狀所需。以下分別說明SNMP各版本的內容與差異。

SNMP版本差異

目前SNMP版本可分為SNMP V1、SNMP V2和SNMP V3,以下簡略說明這三個版本的差異性。先從SNMP V1說起,SNMP V1主要存在以下幾個問題:

1. 僅定義管理端對代理者的關係,並沒有定義管理者對管理者的關係,因此在一個網路環境中僅能部署一個管理系統,對於大型的網路環境就較無能為力。
2. 無法一次傳送大量的資料,因此必須花費較多的時間重複地下達命令,方可取得相關的資料。
3. 僅提供簡單的身分認證機制(僅利用community名稱來控管),在安全性上有相當大的疑慮。
4. 採用Pooling(輪詢)的管理方式,若間隔時間過長會有無法即時取得代理者相關資訊的情況,但如果設定間隔時間過短,大量的傳輸封包又會影響網路的使用效能。

基於SNMP V1上述的缺點,又提出SNMP V2的通訊協定,當中包含了以下幾個主要改良的地方:

1. 新增getbulkrequest命令,讓管理端只要下達一次命令即可取得大量相關資料,而不必藉由多次的存取來取得相關資料,可有效地增進網路使用的效能。
2. 新增informRequest指令,增強管理端與管理端的溝通能力,讓彼此之間能互相交換訊息。擺脫了SNMP V1一個網路環境只能部署一個管理系統的魔咒,這對於大型網路環境的管理相當有利。
3. 運用DES與MD5等編碼技術對傳送中的資料進行編碼,以增進網路傳輸時的安全。

而最後SNMP V3版本則是在SNMP V2的基礎上增強安全功能,透過對資料進行鑑別與加密,提供以下的安全特性:

1. 確保資料一定是從合法的資料源發出。
2. 對於傳輸的資料進行加密,以確保資料的機密性。
3. 利用密碼原理,確保傳輸資料在傳輸過程中不會被篡改。

SNMP V3的最終目的,在於保障管理資訊雙方只接收從合法之資料來源發出被加密且確定沒被更改的管理資訊。基於便利的考量,在本解決方案中,將採用SNMP V1版本。

安裝SNMP

執行指令「yum install net-snmp*」就能夠安裝好SNMP,然後再設定SNMP的組態檔,SNMP僅須設定一個主設定檔(/etc/snmpdsnmpd.conf)即可。接下來,說明SNMP組態檔設定的邏輯流程。

1. 設定使用者名稱與社群名稱的映射

設定使用者名稱與社群名稱的映射(MAP),相關格式如下所示:


其中,用來設定使用者名稱,為設定可允許查詢SNMP資訊的來源IP資訊,而是設定社群名稱,在SNMP V1的版本中,僅使用社群名稱來驗證,只要具有相同的社群名稱,即可通過驗證。以下設定的作用在於,允許192.168.1網段中的主機可查詢社群名稱為public的SNMP資訊。


2. 設定群組資訊

設定使用者所歸屬的群組,相關格式如下:


其中,為所設定的群組名稱, 為使用的SNMP版本(目前有V1、V2和V3三個版本),而是使用者名稱。

以下範例可將名稱為notConfigUser的使用者加入名稱為notConfigGroup的群組,並使用SNMP V2的通訊協定溝通。


3. 設定所能查看的SNMP資訊範圍

設定所能查詢的範圍,以OID為劃分標準,以下為設定可查詢所有SNMP物件的設定。


4. 設定相關權限

最後一個步驟是設定群組適當的權限,相關設定如下:



追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!