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