Simple Network Management Protocol

windowsXPでsnmpを利用するお話。
LinuxでもwindowsOSでもsnmpを有効にすれば、HDDの残量、CPUの負荷、温度、ファンの回転数らが
外部のマシンからモニタリング可能となる。測定装置に付随するPCがwindowsXPで、そのHDD容量やらCPU負荷状況を
観測したい際、わざわざ現地に行くのは面倒。リモートディスクトップで操作中のコンソール画面を奪えば始末書ものです。
そのような失礼のないように、裏でそのようなリソースの値を取得したい。

っということでsnmpの出番となる。

windowsXPは既にMS様から「あきらめろ」と告げられたOSなのだが、学内、研究所ではまだまだ現役。
だって、OSのためだけにソフト・マシンを更新するのは難しいですから。孤立したネットワークで運用するか
ルーター越しで使うしかないけどね。

っで、windowsXPにsnmpをインストール。

snmpのインストール

標準ではsnmpはインストールされてません。「windowsコンポーネントの追加と削除」からsnmpを追加する必要がある。
1.「スタート」->「コントロールパネル」->「プログラムの追加と削除」を起動します。
「プログラムの追加と削除」画面から左メニューの「windowsコンポーネントの追加と削除」ボタンをクリックします。
  2014y08m04d_224028557.png
2.「windowsコンポーネントウィザード」画面で、コンポーネント名「管理とモニターツール」を選択して、「詳細」ボタンをクリックします。
  2014y08m04d_224417871.png
3.「管理とモニタツール」画面で、「簡易ネットワーク管理プロトコル(SNMP)」を選択して、「OK」ボタンをクリックします。
  2014y08m04d_224704798.png
4.「windowsコンポーネントウィザード」画面に戻り、「次へ」ボタンをクリックします。
5.インストールが開始されますが、途中にOSが入ったCDROMが要求されます。CDROMを挿入して、インストールを続けさせます。
6.「windowsコンポーネントウィザード」画面に戻り、インストールが完了したことを確認して、「完了」ボタンを押して終了。
  2014y08m04d_225215412.png

snmpの設定

インストールに成功すると、「スタート」->「コントロールパネル」->「管理ツール」->「サービス」に新しいサービス名
SNMP Service」が登録される。これをダブルクリックして、プロパティ画面を表示させる。
2014y08m04d_225431085.png
「(ローカルコンピュータ)SNMP Serviceのプロパティ」画面にて、「セキュリティ」タブを開きます。そして「追加」ボタンをクリックします。
2014y08m04d_230123807.png
表示された「SNMPサービスの構成」画面にて、コミュニティの権利は「読み取りのみ」として、コミュニティ名は「public」として「追加」ボタンをクリックします。
2014y08m04d_230330700.png
「(ローカルコンピュータ)SNMP Serviceのプロパティ」画面に戻り、受け取るコミュニティ名に「public」が追加されたことを確認します。そして同画面の「すべてのホストからSNMPパケットを受け付ける」を有効にします。
2014y08m04d_230713719.png
同画面の下部の「OK」ボタンを押して設定を保存します。
マシンを再起動するか、サービス画面で「SNMP Service」を再起動さて設定を反映させます。
2014y08m04d_231148589.png

これで設定は一通り完了です。

ただ、これだけではHDDの残量とかは取得できなくて、機能を拡張するエージェントソフトを追加します。それがsnmp-informant

snmp-informant

標準では採取できない情報を取得可能にしてくれるsnmp拡張エージェントソフト。
「SNMP Informant-Premium」と「SNMP Informant-STD」があるが、後者は無料で使えて目的のHDDの残量もこれを組み込めば調べられる。
http://www.snmp-informant.com/snmp_informant-standard.htm
画面下の「donwload」をクリックして、次の画面のChoose the fileで「SNMP Informant-STD v1.7」を選んで「Donwload」ボタンをクリックする
2014y08m04d_234158997.png
取得したファイル「informant-std-17.zip」を解凍して、informant-std-17.exeファイルを得ます。
2014y08m04d_234623164.png
この実行プログラムをダブルクリックして、起動させと下記のような起動画面が表示される。「Next>」ボタンをクリックします。
2014y08m04d_234746022.png
*適用しているマシンはwindowsXP64bit版です
「License Agreement」画面が表示され、同意するなら「I accept ...」を有効にして「Next>」ボタンをクリックします。
2014y08m04d_235010399.png
「Select Destination Location」画面で、このソフトウエアのインストール場所を指定します。既定のままとして「Next>」ボタンをクリックします。
2014y08m04d_235324654.png
「Select Start Menu Folder」画面でスタートメニューに表示される項目名を記入します。既定のままとして「Next>」ボタンをクリックします。
2014y08m04d_235436765.png
「Ready to Install」でインストール先のけ九人を行い「Install」ボタンをクリックします。これでインストールが開始されます。
2014y08m04d_235612678.png
インストールに成功すると下記のような画面が表示されます。Guide.pdfは迷ったら読むので、チェックを外して「Finish」ボタンを押して完了させます。
2014y08m04d_235759110.png

外部からsnmpへアクセス

事前にsnmpサイトのファイアウォールは停止するか、161/udpのポートを許可します

外部として、ここではLinuxマシンを使用します。

[root@c ~]# yum install net-snmp-utils

「SNMP Informant」の追加で新たに「1.3.6.1.4.1.9600.1.1」以下のMIBオブジェクトが参照可能になった。
このMIBオブジェクトになにがあるかは下記を参照の事
http://www.snmp-informant.com/products/std/snmp-informant-std-tree.htm

ここで目的にしているHDDの残量は
(Informant-Standard)+(logicalDiskTable)+(logicalDiskEntry)+(lDiskFreeMegabytes)
1.3.6.1.4.1.9600.1.1」+「.1」+「.1」+「.20
となる1.3.6.1.4.1.9600.1.1.1.1.20で調べられます。
実際のコマンドとしては、

[root@c ~]# snmpwalk  -On -v1 -c public 192.168.0.22  .1.3.6.1.4.1.9600.1.1.1.1.20
.1.3.6.1.4.1.9600.1.1.1.1.20.2.67.58 = Gauge32: 3941
.1.3.6.1.4.1.9600.1.1.1.1.20.6.95.84.111.116.97.108 = Gauge32: 3941
[root@c ~]#

と表示され、windowsXPでの残量は
2014y08m05d_001646245.png
数値が合っていないよう見えるが、
 4,133,171,200 / 1024 / 1024 = 3941.69921875
と演算されるので、同じと言える。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2014-08-05 (火) 08:25:51 (1108d)