2002/2/14
バージョン MRTG 2.9.17
OS Red Hat Linux 7.2 (Kernel 2.4.7-10)
ホームページ https://oss.oetiker.ch/mrtg/
ホームページ(日本語) http://www.mrtg.jp/doc/

MRTGはネットワークの状態などをグラフ化するSNMPマネージャです。これにより、ネットワークの状態が視覚的に把握できるようになります。

SNMPエージェントが監視対象となります。SNMP対応のネットワーク機器、またはSNMPエージェントが稼動しているマシンが必要です。

必要な周辺ソフトのインストール

MRTGにはPerl、gd、zlib、libpngが必要です。Perlはほとんどのシステムに入っていると思いますが、他は入っていない場合もありますので、確認してください。Perlのインストールはこちらを参照して頂くとして、他のソフトのインストール手順は次の通りです。(この順序でインストールしてください)

zlib

ダウンロード:ftp://sunsite.cnlab-switch.ch/mirror/infozip/zlib/

$ tar xvfz zlib-1.1.3.tar.gz

$ cd zlib-1.1.3
$ ./configure

$ make

$ make test

$ su

# make install

# exit

libpng

ダウンロード:http://www.libpng.org/pub/png/src/

$ tar xvfz libpng-1.2.1.tar.gz

$ cd libpng-1.2.1
$ cp scripts/makefile.linux makefile
$ make test

$ su

# make install

# exit

GD

ダウンロード:http://www.boutell.com/gd/

$ tar xvfz gd-1.8.4.tar.gz
$ cd gd-1.8.4

筆者の環境ではライブラリが不足していて標準のMakefileのままではコンパイルできなかったので、調整してオプションを最低限にしました。

CFLAGS=-O -DHAVE_LIBPNG
INCLUDEDIRS=-I. -I/usr/local/include
LIBDIRS=-L. -L/usr/local/lib

続いてmake、make installです。

$ make

$ su

# make install

# exit

MRTGのインストール

MRTGのインストール自体は簡単で、普通のconfigure、make、make installの手順です。

$ tar xvfz mrtg-2.9.17.tar.gz

$ cd mrtg-2.9.17
$ ./configure

$ make

$ su

# make install

MRTGの設定

MRTGが生成するHTMLファイルなどが置かれるディレクトリを作ります。

# cd /usr/local/mrtg-2
# mkdir data

次に設定ファイルを作ります。これにはcfgmakerというスクリプトを使います。引数として「コミュニティ名@SNMPエージェントのIPアドレス」を指定します。すると標準出力に設定が出力されるので、リダイレクトして設定ファイルを作ります。

# bin/cfgmaker [email protected] > data/mrtg.cfg

SNMPエージェントが複数ある場合は、>>でリダイレクトします。

# bin/cfgmaker [email protected] >> data/mrtg.cfg

このようにして作成した設定ファイルは雛形なので、設定を調整する必要があります。まず必ず設定しなくてはならないのが、WorkDirです。data/mrtg.cfgに次のような行を加えてください。

WorkDir: /usr/local/mrtg-2/data

MRTGの起動

設定ファイルを引数に指定し、MRTGを起動します。これでレポートHTMLファイルが生成されます。

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/data/mrtg.cfg

さらに進んだ設定

ネットワークのトラフィックだけでなく、CPU負荷率、メモリ使用量、ディスク使用量についてもグラフ化してみます。

設定ファイルの内容については、SNMPの知識が要求され複雑なので、ここでは解説を割愛し設定ファイルのサンプルを掲載しておきます。(SoftwareDesign 2002年1月号を参考にしました)

traffic.cfg ネットワーク転送量の監視
cpu.cfg CPU負荷率の監視
memory.cfg メモリ使用量の監視
disk.cfg ディスク使用率の監視

traffic.cfgのMaxBytesには環境に合わせて設定します。例えば10Mbpsであればバイトに変換して、1250000バイトになります。

memory.cfgのMaxBytes1、MaxBytes2はそれぞれ実メモリの最大値、スワップの最大値を設定します。これはsnmpgetを使って次のように取得します。

$ snmpget localhost private enterprises.ucdavis.memory.memTotalReal.0
$ snmpget localhost private enterprises.ucdavis.memory.memTotalSwap.0

このサンプル設定ファイルでは、MRTGをデーモンとして起動するように設定されています。正しく配置したら、MRTGを起動します。

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/data/traffic.cfg

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/data/cpu.cfg

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/data/memory.cfg

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/data/disk.cfg

HTMLのインデックスを生成

このようにして作成されるレポートは、監視対象ごとにHTMLファイルが生成されるため、HTMLファイルへのアクセスが面倒です。そこで、各レポートへアクセスするためのインデックスページを生成することができます。

インデックスページを生成するには、indexmakerというスクリプトを使用します。

# bin/indexmaker data/traffic.cfg > data/traffic.html
# bin/indexmaker data/cpu.cfg > data/cpu.html
# bin/indexmaker data/memory.cfg > data/memory.html
# bin/indexmaker data/disk.cfg > data/disk.html