muninでWindows機を監視しよう

Posted on 2008年07月24日 | Comment (0) | TrackBack (0)

unixマシンならなんでもお手軽、かつ詳細な情報を収集してグラフ化してくれるmunin。
プラグインの自作も簡単なので、自分が調査したいものを手軽に監視できます。

ところが、基本的にはunix用のノードプログラムしか用意されてなくて、こいつでWindowsを監視させようと思うと難儀することになるわけです。

Windowsの何を監視するのか?

ええと、VMware Server(Windows Host)を使ってunixシステムを仮想化して動かしています。このサイトを公開しているシステムもVMware上の仮想マシンです。
仮想化されている/いないにかかわらず、muninは正しく動きますが、CPUやディスクの温度などハードウェアの情報を直接拾ってくるものだけは動きません。
この情報を取得するには Host OS の Windows から直接情報を得る必要がありました...。

長くなりましたが、Windows機の各種温度を取得してmuninでグラフ化してみる というのがこのページの内容。
僕は温度が取得できればそれでいいので、よくあるsnmpを使ってWindowsのトラフィックだとかを取得する方法は説明してないから、それが欲しい人は他のサイトを探してください。
 

そもそもCPUやディスクの温度を取得したいのはなぜ??という人のために書いておくと、冷房をかけるかどうかの判断基準にしたいから。
この統計情報を元に、エアコンをつけるかどかを決めています。特にハードディスクの温度は50度を越えると危険なので、これを超えてしまうようならエアコンをつけっぱなしにします。
さらに統計情報があれば、エアコンの設定温度を何度にすればいいかもつかみやすいです。必要以上に冷やすのは電気のムダですし。(とくに自宅サーバーの場合はね...)
本当はディスクの温度等に加え室温も記録できるとより関連性が分かるのですが、室温を測定し、それをパソコンに取り込むような道具がなくて、まだ実現できていません。。(くろせくーん...)

温度を取得するために必要なツール:その1

■ munin-node-win32

Windows用のノードプログラムです。MSI Installer ってのを拾ってくると吉。ダブルクリックでインストール(サービスへの登録)ができます。
インストールするとC:\Program Files\Munin Node for Windows配下にプログラムと設定ファイルが置かれます。

ここまでが終わると、不完全ながらWindowsノードとして動くようになります。確認するには

telnet localhost 4949
とするといいでしょう。list とか、fetch hogehoge とか、いろいろやってみるべし。

もしかして動かない場合は、設定ファイル(munin-node.ini)の[Plugins]セクションを適当に0(disables)にしてリトライ。(サービスの再起動を忘れずに。)

温度を取得するために必要なツール:その2

■ SpeedFan

これねぇ、とても分かりにくい。
munin-node-win32 は、それ単体で温度を取得する機能を持っておらず、SpeedFanからの情報を利用するのです。ので、SpeedFanが正しく設定できてないとダメなんですねぇ。

長くなるので、SpeedFanの使い方は知っているものとして書きます。
ええと、キモになるのは xAP なるもの。

xAPがどんなものかってのは、調べたんだけどよく分からなかった。。設定項目から推測するに、情報を外に対して発信するような仕組みなんだと思うのですが...。
まぁそういうわけで、xAP を Enable にすると、温度情報がブロードキャストされます と、言うことで。

munin-node-win32 の設定

設定ファイルを修正します。
SpeedFanから温度を取得する部分の設定です。以下、抜粋。

[Plugins]
; Plugin Section, 1 enables plugin, 0 disables
Disk=0
Memory=0
Processes=0
Network=0
MbmTemp=0
MbmVoltage=0
MbmFan=0
MbmMhz=0
SMART=0
HD=0
Cpu=0
SpeedFan=1
External=0
 
[...]
 
[SpeedFanPlugin]
BroadcastIP=192.168.xx.xx
UID=FF671100

SpeedFanPlugin 部の設定は難しいことはなくて、UIDは SpeedFan 側の設定と合わせればOK。
BroadcastIPもそのまんまなのですが、ここはSpeedFanが動いているマシン(=munin-node-win32が動いているマシン)のIPを書いてます。192.168.10.20 とか。

BroadcastIPって書いてあるわりには端末のIPを指定するようです。よく分からん。

で、ここまでできたら、munin-node-win32サービス再起動後にtelnet でテストしてみるとよいでしょう。

再起動直後はSpeedFan xAP からの情報が送られてきていないため、エラーになります。30秒も待てば動くようになりました。エラーになる場合は少し待ってからリトライ。

munin親の設定

munin.conf に監視対象ノードを追加します。

[hoge.terakado.jp]
    address 192.168.10.20
    use_node_name yes

めでたく温度が取得できました。

どこの温度がグラフ化されるかは、SpeedFan側の設定に依存します。

トピック

トラックバック

このエントリーのトラックバックURL:

コメント

コメントフォームに記入し投稿してください

初コメントのときは、このてらかどの承認が必要になります。承認されるまでコメントは表示されません。そのときはしばらく待ってください :)





Recent Entries
Archives
Feed
Search

Powered by

Valid CSS!