SNMPを使ったMRTGによるネットワーク調査

 Turbolinux Server6.5へのツールのインストール

○SNMPエージェントのインストール

 非測定側のPCに ucd-snmp-4.1.1-6.i386.rpm と操作ツールである ucd-snmp-utils-4.1.1-6.i386.rpm を通常の

#rpm -ivh ucd-snmpxxxxxxxxx

でインストール。

 設定は、 /etc/snmp/snmpd.conf を次のように変更。参考のため私の環境での snmpd.conf を示す。

 起動は、通常のデーモンと同じ /etc/rc.d/init.d/snmpd start である。

 ここで留意が必要なのは、Turbolinux Server6.5の場合、localhost や別のPCから snmpd へのアクセスを可能とするためには、 /etc/hosts.allow に設定が必要のようである。
 つまり、 localhost や別PCからのからのアクセスを可能とするためには、 /etc/hosts.allow ファイルに

ALL : 127.0.0.1
All :192.168.0.1

などと記入する必要がある。どうも snmpd が hosts.allow を参照しているようであり、これがないと /var/log/snmpd.log に

127.0.0.1 REFUSED

と表示される。
 snmpd が動作しているかどうかの確認は、

#snmpwalk 192.168.0.1 public

とした時に、色々なメッセージが出ればOKである。動作していないときは、 Timeout などと表示される。

・参考−Win2000におけるSNMPのインストール
 Win95の場合は、MRTGのホームページからリンクされている Win95snmpzp.exe を実行することでインストールするが、Win2000の場合は、標準で装備されており、「コントロールパネル」の「アプリケーションの追加と削除」−「コンポーネントの追加と削除」−「管理ツール」にSNMPがあるのでこれにチェックを入れる。
 CD−ROMを要求されるので挿入するとインストールが完了する。

○MRTGをインストール

 測定する側つまり関しマネージャー側のPCにMRTGをインストール。
 この場合、画像生成ツールであるgdのバージョンが高いことが必要であるようであるので、gd-1.8.3-7.i386.rpm をRedHatのサイトら持ってくる。
 その他、libpng とかzlibさらにgdのdevelも必要かも知れない(未確認)ので、念のためインストールしておく。  最後にここからmrtg-2.9.17-1.rh7.i386.rpm をもらってきてインストールする。

設定は、httpd のDocumentRootに /home/httpd/html/mrtg というディレクトリーを作成するのと監視対象PCの測定パラメーターをセットする cfg ファイルの作成である。

 cfg ファイルは、作成ツール用意されている。

#/usr/bin/cfgmaker public@192.168.0.100 > /etc/mrtg/mrtg.cfg

で作成される。この作成されたファイルの先頭部分に WorkDir: /home/httpd/html/mrtg と記入する。
 私の環境での設定 pc98nd.cfg をここに示す。

起動は、

#/usr/bin/mrtg /etc/mrtg/mrtg.cfg

 2回ほどlogファイルが無いとかでアラームメッセージが出るが3回目あたりから正常に動作する。
/home/httpd/html/mrtg にファイルが出来ていればOKである。

 これを crontab で5分おきに起動するように設定すれば履歴がとれる。

つまり /etc/crontab に以下を追記する。
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

 ここに出力の例を示す。

 ただ、この例だと説明が英語で見づらい。しかしこれを日本語とする方法がある。
 mrtg.cfg ファイルのワーキングディレクトリーなどを指定している上段部分に

Language: iso2022jp

を記載する。これで各グラフの説明が日本語となる。  また、グラフの最大値は測定データによって変化するが、CPUの使用率などについては最大値を100%に固定するのが見やすい場合がある。
その方法は、 cfg ファイルの各グラフの諸元を指定しているところに

Unscaled[cpu-IBM]: ymwd

を追記する。
 さらに、週、月、年のデータは収集間隔の平均値となっているため、5分毎に収集した最大値が消失している。これを回避するには、次のコマンドを追記する。

WithPeak[cpu-IBM]: ymw

 これら修正を加えた cfg ファイルによる収集データをここに示す。

 最後に、 cfg ファイルに記述された幾つかのTargetは別々のページに表示されるが、これの最初の日毎のグラフだけをまとめるコマンドかある。

#indexmaker /etc/mrtg/mrtg.cfg > /home/httpd/html/mrtg/index.html

である。

○その他特記事項
 Windpws2000インストールPCを非測定対象とする場合、Lanカードの入出力データの測定に関しては、cfgmaker で簡単に設定出来るが、オプション項目であるcpuの稼働率を測定しようとする場合、OIDがLinuxのものとは全然別物であり、 しかも、Linuxの場合と同じようにmrtg.cfgなどのcfgファイルを作りWindows用のOIDを指定しても、Windows2000から帰ってくる文字列の内容が違うのかエラーとなってmrtgが動作しない。

 そこでその対応策として、ターゲットの指定でOIDではなくperlスクリプトとした。

 書き方は、perlファイルの最後にcfgファイルとの受け渡し用に print 文を4個並べることであり、1番目と2番目が表示する二つのデータで他の3,4番目は特に省略しても良いようである。

 Windows2000機のCPU稼働率を測定した時のcfgファイルperlファイルの例を示す。
 この時気がついたのだが、Windows2000の場合、cpuの利用率は5分平均ではなく1分平均のようである。

○TLW7へのmrtgのインストール
 TLW7にmrtgをインストールする場合も、gd等が必要である。しかし、TLW7の場合はgdがインストールされていないので、TLS6.5の場合のように旧バージョンの削除は必要なく、RedHatのFTPサイトからもらってきた gd-1.8.4-4.i386.rpm と gd-devel-1.8.4.-4.i386.rpm をそのままインストールすればよい。

  linpng-devel と zlib-devel をインストールするのばTLS6.5の場合と同じである。TLS6.5と違ったのは freetype-1.3.1-3 がインストールされて無く、mrtgインストール時に libttf.so.2 が無いといって怒られてしまった。freetype-1.3.1-3 と freetype-devel-1.3.1-3 も turbolinux のサイトあるいはCDROMからインストールしておく必要がある。