vSphereのSNMP設定

SNMP経由でVMWare vSphere ESX4のリソース情報を取得できないかと試してみた。

とりあえず以下の資料を参考に試す
・vSphere Command-Line Interface Installation and Reference Guide
・Configuring the Net-SNMP Agent onESX Hosts

操作はWindowsPCから行うためCLIをインストールしておく

SSHでESXに接続しsnmpデーモン(NET-SNMP)の状態を確認し起動していたら停止
(SSH)

service snmpd status
service snmpd stop

■操作PCから組込SNMPの設定状態を確認
(CLI)

vicfg-snmp.pl --server [サーバIP] --username root --password [パスワード] --show

■コミュニティ構成設定
NET-SNMPで161番ポートを使うため組込SNMPは別ポートを指定(171とか)
(CLI)

vicfg-snmp.pl --server [サーバIP] --username root --password [パスワード] -c [コミュニティ名]
vicfg-snmp.pl --server [サーバIP] --username root --password [パスワード] -p [ポート番号]

■組込SNMPを有効にする
(SSH)

vicfg-snmp.pl --server [サーバIP] --username root --password [パスワード] --enable

以下のエラーメッセージが出てしまったが調べるためにmgmt-vmwareやNET-SNMPの再起動をしていたら直ってしまった・・・。

■とりあえず再度mgmt-vmwareを再起動
(SSH)

service mgmt-vmware restart

■NET-SNMPのconfigファイル(/etc/snmp/snmpd.conf)に以下を追加

view systemview included .1.3.6.1.4.1.5876
proxy -v 1 [組込SNMPのコミュニティ名] udp:127.0.0.1:[組込SNMPポート番号] .1.3.6.1.4.1.5876
 

■snmpdを再起動
(SSH)

service snmpd restart

■接続確認

snmpwalk -v 1 localhost -c [NET-SNMPコミュニティ名] .1.3.6.1.2.1.1 ←OS基本情報
snmpwalk -v 1 localhost:171 -c [組込SNMPコミュニティ名] .1.3.6.1.4.1.5876 ←組込SNMPからvmware基本情報
snmpwalk -v 1 localhost -c [NET-SNMPコミュニティ名] .1.3.6.1.4.1.5876 ←NET-SNMP経由でvmware基本情報

外部から隠せ素できない場合はF/Wでsnmpポートが塞がれている可能性がある、F/Wの設定変更は通常のLinuxとは違う設定管理をしているみたい(通常のLinuxなら/etc/sysconfig/iptablesがあるがESXにはない)でvSphere Clientで行うのが簡単でよいみたい。

(vSphere Client)
・【インベントリ】パネルでホストを選択
・【構成】タブを選択
・【セキュリティプロファイル】をクリック
・プロパティウインドウで構成の詳細を編集

コマンドで行うならesxcfg-firewallコマンドらしい(ESX構成ガイド参照)


あとはMIBブラウザでMIBを使ったアクセスするために今回はGetifを使いダウンロードしたVMWARE-MIBをGetifインストールディレクトリ内にあるMibsに展開してあげるだけ。

ただよくよく調べてみるとSNMP経由では自分がほしいCPU、メモリ使用率が取得できなかった・・・がっかり

ちなみに今回は検証のためセキュリティを考えない設定なのでコミュニティ名とかsnmpポートのアクセス制限は未考慮