具体的には温度とか消費電力とかを監視したいのです。ESXi が動いてるサーバの。
vCenter Client で見れば「現在の値」は出とるのだけど、そんなんずっと見てられへんわ。
VMware の有償版だとなんかすてきなインタフェースがあるんでしょうか。その辺知らないんですけど無償版でどうするよと。
そしたら WBEM (Web-Based Enterprise Management) を使ってシステムをリモートから管理できるという。
VMware: VMware ESXi Chronicles: Hardware Health Monitoring via CIM などの記事を見てると Python で書けるという。 pywbem を入れればホイホイいけるという。
サンプル見てやってみたけど Python の作法も pywbem の作法もよくわからなくて即挫折。次。
redhat 系なら sblim-wbemcli を入れれば wbemcli が使えるので、これでアクセスすればよくね?ってことで。
# wbemcli ei -nl -noverify 'https://root@server:5989/root/cimv2:CIM_NumericSensor'
おおお!センサから取得してるデータがたくさん出てきます。
"Front Panel Board 1 Ambient Temp" が温度でしょう。 "Power Distribution 0 Avg Power" が消費電力でしょう。
こんな風に無理矢理数字を引っ張り出します。
まず温度。摂氏。
# wbemcli ei -nl -noverify
'https://root@server:5989/root/cimv2:CIM_NumericSensor' | awk
'BEGIN{RS="";FS="="}/50\.0\.32\.99/{print $4/100}'
つぎ消費電力。ワット。
# wbemcli ei -nl -noverify
'https://root@server:5989/root/cimv2:CIM_NumericSensor' | awk
'BEGIN{RS="";FS="="}/46\.0\.32\.99/{print $4/100}'
これでデータが取れるのでこいつを zabbix-agentd から呼び出して監視するぜ。