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ファイルを配置すれば見れるようになります。