MRTG (Multi Router Traffic Grapher)

[ 戻る | トップページに戻る ]

概要

MRTG とは、ルータのポートを流れるトラフィックを監視するためのツール。 監視データは HTML 形式で出力され、日、週、月、年単位の 4 つの時間経過グラフ として見ることができる。

URL

http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/ (オフィシャルサイト)
http://www.ayamura.org/mrtg/ (日本のミラーサイト: www)
ftp://ftp.win.ne.jp/pub/network/mrtg/ (日本のミラーサイト: ftp)
http://www.ceres.dti.ne.jp/~riocat/webtools/mrtg/ (日本語ページ)

インストール環境

Plamo Linux 1.4.4 (Kernel 2.2.12 + libc5)

必要なもの

Perl Ver.5.004_4 以降, GD library

参考

Software Design (1999/9)

バージョン

2.8.11

インストール手順

$ tar xvfz mrtg-2.8.11.tar.gz
$ cd mrtg-2.8.11
$ ./configure --with-gd=../gd-1.7.3 --with-z=../zlib-1.1.3 --with-png=../libpng-1.0.5
$ make
LD_RUN_PATH=../libpng-1.0.5:../zlib-1.1.3:../gd-1.7.3 gcc -g -O2 -I../gd-1.7.3 -I../zlib-1.1.3
    -I../libpng-1.0.5 -DGFORM_GD=gdImagePng -Wall -pedantic src/rateup.c -L../gd-1.7.3 -lgd
    -L../zlib-1.1.3 -L../libpng-1.0.5 -lm -lpng -lz -lm -o run/rateup
/usr/bin/perl -0777 -pi -e 's@^#!\s*/\S*perl@#! /usr/bin/perl@' run/cfgmaker run/cfgmaker_ip
    run/indexmaker run/mrtg
/usr/bin/perl -0777 -pi -e 's@\.(png|gif)@.png@g' run/mrtg run/indexmaker*

$ su
# mkdir /usr/local/bin/mrtg                    <--- インストール先は好みで
# cp run/** /usr/local/bin/mrtg
# mkdir /usr/local/apache/htdocs/mrtg          <--- MRTG が生成する HTML ファイル等の格納先
# cp images/* /usr/local/apache/htdocs/mrtg    <--- MRTG が使用するイメージファイル
# exit

ルータの設定。ここでは CISCO 4000-M を例に。
$ telnet xxx.xxx.xxx.xxx                           <--- ルータの IP アドレス (router.foo.co.jp)

Trying xxx.xxx.xxx.xxx...
Connected to router.foo.co.jp.
Escape character is '^]'.


User Access Verification

Password: 
ROUTER>en
Password: 
ROUTER>conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line.  End with CNTL/Z.
ROUTER(config)#snmp-server community public RO     <--- コミュニティ名は public
ROUTER(config)#snmp-server location Japan
ROUTER(config)#snmp-server contact root@foo.co.jp

ROUTER(config)#^Z
ROUTER#write memory
Building configuration...
[OK]
ROUTER#exit
Connection closed by foreign host.

次は mrtg.cfg の作成。ルータに設定した IP アドレスとコミュニティ名を指定して...
$ /usr/local/bin/mrtg/cfgmaker public@xxx.xxx.xxx.xxx > mrtg.cfg
Can't locate BER.pm in @INC (@INC contains: /usr/lib/perl5/5.00502/i586-linux /usr/lib/perl5/5.00502
     /usr/lib/perl5/site_perl/5.005/i586-linux /usr/lib/perl5/site_perl/5.005 .)
     at /usr/local/bin/mrtg/cfgmaker line 13.
BEGIN failed--compilation aborted at /usr/local/bin/mrtg/cfgmaker line 13.

むむ。BER.pm が locate できない? ひょっとしてパスの問題?
$ su
# cd /usr/local/bin/mrtg
# /usr/local/bin/mrtg/cfgmaker public@xxx.xxx.xxx.xxx > mrtg.cfg

おっけー。mrtg.cfg が作成できた。次に、できた mrtg.cfg ファイルに以下の行を 追加する。
# Add a WorkDir: /some/path line to this file
WorkDir: /usr/local/apache/htdocs/mrtg      <--- 追加

では実行。
# ./mrtg mrtg.cfg
Rateup WARNING: .//rateup could not read the primary log file for router.foo.co.jp
Rateup WARNING: .//rateup The backup log file for router.foo.co.jp was invalid as well
Rateup WARNING: .//rateup Can't remove router.foo.co.jp.old updating log file
Rateup WARNING: .//rateup Can't rename router.foo.co.jp.log to router.foo.co.jp.old
                updating log file
Rateup WARNING: .//rateup could not read the primary log file for xxx.xxx.xxx.xxx.2
Rateup WARNING: .//rateup The backup log file for xxx.xxx.xxx.xxx.2 was invalid as well
Rateup WARNING: .//rateup Can't remove xxx.xxx.xxx.xxx.2.old updating log file
Rateup WARNING: .//rateup Can't rename xxx.xxx.xxx.xxx.2.log to xxx.xxx.xxx.xxx.2.old updating log file
Rateup WARNING: .//rateup could not read the primary log file for xxx.xxx.xxx.xxx.3
Rateup WARNING: .//rateup The backup log file for xxx.xxx.xxx.xxx.3 was invalid as well
Rateup WARNING: .//rateup Can't remove xxx.xxx.xxx.xxx.3.old updating log file
Rateup WARNING: .//rateup Can't rename xxx.xxx.xxx.xxx.3.log to xxx.xxx.xxx.xxx.3.old updating log file

警告はログファイルが作成されていないためらしい。2 回目の実行。
# ./mrtg mrtg.cfg
Rateup WARNING: .//rateup Can't remove router.foo.co.jp.old updating log file
Rateup WARNING: .//rateup Can't remove xxx.xxx.xxx.xxx.2.old updating log file
Rateup WARNING: .//rateup Can't remove xxx.xxx.xxx.xxx.3.old updating log file

3 回目の実行。
# ./mrtg mrtg.cfg

おっけー。/usr/local/apache/htdocs/mrtg/ にファイルが出来ているので WWW ブラウザ で確認する。が...んん? *.html が 3 つ (router.foo.co.jp.html, xxx.xxx.xxx.xxx.2.html, xxx.xxx.xxx.xxx.3.html) もある。どれを見ればいいのだ?
あ、分かった。このルータには Ethernet x 2, Serial (ISDN) x 1 の 3 ポートが up しているのだ。それぞれに対応しているのね。この場合は、router.foo.co.jp.html が Ethernet ポート 0 (MRTG を実行したホストと同じセグメントに接続されている), xxx.xxx.xxx.xxx.2.html がもうひとつの Ethernet ポート 1, xxx.xxx.xxx.xxx.3.html が Serial (ISDN) となっていた。

最後に、cron で一定時間毎に更新するように設定して、おしまい。
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/bin/mrtg/mrtg /usr/local/bin/mrtg/mrtg.cfg

[ 戻る | トップページに戻る ]