[VMware] 如何在ESXi上啟用SNMP,讓監控系統順利取得系統資訊

[VMware] 如何在ESXi上啟用SNMP,讓監控系統順利取得系統資訊

在一個管理多台伺服器的環境中,若是能透過硬體的監控軟體

如Whatsup等等的系統,就可以透過SNMP的通訊協定達到主機硬體資源的控管與圖表式的監控

若是要能讓Whatsup等的監控軟體達到監控的目的,前提是目標主機必須要開啟SNMP的服務,這樣才能順利的讓監控軟體取得資訊

若是Windows平台的伺服器很簡單,只要在SNMP服務中,設定兩個項目即可

1.[代理程式][實體][資料連結及子網路]打勾

2013-07-31_215248

2.於[安全性]頁籤中設定[接受的群體名稱]以及指定主機接受SNMP封包就可以了,其中群體名稱預設為public,除非有特別的需求才進行增加動作

2013-07-31_215335

這是Windows平台的設定方式,但是由於ESXi是Lite版本的Linux,雖然可以透過更改Linux的底層進行設定

不過VMware有提供了一個好用的工具可以讓我們直接的進行設定

1.先從VMware vSphere CLI 5.0這裡下載CLI的工具,若是要下載的話必須先登入會員。

2.安裝完成後,透過命令提示字元,切換到"C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\"目錄下

cd "C:\Program Files (x86)\VMware\VMware vSphere CLI\bin\"

3.主要會使用到的,就是vicfg-snmp.pl這一個程式

首先可以透過下面的指令查看該ESXi伺服器是否已經啟用SNMP的服務

vicfg-snmp.pl --server [ESXi主機的IP或是名稱] --username [root帳號] --password [root帳號的密碼] --show

下面這行指令,可以設定snmp的服務進行啟用的動作

vicfg-snmp.pl --server [ESXi主機的IP或是名稱] --username [root帳號] --password [root帳號的密碼] --enable

若是像上面設定Windows的方式,有需要設定群體名稱的話,則可以透過--c設定群體名稱,如

vicfg-snmp.pl --server [ESXi主機的IP或是名稱] --username [root帳號] --password [root帳號的密碼] --c Whatsup

進行目標主機接受封包的語法,則可以使用--t這個參數,如

vicfg-snmp.pl --server [ESXi主機的IP或是名稱] --username [root帳號] --password [root帳號的密碼] --t [接受SNMP封包主機]@[Port號]

上述的指令,不一定全部都要擠在一行指令完成,可以分成多行

所以我實際在執行啟用SNMP時所下的指令為

vicfg-snmp.pl --server ESXiServer --username root --password xxxx --enable
vicfg-snmp.pl --server ESXiServer --username root --password xxxx  --t MyWhatsupServer@162
vicfg-snmp.pl --server ESXiServer --username root --password xxxx --c whatsup

而在ESXi 5.0中,指令則有些許的改變,可以將--t與--c的參數和在一起使用

因此,我更改後的語法如下

vicfg-snmp.pl --server ESXiServer --username root --password xxxx  --t MyWhatsupServer@162/whatsup

對於這部份的指令有興趣的人,可以參考VMware中的官方文件內容

Configuring SNMP Traps in ESXi/ESX (1008065)