SNMP のパッケージ net-snmp をインストールしたが,反応がない。ucd-snmp の設定ファイルをそのまま持ち込んだのがいけなかった。net-snmp の設定の書式は ucd-snmp と少し違うようだ。
SNMP (Simple Network Management Protocol) はネットワーク機器を監視するためのプロトコルである。何が嬉しいかというと,SNMP デーモンをサーバで動かしておけば,サーバのディスク容量やトラフィック量などをネットワーク経由でモニタすることができ,MRTG でグラフ化することができるからである。Windows 用の SNMP エージェントもある(nlog(n): Windows XP の SNMP サービス)。Vine Linux 3.1 には,SNMP のパッケージが2種類用意されている。ucd-snmp と net-snmp である。Net-SNMP の History によると,Net-SNMP は UCD-SNMP の後継となっているようだ。私は今まで ucd-snmp しか使ったことがなかったが,新しい方の net-snmp を導入してみることにした。
Vine Linux 3.1 ではデフォルトでインストールされないが,ネットワーク経由で簡単にインストールすることができる。
net-snmp-5.1.1 がインストールされる。実際の動作をコマンドで確認したいので,ユーティリティもインストールしておく。snmpwalk コマンドはユーティリティパッケージ net-snmp-utils に入っている。
net-snmp の設定ファイルは ucd-snmp と同じ /etc/snmp/snmp.conf である。すぐに使ってみたかったので,以前に使っていた ucd-snmp 用の snmp.conf の主要部分をそのまま貼り付けて snmpd の起動を行った。
これで上手く動作すれば問題はない。setup コマンドで次回の OS リブート時に自動的に snmpd が起動するように設定すれば作業終了である。しかし,思い通りに動作しなかった。以下はこの対処のメモである。
動作確認のために,snmpwalk コマンドを入力したが,反応がない。net-snmp の snmpwalk コマンドは,ucd-snmp に比べてオプションの書式が厳密になっているので注意。例えばコミュニティー名の前には「-c」をつけなければならない。
原因が分からないので,ログをとってみることにした。snmpd は /etc/init.d/snmpd スクリプトから起動される。デフォルトでは,ログを LOG_DAEMON 経由でとるか,/dev/null に出力するようになっているので(つまりログを採るようになっていないので),テキストファイルに出力するように変更する。/etc/init.d/snmpd を編集し,ログの出力先を /var/log/snmpd.log にする。
snmpd を再起動すると,ログには次のようにメッセージが出力された。
snmpd.conf の104行目と105行目は次のようになっていた。
これは ucd-snmp の設定をそのままコピーした部分である。この記述が違うらしい。MyROGroup は読み込み専用グループ,MyRWGroup は読み込み書き込み可能グループという意味だと思われる。上に書いてあるサンプルを見ると,
となっていて,比べてみるとフィールドの数が1つ足りないことが分かった。それならばと思い,サンプルのコメントをそのまま外してみることにした。しかし,エラーになってしまった。
「『0』というプリフィックスパラメータがいかん,exact か prefix にしろ」と言っている。そこで,ucd-snmp の例にもう1つフィールドを追加することにした。
これで上手くいった。snmpwalk にも応えてくれるようになった。
snmpd を再起動すると,ログが一旦クリアされて新たに出力されるようになっている。つまり,追記されないので古いログは残らないのである。再起動する度にログが消えるのはどうかとおもったが,ログファイルが大きくならないのはいいことだと解釈することにした。ちなみに,どうしても古いログを残しておきたい場合には,syslog 経由で出力する方法をとればよい。
Posted by n at 2005-05-25 23:07 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957