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からインストールしておく必要がある。