2024/02/13 22:13:39

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
サイト内検索