今回は、UNIXサーバを監視対象機器するために必要な手順として、Net-SNMPを導入する方法を解説します。
UNIXでSNMPを使えるようにする
MRTGを学習するにあたり、監視する機器がなければ始まりません。身近なルータとしては、家庭用のブロードバンドルータがあります。しかし最近の安価なルータにはSNMPが実装されていないため、監視対象になりません。そこで、UNIXサーバにSNMPを実装して、監視対象機器にしたてることにします。
Net-SNMPを使う
監視対象機器には、FreeBSD7.1Rをインストールしたサーバを前提に話をすすめます。このサーバは、監視用のサーバとは別のものにしたほうがわかりやすいですが、MRTGをインストールしたサーバでもかまいません。
さて、UNIX上でSNMPを使えるようにするには、Net-SNMPというフリーソフトウェアを使うのが広く知られています。Net-SNMPにはsnmpwalkなどの周辺コマンドが充実しているため、SNMPについての学習を進めやすいという長所もあります。以下に、そのNet-SNMPのインストール手順を示します。
Net-SNMPをインストールする
以下のサイトから、ソースファイル(tarball)をダウンロードします。
インストール手順は以下の通りです。
これで以下のパスにインストールされます。
- デーモン:/usr/local/sbin
- ユーティリティ:/usr/local/bin
- その他設定ファイルなど:/usr/local/share/snmp
snmpd.confの設定
続いて、SNMPのデーモンであるsnmpdを実行に必要なsnmpd.confというパラメータファイルを用意します。tarballを展開したパスに、EXAMPLE.confというファイルがあります。このファイルをsnmpd.confという名称に変更して、以下のパスにコピーします。
しかし、デフォルトのEXAMPLE.confは、SNMPエージェントとして値を返さないようになっていますので、先ほどコピーした設定ファイル“snmpd.conf”を修正します。
ここでは、コミュニティ名(COMMUNITY)とネットワークアドレス(NETWORK/24)を変更しました。デフォルトで記述されている「COMMUNITY」を、ここでは「HIMITSU」に書き換えました。実際には、もっとわかりづらい名称に書き換えてください。
SNMPの実行
最後にSNMPエージェントのデーモンであるsnmpdを実行します。
これでデーモンが起動します。なお、デーモンの管理にdaemontoolsを使う場合には、snmpd -f としてsnmpdをフォアグラウンドで実行させてください。
snmpdの状態を見ると、以下のようになります。
もし、snmpdの稼働中にコミュニティ名の変更などを行った場合には、snmpdにsnmpd.confを再読み込ませなければなりません。このときはHUPのシグナルをsnmpdに送ります。上記の場合は、プロセス番号が8306ですから、以下のようになります。
snmpd.confを見てみよう
先ほど作成したsnmpd.confの中を見てみると、コメント文の中にたくさんの例が入っているのがわかります。注目するのは、snmpwalkというコマンドを使った使用例です。snmpwalkを使うと、SNMPエージェントに対して、いろんな問い合わせができます。
たとえば、
と入力すると、そのサーバ情報が表示されるはずですので、試してみてください。サーバ情報が表示されれば、正しくsnmpdが動いているということにもなります。
さて、このsnmpd.confに記載されている例を見ていくと、プロセスの数を返したり、CPUのロードアベレージを取得できることもわかります。これは同時にMRTGでこれらのデータも取得できるということですから、MRTGはいろんなことを監視できるソフトウェアであるが感じられると思います。
次回は
MRTGに組み込まれているコマンドの1つにcfgmakerがありますが、このcfgmakerを使って、MRTGのパラメータファイルを作ります。そしていよいよMRTGを実行してみます。