Apache 網站伺服器 MRTG SNMP

以SNMP即時監控網站伺服器

2012-09-18
在邁入電子商務時代的今日,相信每個企業都有專屬的企業網站,而如何有效管理企業網站,也是每個網管人員心目中重要的課題。為此,本文將善用Mod-Apache-Snmp模組來即時監控網站,並透過MRTG讓數據以圖形化顯示,以便減輕網管人員的負擔。
上圖中,樹狀結構內的物件均會分配一組唯一的物件識別碼(OID),如上述結構中的internet,物件識別碼表示方法即為iso.org.dod.internet或1.3.6.1,SNMP即可利用物件識別碼資訊來識別被監控設備,並用來取得被監控設備的狀態。或者,利用設定物件識別碼資訊來設定被監控設備的狀態。

SNMP各版本說明

隨著時代的演進,SNMP版本也不斷地更新,以更符合環境現狀所需。目前SNMP版本分為SNMP v1、SNMP v2、SNMP v3,以下簡略說明這三個版本的差異性。

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軟體。

安裝SNMP

由於本解決方案所使用的SNMP軟體必須含有描述Apache的MIB資訊,所以SNMP軟體須採用原始碼編譯的方式。請先自行移除系統上的SNMP套件,移除後,再到下列網址取得Net-SNMP原始碼(筆者取得的版本為5.4.4):

http://sourceforge.net/projects/net-snmp/ files/net-snmp/5.2.6/net-snmp-5.4.4.tar.gz/ download

接著,連結至下列網址取得Mod-Apache-Snmp(筆者取得的版本為1.04):

http://sourceforge.net/projects/mod-apache-snmp/files/ mod-apache-snmp/mod_ap2_snmp_1.04/mod_ap2_snmp_ 1.04.tar.gz/download

將相關檔案解壓縮後,先在Net-SNMP原始碼目錄內新建一個名稱為「apache2」的目錄,相關指令如下:


將相關檔案複製完成後,即可進行編譯Net-SNMP:


在編譯的過程中,SNMP會詢問相關問題,僅需回答預設的答案即可。如果一切正常,則會出現如下圖的畫面,顯示SNMP所支援的模組,請檢查是否包含ap2_snmp模組。


▲顯示SNMP所支援的模組。

然後,編譯SNMP模組,並將SNMP相關程式安裝於「/usr/local/snmp」目錄內:


在這裡要特別提醒的是,在SNMP程式安裝完成後,並不會將APACHE2-MIB.TXT複製到SNMP的安裝目錄下,所以必須手動將APACHE2-MIB.TXT複製到「/usr/local/share/snmp/mibs/」目錄內。

設定SNMP組態檔

在安裝完成後,接著設定SNMP的組態檔。僅須設定一個主設定檔,檔名為snmpd.conf,以本文為例位於「/usr/local/snmp/etc/snmpd.conf」。基本上,SNMP設定的邏輯流程如下:

首先,設定使用者名稱與社群名稱的映射(MAP),其格式如下:


代表的是設定使用者名稱,為設定可允許查詢SNMP資訊的來源IP資訊,而則是設定社群名稱。

在SNMP v1的版本中,僅使用社群名稱來驗證,只要具有相同的社群名稱,即可通過驗證,例如「com2sec notConfigUser 192.168.1.0/24 public」即表示允許192.168.1網段中的主機,可查詢社群名稱為public的SNMP資訊。


追蹤我們Featrue us

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

我知道了!