2年前にやろうとして挫折した「SNMP 経由の Windows XP マシンの温度監視」に再チャレンジ。予想以上に上手くいく。
Windows XP の SNMP サービスについて調べたのが,ちょうど2年前の今日(nlog(n): Windows XP の SNMP サービス)。調べるきっかけとなったのは,Windows マシンの温度監視が Linux でできないかと思ったからだった。Motherboard Monitor (MBM) を使うと,Windows 自身では温度監視ができるが,他のマシンからリモートで監視することはできなかった。MBM にはファイル転送機能がついているので,測定した温度を Linux に転送すれば温度のグラフができることになる(nlog(n): Motherboard Monitor 5 で温度監視)。Linux で MBM2MRTG を動かせばグラフができるから,2年越しでやってみようかと思ったら,サイトに接続できない。
もう少し調べてみると,SNMP Informant を使うと,MBM のデータを SNMP に乗せることができることが分かった。
以下は,Windows XP で MBM と SNMP エージェントを動かし,MBM で得られた Windows XP の CPU の温度を Linux で取得し,MRTG でグラフ化する方法である。
動作環境としては,温度監視対象マシンは Windows XP Home Edition,Motherboard Monitor 5.3.7.0,SNMP Informant MBM Monitor 1.0,温度監視マシンは Vine Linux 3.2, net-snmp 5.2.1.2, MRTG 2.12.1 (MRTG: The Multi Router Traffic Grapher)である。
まず,Motherboard Monitor をインストールし(nlog(n): Motherboard Monitor 5 で温度監視),SNMP エージェントをインストールして有効化しておく(nlog(n): Windows XP の SNMP サービス)。MBM5 の日本語化パッケージを作っている人もいる(MBM5(Motherboard Monitor 5)用日本語パッケージ)。これはお好みで。
次に,SNMP Informant MBM のインストールを行う。snmp-informant.com にアクセスし,「Download」のページを開く。「Choose the file」で「SNMP Informant-MBM v1.0」を選択する。「SNMP Informant-STD v1.4」には温度監視が含まれていないので注意。メールアドレスは入力しなくてもよい。更新情報が欲しい場合は登録する。ダウンロードしたファイルをダブルクリックすればインストールできる。
SNMP Informant-STD の使い方については 【コラム】Yet Another 仕事のツール 第82回 SNMP InformantによるWindowsサーバのSNMPエージェント (MYCOMジャーナル) が参考になる。SNMP Informant-MBM は MIB のツリー番号が違うだけである。
Linux から動作確認するには,snmpwalk コマンドを使う。snmpwalk がない場合は,net-snmp-utils パッケージをインストールする。同じ snmpwalk コマンドでも ucd-snmp のコマンドは書式が違うので注意が必要である(nlog(n): Windows XP の SNMP サービス)。
Windows に SNMP Informant-MBM をインストールすると「1.3.6.1.4.1.9600.1.10」で始まる MIB のオブジェクトツリーが追加される。確認はこのツリーを参照すればよい。Windows のホスト名を silver だとすると,次のように入力する。
これでズラズラと表示がされれば動作確認完了。ホスト名の替わりに IP アドレスでもよい。もし,次のように表示された場合は
Windows のファイアウォール機能が効いているので,設定を変えなければならない。
Linux の snmpwalk コマンドで「Timeout」となった場合,Windows のファイアウォールの設定を変更しなければならない。まずは,ファイアウォール機能を無効にして snmpwalk コマンドを試すことである。これで反応がなかったらファイアウォール以外に問題がある。
ファイアウォールを無効にして動作したら,もう一度ファイアウォールを有効にする。そして,SNMP だけを通す穴を開ける。SNMP は,UDP の 161 番ポートを使うので,このポートを例外として登録すればよい。
Linux 上の MRTG の設定を行う。設定内容は nlog(n): 温度変化を MRTG で表示する とほぼ同じ。違うのは「Target」の指定である。SNMP Informant を導入すると,ケース温度が「.1.3.6.1.4.1.9600.1.10.6.1.5.1」,CPU 温度が「.1.3.6.1.4.1.9600.1.10.6.1.5.2」という MIB のオブジェクト ID で参照できるようになるので,これにネットワーク経由でアクセスするように記述すればよい。
SNMP Informant-MBM の監視対象と MIB との対応については,MRTGによるサーバ監視(Windows2K/XP編) が詳しい。参考までに,実際に使用している MRTG の設定ファイル silver-temp.cfg の内容を示す。
コンフィグレーションファイルが作成できたら,mrtg コマンドを3回入力する。
2回の入力で必要なファイルが全て生成されるため,3回目以降は警告が出なくなる。
グラフが上手く出力されていれば,上述の mrtg コマンドを crontab に書いて定期的に動作させればよい。5分毎に動作させるなら,次のように書いておく。
実行結果が5分毎にメールで送られてくるのを防止するために /dev/null にリダイレクトしている。ディレクトリの構造がそのまま出ちゃってるけど,まあいいか。
開始して間もないので,まだちょっとしか表示されていないが,上手くいっている。
Master Archive Index
Total Entry Count: 1957