2019年5月10日:追記
現在はSpeedFan SNMP Extensionを入手する手段がないため、この方法は使用できません。
よくWindows Serverの話題をされる@Toshihito_SKK さんが、Windows OS上からCPUとGPUの温度を取得する方法についてTwitterで流されていたので、このまま流れると勿体無いなぁと思い、勝手にまとめることにしました。
検証環境:
- 筐体:HP ML110G6
- OS:Windows 7 pro SP1
手順
1. WindowsのSNMPの有効化の実施
[コントロールパネル]-[プログラムと機能]-[Windowsの機能の有効化または無効化]から、[簡易ネットワーク管理プロトコル(SNMP)]にチェックを入れる。
2. [管理ツール]-[サービス]から[SNMP Service]のプロパティを開く。
3. 「受け付けるコミュニティ名」に「public/読み取りのみ」で追加する。また、「これらのホストからSNMPパケットを受け付ける」にチェックを入れ、ZabbixサーバのIPアドレスなどを入力する。
4. Speedfanをインストールする。
SpeedFan – Access temperature sensor in your computer /
http://www.almico.com/speedfan.php
5. SpeedFan SNMP Extension をインストールする。
Bastart Code Repository: SpeedFan SNMP Extension /
http://deve.loping.net/projects/sfsnmp/
6. Speedfanをインストールしたディレクトリに、injector.exeが導入されるので、そちらを「管理者として実行」する。すると、Speedfan.exeが連動して起動してくるので最小化しておく。
7. 正しく取得できているか、snmpwalkを使用して確認する。
[root@zabbix ~]# snmpwalk -v 2c -c public 192.168.xxx.xxx .1.3.6.1.4.1.30503.1.2
SNMPv2-SMI::enterprises.30503.1.2.1 = INTEGER: 4000
SNMPv2-SMI::enterprises.30503.1.2.2 = INTEGER: 0
SNMPv2-SMI::enterprises.30503.1.2.3 = INTEGER: 3700
SNMPv2-SMI::enterprises.30503.1.2.4 = INTEGER: 3300
SNMPv2-SMI::enterprises.30503.1.2.5 = INTEGER: 3400
SNMPv2-SMI::enterprises.30503.1.2.6 = INTEGER: 4200
SNMPv2-SMI::enterprises.30503.1.2.7 = INTEGER: 4300
SNMPv2-SMI::enterprises.30503.1.2.8 = INTEGER: 4500
SNMPv2-SMI::enterprises.30503.1.2.9 = INTEGER: 4100
上から、画面のように対応しているようです。
8. 以下を参考にOIDをZabbixに登録していく。
Bastart Code Repository: SpeedFan SNMP Extension /
http://deve.loping.net/projects/sfsnmp/#id1
Fan speed count、Voltage count、などの値は取得出来ませんでした。まぁ、この筐体の場合はIPMIが使えるので、そちらから取ればよいのですが。
9. グラフにも登録を行い、正しく出力されていることを確認する。
これでIPMIがないPCでもZabbixからCPUやGPUの温度またはファン回転数などを監視することが出来るようになると思います。
参考情報を提供してくださった@Toshihiro_SKKさんに感謝致します。