vmwareのsnmpの拡張MIBを設定する

VMware ESXiの情報をsnmpwalkなどで取得すると、このような感じでどの値が何を示しているのかわからない。

SNMPv2-SMI::enterprises.6876.2.1.1.2.32 = STRING: "test-server"
SNMPv2-SMI::enterprises.6876.2.1.1.3.32 = STRING: "/vmfs/volumes/4zzz7faxxx6-xxxxxx2-cxxxx-4xxxxf6e3a/test-server/test-server.vmx"
SNMPv2-SMI::enterprises.6876.2.1.1.4.32 = STRING: "centos64Guest"
SNMPv2-SMI::enterprises.6876.2.1.1.5.32 = INTEGER: 2048
SNMPv2-SMI::enterprises.6876.2.1.1.6.32 = STRING: "poweredOn"
SNMPv2-SMI::enterprises.6876.2.1.1.7.32 = INTEGER: 32
SNMPv2-SMI::enterprises.6876.2.1.1.8.32 = STRING: "running"
SNMPv2-SMI::enterprises.6876.2.1.1.9.32 = INTEGER: 1
SNMPv2-SMI::enterprises.6876.2.2.1.3.32.1000 = STRING: "SCSI Controller 0"
SNMPv2-SMI::enterprises.6876.2.2.1.4.32.1000 = STRING: "lsilogic"
SNMPv2-SMI::enterprises.6876.2.3.1.3.32.2000 = STRING: "Hard Disk 1"
SNMPv2-SMI::enterprises.6876.2.4.1.3.32.4000 = STRING: "Ethernet 1"
SNMPv2-SMI::enterprises.6876.2.4.1.3.32.4001 = STRING: "Ethernet 2"
SNMPv2-SMI::enterprises.6876.2.4.1.4.32.4000 = STRING: "internal"
SNMPv2-SMI::enterprises.6876.2.4.1.4.32.4001 = STRING: "service"
SNMPv2-SMI::enterprises.6876.2.4.1.5.32.4000 = STRING: "monitor_dev"
SNMPv2-SMI::enterprises.6876.2.4.1.5.32.4001 = STRING: "monitor_dev"
SNMPv2-SMI::enterprises.6876.2.4.1.6.32.4000 = STRING: "true"
SNMPv2-SMI::enterprises.6876.2.4.1.6.32.4001 = STRING: "true"
SNMPv2-SMI::enterprises.6876.2.4.1.7.32.4000 = Hex-STRING: 00 0C 29 Ex Cx 8x 
SNMPv2-SMI::enterprises.6876.2.4.1.7.32.4001 = Hex-STRING: 00 0C 29 Ex Cx 9x 
SNMPv2-SMI::enterprises.6876.2.6.1.3.32.3002 = STRING: "[] /vmfs/volumes/3c3xxxxe8-fvvvv42a-1xxx0-vvvvdcb26d3a/packages/4.1.0/vmtools/linux.iso"
SNMPv2-SMI::enterprises.6876.2.6.1.4.32.3002 = STRING: "false"

そこで、VMwareの公式サイトで公開されているMIBファイルを取得し、
もう少しわかりやすく表示できるようにしてみます。

http://downloads.vmware.com/d/details/esx40_snmp_mib_dt/ZHcqYmQqaCViZCpwcA==
ここからMIBファイル群をダウンロードします。

MIBファイルをsnmpwalkを実行する際に読み込まれるように設定します。

MIBファイル取得&配置

$ cd /tmp
$ wget http://download3.vmware.com/software/esx/VMware-esx-mibs-1.0.1-237711.zip
$ unzip VMware-esx-mibs-1.0.1-237711.zip
$ mkdir -P ~/.snmp/mibs
$ mv /tmp/esx ~/.snmp/mibs/esx4

MIBファイル読み込み設定

$ vim ~/.snmp/snmp.conf
mibdirs /usr/share/snmp/mibs:$HOME/.snmp/mibs/mibs/esx4
mibs all

この設定をしてsnmpwalkを実行してみると以下のようにMIBの情報が反映されて表示されます。

