SNMPによるCPU使用率の取得について

いつも大変お世話になっております。

バージョン:1.8.9

Linuxサーバの上のCPU使用率(合計)を取得したいと考えております。
※イメージとしてはWindowsのCPU使用率の様な取得を考えております。

なんとなく、CPU使用率という値がなさそうな感じはしているものの、
hrSWRunPerfCPUの値を参考にしつつ、やりたい事が出来ないかと思っております。

他力本願で非常に申し訳ございませんが、
どなたか実績のある方で、ご教授頂けないでしょうか・・。

どうぞ宜しくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

SNMPのMIB2にはCPU使用率を取得できるOIDはなかったと思います。通常はエンタープライズMIBからCPU使用率が取得できる場合が多いので、

snmpwalk -v 2c -c <コミュニティ名> <対象機器のIPアドレス> .1

などとすると取得できるOIDの一覧が表示されるため、そこからCPU使用率を取得できるOIDを探してみてください。

ユーザー TNK の写真

値はあまり正確ではないようですが、net-snmpを利用すると、

 UCD-SNMP-MIB::ssCpuIdle.0
 (.1.3.6.1.4.1.2021.11.11.0)

の値がCPUの空き利用率のようですので、SNMPでこの値を取得して、
計算アイテムを利用して100からこの値を引くことでCPU利用率に近
い値が取得できると思います。

ただし、この方法で取得できる値は、小数点以下がなく、0~100の
整数値でしか得ることができません。

ユーザー Yoshihiro の写真

ご返信頂きありがとうございました。
お返事が遅くなりすいませんでした。

試しに↓で試した所、対象機器ではサポートされていないみたいです。

コマンド:snmpwalk -v 2c -c public 172.16.1.1 .1.3.6.1.4.1.2021.11.11.0
結果:UCD-SNMP-MIB::ssCpuIdle.0 = No Such Instance currently exists at this OID

また、対象のOSはESXでした。
(確認がとれていなくすいません)

ESXだとサポートされていないのでしょうか・・・・。

もうちょっと調べてみたいと思います。

もしご存知であればご教授頂ければ幸いです。

どうぞ宜しくお願いします。

ユーザー TNK の写真

kodaiさんが書かれていたように、snmpwalkで他に該当するようなアイテムはありません
でしたか?
ESXのバージョンを書いて頂けていませんが、管理マニュアルにMIB情報が書かれていた
と思いますので、そちらもご確認ください。

ESXであるならば、SNMPではなく、vSphere SDKを利用して値を取得した方がよいかも
しれません。
ご検討ください。

ユーザー Yoshihiro の写真

ご連絡遅くなりすいませんでした。

ご助言ありがとうございました。

vSphere SDK は念頭になかったので、
この線で調査してみたいと思います。
大変助かりました。

>>kodaiさんが書かれていたように、snmpwalkで他に該当するようなアイテムはありませんでしたか?

1時間強くらい眺めてみましたが、
それらしい値はありませんでした。

>>ESXのバージョンを書いて頂けていませんが、管理マニュアルにMIB情報が書かれていた
>>と思いますので、そちらもご確認ください。

ESXはバージョン5です。
MIB情報も確認してみます。

>>ESXであるならば、SNMPではなく、vSphere SDKを利用して値を取得した方がよいかも
>>しれません。
>>ご検討ください。