MRTG
the Multi Router Traffic Grapher
MRTG とは
グラフツールです。シンプルな設定で、2値のグラフを描画して、ブラウザベースで閲覧できる HTML ページを生成することができます。
サーバの監視目的で SNMP とともに語られることが多いですが、ここでは純粋に MRTG の機能に的を絞って解説します。
MRTG インストール
CentOS なら yum で一撃インストール可能です。
$ sudo yum install mrtg
インストール先:
- /usr/bin/mrtg
- /usr/bin/indexmaker
- /etc/mrtg/mrtg.cfg
/usr/bin/mrtg と /etc/mrtg/mrtg.cfg
/usr/bin/mrtg が各種グラフ画像と、HTML ページを生成するコマンドです。
その際に使用される設定を、/etc/mrtg/mrtg.cfg に記述します。
/etc/mrtg/mrtg.cfg
### Global Config Options
WorkDir: /path/to/mrtg/publish/dir
Title[^]: Foo's MRTG
Options[^]: noinfo, growright
### graph settings
# traffic
Target[traffic]: `cat /path/to/mrtg/data/traffic`
YLegend[traffic]: Traffic
LegendI[traffic]: RX(in)
LegendO[traffic]: TX(out)
Title[traffic]: Network Traffic
PageTop[traffic]: Network Traffic
以下のように実行します
$ /usr/bin/mrtg /etc/mrtg/mrtg.cfg
最初の実行と、2回目は、無事に実行できてもいくらかの warn が出力されます。
これは、MRTG が過去2回分のログを利用して動作するためです。
3回目の実行以降は、無事動作すれば何も出力されなくなります。
WorkDir に設定した /path/to/mrtg/publish/dir に画像や HTML が生成されていれば動作しています。
設定ファイルの文法
設定ファイルの書き方は、以下のようになります。
設定[識別子]: 設定内容
例えば、以下のようです。
Title[^]: Foo's MRTG
Options[_]: noinfo
Target[traffic]: `cat /path/to/mrtg/data/traffic`
識別子の意味
全てのグラフに対して設定内容を指定するには識別子を [_]
アンダーバーにします。
この場合、各設定よりも、[_]
の設定が優先されます
デフォルト設定を指定するには、識別子に [^]
を指定します。
この設定は、個別の設定で上書いすることができます。
それぞれの設定内容を優先し、全体設定も追加で有効にするには識別子に [$]
を指定します。
識別子が指定されると、その文字列でグラフなどファイル一式が出力されます。
設定項目
基本設定
Target | 統計データの対象 |
MaxBytes | データがとりうる最大値 |
Title | Webページを出力した時の<TITLE>タグの内容 |
PageTop | グラフの前に表示するHTMLテキスト |
Options | グラフの描画オプション |
グラフの設定
AbsMax | グラフの絶対的な最大値を指定する。このオプションを指定しない場合,取得したデータの値に応じて縦軸が適時拡大縮小される。 |
UnScaled | データに合わせて拡大縮小しない。 |
WithPeak | 平均値ではなく,ピーク値をとる。 |
Suppress | 日グラフ(d),週グラフ(w),月グラフ(m),年グラフ(y)どの種類のグラフを作成するのかを設定する。Suppress で指定したグラフが作成されない。例えば、Suppress[_] my とすると、月、年グラフが作成されない。 |
MaxBytes1 | データ1の最大値を設定 |
MaxBytes2 | データ2の最大値を設定 |
XSize | 作成するグラフの画像ファイルの横幅のピクセル数を指定する。20~600まで指定できる。デフォルトは400 |
YSize | 作成するグラフの画像ファイルの縦幅のピクセル数を指定する。20以上の値を指定できる。デフォルトは100 |
XZoom | 横軸の拡大縮小率を指定 |
YZoom | 縦軸の拡大縮小率を指定 |
XScale | 横軸の拡大縮小率を指定する。画像ファイルのサイズは変更されない。 |
YScale | 縦軸の拡大縮小率を指定する。画像ファイルのサイズは変更されない。 |
YTics | 1つのグラフに4本以上の線を描画するときに設定 |
YTicsFactor | Y軸のデータにここで指定した値を乗算する |
Factor | 取得したデータにここで指定した値を乗算する |
Step | データの描画間隔を指定する。デフォルトは300秒 |
Colours | グラフの描画色を設定 |
YLegend | Y軸の軸の名前(ラベル)を指定 |
ShortLegend | Y軸の軸の単位(ラベル)を指定 |
Legend1 | データ1(受信データ)のグラフ名(ラベル)を指定 |
Legend2 | データ2(送信データ)のグラフ名(ラベル)を指定 |
Legend3 | データ1(受信データ)の百分率グラフ名(ラベル)を指定 |
Legend4 | データ2(送信データ)の百分率グラフ名(ラベル)を指定 |
LegendI | データ1(受信データ)のラベルを指定 |
LegendO | データ2(送信データ)のラベルを指定 |
kilo | キロの単位を切り替える。デフォルトは1000 |
kMG | k(キロ),M(メガ),T(テラ)などの単位を変更 |
Timezone | タイムゾーンを設定 |
Weekformat | 週の表示形式を変更する |
SetEnv | 外部プログラムを呼び出すときに設定する環境変数を指定 |
HTML出力設定
PageFoot | Webページの一番下に表示されるHTMLテキストを指定 |
AddHead | <HEAD>タグと<BODY>タグのあいだに指定したいHTMLテキストを指定 |
BodyTag | <BODY>タグを変更する場合に指定 |
Background | 背景色を変更 |
Extension | 作成されるファイルの拡張子を変更 |
Options で指定できる内容(Options[_]: XXXXX)
growright | グラフの横軸(時間)を左から右方向にする |
bits | 値を8倍し、ビットとして扱う |
perminute | 分単位のグラフを表示するときに値を60倍する |
perhour | 時間単位のグラフを表示するときに値を3600倍する |
noinfo | 出力するWebページにデバイス名や時刻情報を出力しない |
nopercent | パーセント表示しない |
transparent | グラフ画像の背景を透明にする |
integer | 値を整数化する |
dorelpercent | 百分率にしたグラフを重ねて表示する |
gauge | データの値の差をとらない |
absolute | データの値を時間で割らない |
unknaszero | 取得できなかった部分のデータを0として扱う |
withzeroes | 0であるデータを無視しない |
index ページの作成
いくつかのグラフを生成すると、それらを一覧できて、個別の HTML にリンクする index ページが欲しくなります。
/usr/bin/indexmaker コマンドでそれが可能です。
こちらに、man の日本語訳があります。indexmaker
SEE ALSO
- $ man mrtg
- $ man indexmaker