Zabbixで温度を測るためにLinuxでUSB温度計を利用できるようにします。
■USB温度計の準備
使ったのはAmazonやヤフーショッピングで売っているスティック型USB温度計。現在利用しているのはTEMPerV1.2ですが、センサーが2個ついたTemperV2でも利用可能なはず。
3年前に購入した時は1本1,000円くらいでしたが、今は1,500~2,000円するようです。
■USB温度計を設置
入手したUSB温度計をLinuxサーバに接続します。といってもUSBなので差し込むだけ。
一つは機器の排気温度の影響を受けない位置で計測したいのでラックマウントサーバの前面に直接差し込みます。全長が短いので前面ドアにぶつかることはありません。
もう一つは少し離れた場所の温度を測りたいのでUSB延長ケーブルを使います。USB規格で5.0mまでのケーブルしか使えません。規格以上に長いケーブルを使いたい場合はUSBリピーターケーブルを用意しましょう。今回は直射日光の当たらない床上約1mの場所にUSB温度計を垂らします。
■Linuxにドライバを準備する
付属のCDにはWindows用のドライバしか入っていないのでLinuxで利用するには別途ドライバを調達する必要があります。私が利用しているのはOSAKANA TARO氏が公開が公開している「pcsensor-1.0.2 for TEMPerV1.2 with multi device support」。今から導入するならpcsensor-1.0.3の方が良いはずです。
■USB温度計 | OSAKANA TAROのメモ帳
http://blog.osakana.net/archives/category/minor/usbtemper
pcsensorの使い方はLinuxに解凍・コピーしてpcsensorを実行するだけ。
# cd /tmp # wget http://blog.osakana.net/sw/pcsensor/pcsensor-1.0.3.tar.gz tar xvf pcsensor-1.0.3.tar.gz # tar xvf pcsensor-1.0.3.tar.gz ./pcsensor-1.0.3/ ./pcsensor-1.0.3/pcsensor-1.0.0.c ./pcsensor-1.0.3/99-tempsensor.rules ./pcsensor-1.0.3/Makefile ./pcsensor-1.0.3/pcsensor ./pcsensor-1.0.3/pcsensor-1.0.1.c ./pcsensor-1.0.3/pcsensor-0.0.1.c ./pcsensor-1.0.3/readme.txt ./pcsensor-1.0.3/pcsensor.c # cp -r pcsensor-1.0.3/ /opt/pcsensor # cd /opt/pcsensor # ls -alh 合計 100K drwxr-xr-x 2 root root 4.0K 7月 26 19:21 2015 . drwxr-xr-x. 5 root root 4.0K 7月 26 19:21 2015 .. -rw-r--r-- 1 root root 96 7月 26 19:21 2015 99-tempsensor.rules -rw-r--r-- 1 root root 211 7月 26 19:21 2015 Makefile -rwxr-xr-x 1 root root 20K 7月 26 19:21 2015 pcsensor -rw-r--r-- 1 root root 12K 7月 26 19:21 2015 pcsensor-0.0.1.c -rw-r--r-- 1 root root 13K 7月 26 19:21 2015 pcsensor-1.0.0.c -rw-r--r-- 1 root root 13K 7月 26 19:21 2015 pcsensor-1.0.1.c -rw-r--r-- 1 root root 14K 7月 26 19:21 2015 pcsensor.c -rw-r--r-- 1 root root 1016 7月 26 19:21 2015 readme.txt #
■pcsensorをコンパイル & 実行してみる
pcsensorはコマンドを実行するだけで動くはずでしたが、エラーで実行できませんでした。回避策としてOSAKANA TARO氏の記事を参考にコンパイルを試してみます。
# cd /opt/pcsensor # ./pcsensor bash: ./pcsensor: バイナリファイルを実行できません # rm -f pcsensor # make cc -DUNIT_TEST -o pcsensor pcsensor.c -lusb # ./pcsensor 2015/07/26 19:28:18 Temperature0 96.35F 35.75C 2015/07/26 19:28:18 Temperature0 98.94F 37.19C
今度は実行できましたね。1行目と2行目で違う温度が表示されています。表示される温度と実際の室温を調べた結果、1行目が延長ケーブルで接続した離れた場所の温度計、2行目がサーバ前面の温度計でした。
値は機器によって異なるので、出力された結果を元に自分で見当をつけるのが手っ取り早いと思います。
Zabbixで値を取得・識別するために、オプション -dで接続先(Bus)を、オプション -cで摂氏温度だけを取得します。
# /opt/pcsensor/pcsensor -d -c 2015/07/26 19:40:46 Bus 003 Device 054 Temperature0 35.62C 2015/07/26 19:40:46 Bus 002 Device 054 Temperature0 37.06C
以上でLinuxで温度を取得できるようになりました。次回はこのコマンドを元にzabbix-senderを使ったZabbix温度監視の方法を紹介します。