VMWARE-VMINFO-MIB::vmwVmDisplayName.32 = STRING: test-server
VMWARE-VMINFO-MIB::vmwVmConfigFile.32 = STRING: /vmfs/volumes/4zzz7faxxx6-xxxxxx2-cxxxx-4xxxxf6e3a/test-server/test-server.vmx
VMWARE-VMINFO-MIB::vmwVmGuestOS.32 = STRING: centos64Guest
VMWARE-VMINFO-MIB::vmwVmMemSize.32 = INTEGER: 2048 megabytes
VMWARE-VMINFO-MIB::vmwVmState.32 = STRING: poweredOn
VMWARE-VMINFO-MIB::vmwVmVMID.32 = INTEGER: 32
VMWARE-VMINFO-MIB::vmwVmGuestState.32 = STRING: running
VMWARE-VMINFO-MIB::vmwVmCpus.32 = INTEGER: 1
VMWARE-VMINFO-MIB::vmwHbaNum.32.1000 = STRING: SCSI Controller 0
VMWARE-VMINFO-MIB::vmwHbaVirtDev.32.1000 = STRING: lsilogic
VMWARE-VMINFO-MIB::vmwHbaTgtNum.32.2000 = STRING: Hard Disk 1
VMWARE-VMINFO-MIB::vmwVmNetNum.32.4000 = STRING: Ethernet 1
VMWARE-VMINFO-MIB::vmwVmNetNum.32.4001 = STRING: Ethernet 2
VMWARE-VMINFO-MIB::vmwVmNetName.32.4000 = STRING: internal
VMWARE-VMINFO-MIB::vmwVmNetName.32.4001 = STRING: service
VMWARE-VMINFO-MIB::vmwVmNetConnType.32.4000 = STRING: monitor_dev
VMWARE-VMINFO-MIB::vmwVmNetConnType.32.4001 = STRING: monitor_dev
VMWARE-VMINFO-MIB::vmwVmNetConnected.32.4000 = STRING: true
VMWARE-VMINFO-MIB::vmwVmNetConnected.32.4001 = STRING: true
VMWARE-VMINFO-MIB::vmwVmMAC.32.4000 = STRING: 0:c:29:ex:cx:8x
VMWARE-VMINFO-MIB::vmwVmMAC.32.4001 = STRING: 0:c:29:ex:cx:9x
VMWARE-VMINFO-MIB::vmwCdromName.32.3002 = STRING: [] /vmfs/volumes/3c3xxxxe8-fvvvv42a-1xxx0-vvvvdcb26d3a/packages/4.1.0/vmtools/linux.iso
VMWARE-VMINFO-MIB::vmwCdromConnected.32.3002 = STRING: false

ちなみに上記のMIBファイルはVMwareESXi4.0,4.1に対応したものです。
このMIBファイルでVMwareESXi5.0のSNMP情報を取得すると、ある程度表示はされるようですが、
一部詳細に表示できない項目がありました。

4系のMIBファイルで5系のSNMPの項目を取得した場合

VMWARE-ENV-MIB::vmwEnv.100.0 = INTEGER: 3
VMWARE-ENV-MIB::vmwEnv.101.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.102.0 = Timeticks: (0) 0:00:00.00
VMWARE-ENV-MIB::vmwEnv.103.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.104.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.105.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.106.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.107.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.108.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.109.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.110.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.111.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnv.111.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

5系のMIBファイルを適用した場合

VMWARE-ENV-MIB::vmwEnvSource.0 = INTEGER: indications(3)
VMWARE-ENV-MIB::vmwEnvInIndications.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvLastIn.0 = Timeticks: (0) 0:00:00.00
VMWARE-ENV-MIB::vmwEnvOutNotifications.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvInErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvIndOidErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvCvtValueErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvCvtSyntaxErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvCvtOidErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvGetClassErrs.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvPropertySkips.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvIndicationSkips.0 = Counter32: 0
VMWARE-ENV-MIB::vmwEnvIndicationSkips.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

これらの項目は5系から追加で取得できるようになった項目のようです。
この項目に対しては5系のMIBファイルの適用が必要なので、可能であれば最新のMIBファイルを適用させておくのがいいかと思います。

VMwareESXi5.0に対応したMIBファイルは以下のページからダウンロード可能です。
5.0のMIBをダウンロードするにはログインが必要でした。
http://downloads.vmware.com/d/details/snmp_mibs/dHRAYnQlKmhiZHAlJQ==


これはVMware ESXiに限ったことではないので、
ネットワーク機器など拡張MIBが含まれる製品であればベンダーのサイトからMIBファイルを取得してきて同様にMIBファイルを配置すれば見れるようになります。