名称

reference - MRTG 2.9.22設定リファレンス


概要

MRTGの実行時のふるまいは、設定ファイルによって支配されています。 普通の設定ファイルはcfgmakerを使って生成することができます (cfgmakerマニュアルをチェックしてください)。しかし、もっと複雑な設定を するには、手でチューニングする必要があります。

このドキュメントではMRTGの全てのオプションについて解説します。


文法

MRTGの設定ファイルの書き方は、以下のようにいくつかの簡単なルールに則っています。


グローバルキーワード

WorkDir

WorkDirはログファイルとWebページが生成される場所を指定します。

例:

  WorkDir: /usr/tardis/pub/www/stats/mrtg


オプショナルなグローバルキーワード

HtmlDir

HtmlDirは、html (もしくはshtml、これについては後で触れますが) ファイル がどこにあるかを指定します。

注: WorkDirはHtmlDirやImageDir、LogDirの設定を上書きします。

例:

  Htmldir: /www/mrtg/

ImageDir

ImageDirは画像ファイルがどこにあるかを指定します。このディレクトリは htmlディレクトリの下にある必要があります。

例:

  Imagedir: /www/mrtg/images

LogDir

LogDirはログがどこに蓄積されるかを指定します。これはHtmlDirディレクティブ で指定したディレクトリ以下にある必要はありません。

例:

  Logdir: /www/mrtg/logs

Forks (UNIXのみ)

fork可能なシステム(例えばUNIX)では、MRTGはデータをSNMP経由で取ってくる 時に、複数のインスタンスにforkすることができます。

遅延が大きい時や非常にたくさんのデバイスがあるといった時にはこの機能に よって、かなり速くなるでしょう。となりの部屋に置いてあるスイッチ1つに クエリを送るような場合には速くなったりすることはありません。

私が知っている限りではNTはforkすることができませんのでこのオプションは NT上では使えません。

例:

  Forks: 4

Refresh

ブラウザ(Netscape)に、何秒後にリロードすればいいかを指示します。 これが定義されていない場合、デフォルトは300秒(5分)です。

例:

  Refresh: 600

Interval

どれくらい頻繁にMRTGを呼び出すか。デフォルトは5分です。 頻度を下げる場合、ここで指定します。これにより以下の 二つのことが行われます。

この例では、MRTGに10分おきに呼び出すと指示しています。 もし5分毎に呼び出すならこの行はコメントアウトすれば いいでしょう。

例:

  Interval: 10

WriteExpires

このスイッチを使うことで、MRTGはCERNやApacheサーバ用に HTMLやGIFファイルのexpirationタグを含む.metaファイルを生成します。 *.metaファイルは他のファイルと同じディレクトリに生成されますので、 利用するためにはapache.confや.htaccessといったファイルで 「MetaDir .」や「MetaFile on」としなければなりません。

注: Apache 1.2もしくはそれ以降のものを使っているなら、同じ効果を得るために mod_expireを利用することができます。。。htaccess.txtというファイルを参照してください。

例:

  WriteExpires: Yes

NoMib2

通常、SNMPデバイスに対して「sysUptime」、「sysName」といったプロパティ について問い合わせますが、これらを持っていないものもあります。 MRTGがプロパティがないと文句を言うのを避けたい場合、NoMib2オプションを 指定してください。

基本的なMIB2属性を実装していないエージェントの例にはComputer Associatesの Unicenter TNG Agentsがあります。CAは、システム管理を補うために、自身のエージェント に加えてベースとなるOSのSNMPエージョントにも依存します。

例:

  NoMib2: Yes

SingleRequest

複数のSNMP変数を一つのリクエストでまとめて問い合わせることができない ようなSNMPの実装があります。設定ファイルでこのディレクティブを利用す れば、MRTGはリクエスト毎に一つの変数について問い合わせるようになります。

例:

  SingleRequest: Yes

SnmpOptions

ターゲット毎のタイムアウトのオプションは別にして、snmpgetプロセスの振舞いを もっと深いところまで設定することも可能です。SnmpOptionsはオプションのハッシュ を受けつけます。今のところ以下のオプションをサポートしています。

  timeout                  => $default_timeout,
  retries                  => $default_retries,
  backoff                  => $default_backoff,
  default_max_repetitions   => $max_repetitions,
  lenient_source_port_matching => 0,
  lenient_source_address_matching => 1

オプションの後にくる値は現在のデフォルト値を示しています。 これらの設定はターゲット毎のタイムアウト設定を「上書きする」ことに 注意してください。

例:

SnmpOptions: retries => 2, only_ip_address_matching => 0

AS/400 SNMPは

  SnmpOptions: lenient_source_port_matching => 1

と設定しない限り、MRTGで監視することができないようです。

IconDir

MRTGのアイコンをワーキングディレクトリ(もしくはImageDir)とは別の 場所に集めておきたい場合、IconDir変数を使ってアイコンディレクトリ のURIを指定してください。

例:

  IconDir: /mrtgicons/

LoadMIBs

指定されたMIBファイルをロードし、そのOIDをシンボル名として利用可能にします。 さらに効率を上げるため、MIBのキャッシュはWorkDirで保持されています。

例:

  LoadMIBs: /dept/net/mibs/netapp.mib,/usr/local/lib/ft100m.mib

Language

出力フォーマットを選択した言語に切り換えます(どの言語がサポートされているかは translateディレクトリをチェックしてください。このディレクトリには新しい 翻訳をどのように作ればいいかの指示もあります)。

現在、次の言語がサポートされています:

big5 brazilian bulgarian catalan chinese croatian czech danish dutch eucjp french galician gb gb2312 german greek hungarian icelandic indonesia iso2022jp italian korean lithuanian malay norwegian polish portuguese romanian russian russian1251 serbian slovak slovenian spanish swedish turkish ukrainian

例:

  Language: danish

LogFormat

mrtg.cfgファイルでLogFormatを「rrdtool」に設定すると、 RRDtoolモードが有効になります。RRDtoolモードでは、MRTGはロギングをrrdtool に任せます。グラフやHTMLは14all.cgiにより、その場で生成されます。14all.cgiは contribのセクションで簡単なREADMEとともにあります。この機能は Rainer Bawidamann <bawidama@users.sourceforge.net>によって提供されました。 さらなる情報は彼のWebサイトhttp://www.wh-hms.uni-ulm.de/~widi/14all/ をチェックしてください。

例:

  LogFormat: rrdtool

LibAdd

もしRRDtoolモードなのにrrdtool Perl モジュール(RRDs.pm)がperlが発見できる ところにインストールされていない場合、LibAddを使って正しいパスを与えます。

例:

  LibAdd: /usr/local/rrdtool/lib/perl/

PathAdd

rrdtoolの実行可能ファイルが通常のPATH内に見つからない場合、 このパラメータを使って適切なパスを加えます。

例:

  PathAdd: /usr/local/rrdtool/bin/

RunAsDaemon

RunAsDaemonキーワードはデーモンモードでの運用を有効にします。 デーモンモードの目的は、MRTGを一度起動しておけばネイティブモードのように cronで定期的に起動する必要がない、ということです。これにより、設定ファイル のロードとパースが一回で済み計算機資源を節約できます。

デーモンモードでは、MRTG自身は測定間隔のタイミングにのみ責任があります。 従って、Intervalキーワードを適切な値に設定することが重要です。

デーモンモードを利用する時にはMRTGはcronで定期的に起動してはならないことに 注意してください。そうしないとそれぞれのプロセスが永遠に動くことになってし まいます。代わりに、MRTGをコマンドプロンプトもしくはシステムの起動スクリプト から起動するようにします。

MRTGを特定のユーザ/グループの権限で動かしたい場合(MRTGをrootで起動するのは お勧めできません)、コマンドラインの--user=ユーザ名--group=グループ名の オプションを使います。

  mrtg --user=mrtg_user --group=mrtg_group mrtg.cfg

デーモンモードでは、設定ファイルを変更した場合には、それを反映するために プロセスの再起動が必要なことにも注意してください。

UNIXでは、DaemonスイッチによりMRTGは設定ファイルをチェックした後、forkして バックグラウンドに行きます。Windows NTではMRTGのプロセスがコンソールから 切り離されるがNT/2000のシェルはその子供を待っているため、プログラムを 起動する時に特別な起動シーケンスを利用しなければなりません。

  start /b perl mrtg mrtg.cfg

コマンドラインからMRTGを起動する時、パス情報も加えなければならないかもしれません。

例:

  RunAsDaemon:Yes
  Interval:5

これの設定により、MRTGはデーモンとして動き、5分おきにデータを収集します。


ターゲット毎の設定

監視するターゲットはそれぞれユニークな名前で同定できなければいけません。 この名前はターゲット毎のそれぞれのパラメータに付加されます。この名前はまた、 生成されるWebページ、ログファイルそしてイメージの名前にも使われます。

Target

TargetキーワードによりMRTGに何を監視するのかを教えます。 Targetキーワードは広範なフォーマットの引数を取ります。

基本
最も基本的なフォーマットは「port:community@router」というものです。 これはホスト「router」(DNS名もしくはIPアドレス)上の「port」インタフェース についてのトラフィック図を生成し、「community」というコミュニティ(SNMPのパスワード) を問い合わせ時に使います。

例:

  Target[ezwf]: 2:public@wellfleet-fddi.ethz.ch

もしコミュニティ名に「@」や「 」が含まれているなら、これらの 文字は「\」でエスケープしなければなりません。

  Target[bla]: 2:stu\ pi\@d@router
SNMPv2c
もし速いルータを持っているなら、ifHC*カウンタを突つきたいかもしれません。 この機能はSNMPv2cへスイッチすることによって利用可能になります。 残念なことに、全てのデバイスがSNMPv2cをサポートしているわけではありません。 もしこれが動くなら、5分間の問い合わせインターバル中にカウンタがラップさ れるのを防ぐことができます。通常の32ビットではなく64ビットを使うことができ ます。

例:

  Target[ezwf]: 2:public@router1:::::2
反転
時にリンクの反対側にいる場合、MRTGには入力トラフィックを 出力として、またその逆を報告して欲しいことがあります。 これは「Target」の記述の最初に「-」サインを付けることでできます。 入力と出力のトラフィックレートが反転するのです。

例:

  Target[ezci]: -1:public@ezci-ether.ethz.ch
OIDの明示
また、「OID_1&OID_2:community@router」という書き方を使うことによって クエリを送るOID明確に定義することができます。次の例ではインタフェース1 における入力と出力のエラーカウントを引き出します。MRTGは二つの変数を 図示しますので、温度と湿度や入力エラーと出力エラーのように二つのOIDを 指定する必要があります。

例:

  Target[ezwf]: 1.3.6.1.2.1.2.2.1.14.1&1.3.6.1.2.1.2.2.1.20.1:public@myrouter
MIB変数
MRTGはSNMPの変数名の数を知っています。わかっている名前については mibhelp.txtを参照してください。一つの例はifInErrorsとifOutErrorsです。 これは、上のことを以下のように指定できるという意味です。

例:

  Target[ezwf]: ifInErrors.1&ifOutErrors.1:public@myrouter
IPによるインタフェース
新しいインタフェースが付いたり取り除かれたりした時のように、SNMPインタフェースの インデックスは時々変わり得ます。これにより、設定ファイル中の全ての Targetエントリが間違った状態になり、MRTGのグラフもおかしくなります。 MRTGはターゲットの定義においてifindexの代わりにIPアドレスを使うことを サポートしています。そうすることによってMRTGはSNMPデバイスにクエリを送り、 IPアドレスと現在のifindexをマップしようとするのです。どんなタイプのターゲット でも、OIDと分離文字の「/」のあとにインタフェースのIPアドレスを加えることが できます。

特に、二つの異なるOIDそしてもしくは「&」によって分けられたインタフェース を図示する時などは、与えられたIPアドレスが同じターゲットのルータで使われて いることを確認してください。

--ifref=ipオプションによりcfgmakerにそのようなリファレンスを 作らせることができます。

例:

  Target[ezwf]: /1.2.3.4:public@wellfleet-fddi.ethz.ch
  Target[ezci]: -/1.2.3.4:public@ezci-ether.ethz.ch
  Target[ezwf]: 
1.3.6.1.2.1.2.2.1.14/1.2.3.4&1.3.6.1.2.1.2.2.1.14/1.2.3.4:public@myrouter
  Target[ezwf]: ifInErrors/1.2.3.4&ifOutErrors/1.2.3.4:public@myrouter
インタフェース記述
もしIPアドレスを使うことができないなら、インタフェースの名前を 使うことができます。これは、利用するプレフィクスが「/」の代わ りに「\」というだけで、IPアドレスのアプローチに似ています。

そのようなリファレンスはcfgmakerに--ifref=descrオプションを付ける ことで生成可能です。

例:

  Target[ezwf]: \My-Interface2:public@wellfleet-fddi.ethz.ch
  Target[ezci]: -\My-Interface2:public@ezci-ether.ethz.ch
  Target[ezwf]: 
1.3.6.1.2.1.2.2.1.14\My-Interface2&1.3.6.1.2.1.2.2.1.14\My-Interface3:public@myrouter
  Target[ezwf]: 
ifInErrors\My-Interface2&ifOutErrors\My-Interface3:public@myrouter

もし記述に「&」、「:」、「@」、「 」といった文字が含まれているなら、 それらを使うことはできますが、次のようにバックスラッシュでエスケープ してください。

  Target[ezwf]: \fun\: \ ney\&ddd:public@hello.router
インタフェース名
スイッチのインタフェースを参照するための唯一の実際的な方法です。

cfgmakerを--ifref=nameオプションを付けて起動すればそのようなリファレンス が生成されます。

例:

  Target[ezwf]: #2/11:public@wellfleet-fddi.ethz.ch
  Target[ezci]: -#2/11:public@ezci-ether.ethz.ch
  Target[ezwf]: 
1.3.6.1.2.1.2.2.1.14#3/7&1.3.6.1.2.1.2.2.1.14#3/7:public@myrouter
  Target[ezwf]: ifInErrors#3/7&ifOutErrors#3/7:public@myrouter

もし記述に「&」、「:」、「@」、「 」といった文字が含まれているなら、 それらを使うことはできますが、次のようにバックスラッシュでエスケープ してください。

  Target[ezwf]: #\: \ fun:public@hello.router

#は、それがその行の最初の非空白文字であった場合にはコメントであると解釈されるので 注意してください。

Ethernetアドレス別インタフェース
SNMPインタフェースインデックスが変わるとき、「ハードアドレス」、 SNMP変数では「ifPhysAddress」にあたる「物理アドレス」でインター フェースを特定することができます。MRTGは内部的に*.cfgファイルにある 物理アドレスと現在のインデックスを照合し、残りのセッションではすべて そのインデックスを使用します。

OIDと区切り文字「!」(IPアドレスオプションと同じ) の後に 物理アドレスを追記することによって、物理アドレスをあらゆる タイプのTarget定義に使用することができます。物理アドレスは 「0a-0-f1-5-23-18」(括弧は省略すること) のように「-」で区切って 指定します。ある種のルータはすべてのインタフェースに同じハードウェア Ethernetアドレスを使用するため 個別に認識することができません。MRTGはそういった問題を 察知し、警告を出します。

--ifref=ethというオプションを使用してcfgmakerにハードウェア アドレスを参照する設定ファイルを生成させることができます。

例:

 Target[ezwf]: !0a-0b-0c-0d:public@wellfleet-fddi.ethz.ch
 Target[ezci]: -!0-f-bb-05-71-22:public@ezci-ether.ethz.ch
 Target[ezwf]: 1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51&!0a-00-10-23-44-51:public@myrouter
 Target[ezwf]: ifInErrors!0a-00-10-23-44-51&ifOutErrors!0a-00-10-23-44-51:public@myrouter
種類別インタフェース
中には監視されることに抵抗する機器が存在するようで、 そのインタフェースはifNameもifDescrもifIndexが固定され ているとは考えないようです。コンスタントにマッピングを 成功させる唯一の方法は、インタフェースの種類を参照 することです。そのインタフェースは、監視しようとして いる機器でひとつしかないものだからです。

--ifref=typeオプションを使用して、cfgmakerにこのような参照 を生成させることができます。

例:

 Target[ezwf]: %13:public@wellfleet-fddi.ethz.ch
 Target[ezci]: -%13:public@ezci-ether.ethz.ch
 Target[ezwf]: 1.3.6.1.2.1.2.2.1.14%13&1.3.6.1.2.1.2.2.1.14%14:public@myrouter
 Target[ezwf]: ifInErrors%13&ifOutErrors%14:public@myrouter
 
拡張ホスト名の文法
``community@router''が使用される箇所では、コロン区切りの 接尾辞をつけることによってSNMP通信用のパラメータを追記する ことができます。

 community@router[:[port][:[timeout][:[retries][:[backoff][:version]]]]]

各パラメータの意味は以下の通り:

port
SNMPエージェントが使用するUDPポート(デフォルト: 161)
timeout
SNMPクエリの最初のタイムアウトを秒で示したもの (デフォルト: 2.0)
retries
タイムアウトしたリクエストに関して再試行する回数 (デフォルト: 5)
backoff
再試行する度にタイムアウトに掛けられる数値 (デフォルト: 1.0)
version
SNMPのバージョン。高速のルータを使用している場合には'2'にした ほうがいいでしょう。MRTGが64bitカウンタでポーリングを行うように なり、過剰なカウンタラッピングを阻止することができます。ただし全ての ルータでサポートされている訳ではありません。

例:

 3:public@router1:::::2

デフォルトと変わらない値は省略することが可能です。後に続くコロンも 省略することができます。

例:

  Target[ezci]: 1:public@ezci-ether.ethz.ch:9161::4

これはUDPポート9161をリッスンしているSNMPエージェントが 理解しているezci-ether.ethz.ch上のインタフェース、 ifIndex 1の入出力オクテットカウンタを参照します。 デフォルトのタイムアウト (2.0秒) が使用されますが、 リトライ回数は4に設定されています。backoffの値はデフォルトです。

外部の監視スクリプト
SNMPを通してデータを提供しないモノを監視したい 場合には、情報を収集する外部プログラムを使用する ことができます。

外部コマンドは4行の出力を返す必要があります:

  1. 行目

    最初の値の現在の状況。通常は「入力バイトのカウント」

  2. 行目

    2番目の値の現在の状況。通常は「出力バイトのカウント」

  3. 行目

    監視対象の稼働時間を示すストリング (人間が読めるフォーマットで)。

  4. 行目

    監視対象の名前を示すストリング

スクリプトが返す値によっては、Optionsキーワードに 'gauge'または'absolute'を使用する必要があります。

例:

 Target[ezwf]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0`

コマンドを囲むにはアポストロフィ (') ではなくバックティック (`) を使用するところを注意してください。

もしコマンド名にバックティックを使用したい場合には、 バックスラッシュでエスケープすることができます......

複数のターゲットの文法
  いくつかの文には数学的な式を用いることが可能です。
  ISDNのふたつのBチャンネルや、より太い帯域を確保するためにひとつに
  束ねられた複数のT1回線をまとめたりするのに使います。

例:

 Target[ezwf]: 2:public@wellfleetA + 1:public@wellfleetA
              * 4:public@ciscoF

MaxBytes

監視されている2つの値が到達できる最大値。ルータの トラフィックを監視している場合、通常このポートが転送 可能なバイト/秒で指定します。

もしMaxBytesより高い数値が返された場合は無視されます。 詳細についてはAbsMaxセクションも読んでください。 MaxBytesは スケールされてないグラフのY軸の幅を算出 するのにも使用されます (Unscaledセクションを参照のこと)。

たいていの回線レートはビット/秒であることから、バイト/秒を 求めるにはその最大帯域幅(ビット)を8で割る必要があります。 これはスケールされないグラフが正確な情報を表示するのに 非常に重要なことです。それぞれT1 = 193000, 56K = 7000, Ethernet = 1250000 になります。MaxBytesの値は、ルータから有効なレスポンスが 返ってきたのかMRTGが判断するのに使用されます。

もし2つの監視対象の値に別々のMaxBytesの値を設定 したい場合には、MaxBytesの代わりにMaxBytes1とMaxBytes2を 使用する事が出来ます。

例:

 MaxBytes[ezwf]: 1250000

Title

グラフ表示用に生成されるHTMLページのタイトル。

例:

 Title[ezwf]: 私たちの素晴らしい会社のためのトラフィック解析


オプショナルなターゲット毎のキーワード

PageTop

生成されるHTMLページのトップに追加するもの。最初の欄が 空白になっている複数の行で構成する事が出来ます。

全ての行はHTMLページ内で一行にまとめられてしまうこと に注意してください。生成されるHTML内で改行して欲しい 場合には「\n」を使用してください。

例:

RouterUptime

帯域使用率を複数のインタフェースから算出した場合、 ルータの稼働時間と名前がWebページに表示されない場合があります。

もしこれらのインタフェースが同一のルータ上にあり、 稼働時間も名前も表示させたい場合には、RouterUptime キーワードでそのコミュニティ名とアドレスを指定し直す 必要があります。

例:

 Target[kacisco.comp.edu]: 1:public@194.64.66.250 + 2:public@194.64.66.250
 RouterUptime[kacisco.comp.edu]: public@194.64.66.250

MaxBytes1

MaxBytesと同じ、1つ目の値に適用。

MaxBytes2

MaxBytesと同じ、2つ目の値に適用。

PageFoot

生成されるHTMLページの下部に追加されるもの。最初の欄が 空白になっている複数の行で構成する事が出来ます。

全ての行はHTMLページ内で一行にまとめられてしまうこと に注意してください。生成されるHTML内で改行して欲しい 場合には「\n」を使用してください。

</BODY>タグの直前に追加されます。

例:

 PageFoot[ezwf]: このページに関する質問は、
  <A HREF="mailto:peter@x.yz";>Peter</A>までお寄せください

AddHead

PageTopヘッダのように使用します。内容は</TITLE>と </HEAD>タグの間に追加されます。

例:

 AddHead[ezwf]: <link rev="made" href="mailto:mrtg@blabla.edu";>

BodyTag

生成されるWebページに独自の<body ...>を使うことができます。

例:

 BodyTag[ezwf]: <BODY LEFTMARGIN="1" TOPMARGIN="1"
                      BACKGROUND="/stats/images/bg.neo2.gif">

AbsMax

もし回線がコンプレッションを使用していたりフレームリレー などでMaxBytesを超えるトラフィックをハンドルする場合、 AbsMaxキーワードを使用して絶対的な最大値を指定することが できます。この設定はルータから返される非現実的な値を区別する ために必要になります。もしAbsMaxを設定しなかった場合、 rateupはMaxBytesより高い値をすべて無視します。

例:

 AbsMax[ezwf]: 2500000

Unscaled

デフォルトではMaxBytesよりかなり低い数値でも表示されるように、 各グラフは垂直方向にスケーリングされます。Unscaled 変数でこれをやめさせることができます。この引数はストリングで、 スケールしたくないグラフを1文字で表したもの: d=day w=week m=month y=year を含みます。例では年毎、月毎の グラフでスケーリングを止めます。

例:

 Unscaled[ezwf]: ym

WithPeak

デフォルトでグラフは監視している変数 - 通常 incoming / outgoing トラフィックの転送レートの平均値しか表示しません。 このオプションはMRTGに5分間の最高値を [w]eekly、[m]onthly そして[y]earlyグラフで表示させます。例では月毎と年毎の グラフが最高値と平均値を同時に表示するよう定義しています。

例:

 WithPeak[ezwf]: ym

Suppress

デフォルトではMRTGは4つのグラフを生成します。この オプションを使用して生成されるグラフを選択すること ができます。オプション値の文法は、前出の2つのオプション と同じです。この例では使用始めではしばらく何も表示されない 年毎のグラフを省略しています。

例:

 Suppress[ezwf]: y

Extension

デフォルトではMRTGは .htmlファイルを生成します。この オプションを使用してMRTGに違う拡張子を使うよう指示する ことができます。例えば拡張しをphp3にすれば、PHPタグを 出力に含むことができます (データベース参照してルータ名を 呼び出すときなどに便利です)

例:

 Extension[ezwf]: phtml

Directory

デフォルトではMRTGは生成するファイル全て(PNG、HTMLページ、ログ ファイル等)をWorkDirに置きます。

Directoryオプションが指定されている場合、ファイルは WorkDirの代わりにLog-、Image- や HtmlDir-などに格納 されます。(例えば下記のDirectoryオプションでは監視対象ezwfの ファイルを全て/usr/tardis/pub/www/stats/mrtg/ezwf/ ディレクトリ下 に置きます。)

既存のディレクトリを指定してください。MRTGはディレクトリを 作成しません。

例:

 WorkDir: /usr/tardis/pub/www/stats/mrtg
 Directory[ezwf]: ezwf

注: Directoryオプションは「相対的」でなければなりません。 そうしない場合、悪いことが起こるでしょう。

XSize と YSize

デフォルトではMRTGのグラフは 100 x 400ピクセルです。(それに ラベルの分が追加されます)。例ではほぼ正方形のグラフを作成 します。

注: XSizeは20から600の間でなくてはなりません; YSizeは20より大きい 必要があります。

例:

 XSize[ezwf]: 300
 YSize[ezwf]: 300

XZoom と YZoom

より大きなピクセルでグラフを表示させたい場合には「Zoom」 することができます。

例:

 XZoom[ezwf]: 2.0
 YZoom[ezwf]: 2.0

XScale と YScale

もしグラフを実際に拡大・縮小させたいなら、XScaleYScaleを 使用してください。(できることにはできますが、結果は正直なところ 不格好です) もしどなたか直したいと思われた方は: パッチの提供、 歓迎します。

例:

 XScale[ezwf]: 1.5
 YScale[ezwf]: 1.5

YTics と YTicsFactor

4つ以上の横罫線をグラフに表示させたい場合にはYTicsを使用して ください。これらの罫線のYLegendの値をスケールしたい場合に は、YTicsFactorを使用して下さい。YTicsのデフォルト値は 4で、YTicsFactorは1.0です。

例:

例えば 0から700の範囲の値を取得する場合、7本の線を 配置し、 0、100、200、300、400、500、600、700にする 代わりに0、1、2、3、4、5、6、7と表示させたいとしましょう。 その場合には:

  YTics[ezwf]: 7
  YTicsFactor[ezwf]: 0.01
  
と記述します。

Factor

グラフ内に表示させる数値に常にいくつか掛けたい場合 にはこのディレクティブを使用してそれを指定してください。

例:

  Factor[as400]: 4096

Step

デフォルトのステップ 5 * 60秒を変更します。 (まだよく試してません……)

例:

 Step[ezwf]: 60

Options

Optionsキーワードでブールスイッチを設定することが できます:

growright
グラフはデフォルトで左に向かって伸びます。このオプションは 現在時が右端に、古いデータがその左に来るようにグラフの伸びる 方向を転換します。

bits
全ての監視対象の数値が8倍されます(すなわちバイトでなくビット で表示します).....よりかっこよく見えます :-)。これは 「工場出荷時」ラベル付けと対象の単位にも影響します。

perminute
全ての監視対象の数値が60倍されます(すなわち単位/秒ではなく 単位/分で表示します) 値が小さい場合、より正確なグラフが表示され ます。これは「工場出荷時」ラベル付けと対象の単位にも影響します。

perhour
全ての監視対象の数値が3600倍されます(すなわち単位/秒ではなく 単位/時間で表示します) 値が小さい場合、より正確なグラフが表示され ます。これは「工場出荷時」ラベル付けと対象の単位にも影響します。

noinfo
生成されるWebページで機器の名前と稼働時間を非表示にします。

nopercent
利用率のパーセント表示をしません。

transparent
生成されるPNGの背景を透過にします。

integer
グラフの下の要約された部分をコンマなしの数字として表示します。

dorelpercent
入出力トラフィックの相対的なパーセンテージを計算し、グラフに線として追加します。 注: 固定スケールのみ (0-100%) 。したがって出力トラフィックより入力トラフィックが多い場合100%と表示されます。もし入力トラフィックが必ずしも出力トラフィックと同じかそれより少ないと限らない場合、このオプションの使用はお奨めできません。 注: Coloursオプションと一緒に使用した場合、5番目の色名と値のペアが必要になります。

avgpeak
ISPの中にはピークトラフィックの平均値を使って顧客に課金するところがあ りますが、このオプションを使えばMRTGでその値を各グラフに表示することが できます。平均値は5分間平均トラフィックの最大値を各ステップについてグ ラフ毎に平均して算出します。例えば週間グラフでは2時間毎の5分間の平均最 大トラフィックの平均値が表示されます。(わかりにくい?でもそうなんだ!)

gauge
監視対象から集めた値を「現在の状況」の尺度とし、カウンタの値を増やしません。ディスクの空き容量や、プロセッサの負荷、温度などを監視するときに役に立つでしょう。

「gauge」や「absolute」オプションが指定されていない場合、MRTGは変数をカウンタとして扱い、現在とひとつ前の値の差を計測した時間で割って書きだす値を取得します。

absolute
カウンタタイプのデータで、読み込まれた時に自身をリセットします。これはrateupが現在と最後に取得した値を比較する必要がないことを意味します。「gauge」オプションと違い、取得された値は2つの値を計測した時間で割ります。外部のデータ収集プログラムを使用する際に役に立ちます。

unknaszero
データが不明の場合、最後に取得した値を繰り返すのではなくゼロとします。大抵の場合、グラフ線が0になるよりも平らであることの方が普通ですので注意して下さい。

withzeroes
転送レートを計算する際、通常ゼロの値は無視されます。これを望まない場合には、このオプションを使用して下さい。

noborder
rateupを使用してデータを記録している場合、MRTGはグラフの画像を生成します。通常これらの画像には影付きの枠線がついています。もしこの枠線が必要ない場合、このオプションを使用して下さい。rateupを使用していない場合には、このオプションを使用する意味はありません。

noarrow
上のオプションと同じく、このオプションはrateupでのグラフ生成のみに影響します。 通常rateupはデータの方向を示す小さな矢印のついたグラフを生成します。もしこの矢印が必要なければこのオプションを使用して下さい。rateupを使用していない場合には、このオプションを使用する意味はありません。

noi
rateupをグラフ生成に使用している場合、このオプションを使用してrateupが「I」または最初の変数のグラフを描きださないようにすることができます。このオプションでMRTGが生成するページにあるこの変数のエントリも、ピークの設定がしてある場合はその情報も表示されないようになります。これでデータを隠したり、グラフを2本の線でなく1本だけで構成したい場合にも役に立つでしょう。このオプションで損なわれるものは何もありません - その変数に関するデータは表示されないだけで記録され続けます。

noo
Same as above, except relating to the 'O' or second variable.

上記と同じですが、「O」または2番目の変数が関係しているというところが違います。

nobanner
rateupをグラフの生成に使用している場合、このオプションでMRTGが生成するHTMLページにMRTGのバナーを追加させないようにします。

nolegend
rateupをグラフの生成に使用している場合、このオプションでMRTGが生成するHTMLページ下部に凡例を挿入させないようにします。

例:

 Options[ezwf]: growright, bits

kilo

接頭辞を計算する際に使用する乗数の数値を変更するオプションです。デフォルトは 1000 です。1kB = 1024B、1MB = 1024kBなどとしたい場合に使用します。

例:

 kilo[ezwf]: 1024

kMG

デフォルトの乗数の接頭辞(,k,M,G,T,P)を変更します。ShortLegendタグは基本単位のみを定義します。 書式: カンマ区切りの接頭辞のリスト。2つの連続したカンマや文頭文末のカンマはその項目に接頭辞を付けません。 注: もし接頭辞がいらない場合、この行は空行にしてください。

例: nm/s (ナノメータ/秒) の速度を nm/hで表示。

  ShortLegend[ezwf]: ナノメータ/時間
 kMG[ezwf]: n,u,m,,k,M,G,T,P
 options[ezwf]: perhour

Colours

Coloursタグでデフォルトの色を変えることができます。 注: 4つすべての色が指定されている必要があります。色名 (以下の「Colx」) は凡例で表示される色の名前で、RBG値でグラフとHTML両方で使用される実際の色を指定します。

書式は: Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB になります。

重要: もしdorelpercentオプションを使用している場合には、5番目の 色名と値が必要になります: Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB,Col5#RRGGBB

Colour1
デフォルトのグラフで最初の値 (通常 入力)

Colour2
デフォルトのグラフで2番目の値 (通常 出力)

Colour3
最初の値 (入力) の最大値

Colour4
2番目の値 (出力) の最大値

RRGGBB
2桁の赤、緑、青のhex値

例:

 Colours[ezwf]: GREEN#00eb0c,BLUE#1000ff,DARK GREEN#006600,VIOLET#ff00ff

Background

Backgroundで生成される HTMLページの背景色を指定することができます。

例:

 Background[ezwf]: #a0a0a0a

YLegend, ShortLegend, Legend[1234]

以下のキーワードでグラフやHTMLドキュメント内の さまざまな凡例を書き換える事が可能です。

YLegend
グラフのY軸ラベル。グラフ内に表示するにはテキストが長すぎる場合は、無視されます。

ShortLegend
最大、平均、現在の値の単位表示 (デフォルトは「b/s」)

Legend[1234IO]
色の凡例のための文字列

例: YLegend[ezwf]: ビット/秒 ShortLegend[ezwf]: b/s Legend1[ezwf]: 入力トラフィック ビット/秒 Legend2[ezwf]: 出力トラフィック ビット/秒 Legend3[ezwf]: 5分間で最大の入力トラフィック Legend4[ezwf]: 5分間で最大の出力トラフィック LegendI[ezwf]: &nbsp;In: LegendO[ezwf]: &nbsp;Out:

注意、もしLegendILegendO

 LegendO[ezwf]:

のように空行になっていた場合、対応するグラフ線は表示されません。

Timezone

もし国際的な世界に住んでいるなら、グラフを違うタイムゾーンで 生成する必要があるかもしれません。これはTZ変数で設定されて います。Solarisのようなある種のオペレーティングシステムでは、 選択したタイムゾーンで時間を表示するために、localtimeをコール します。

例:

 Timezone[ezwf]: Japan

TimezoneはJapan、Hongkong、GMT、GMT+1といった Solaris標準のタイムゾーンです。

Weekformat

デフォルトではMRTG (正確にはrateup)は月間グラフの週番号を フォーマットするのにstrftime(3)の'%W'オプションを使用します。 このフォーマットオプションの正確な解釈はシステム間で異なります。もし 週番号が間違っていることに気がついたら、そしてあなたのシステム がstrftime(3)ルーチンがサポートしているなら、違うオプションを 試すことができます。POSIX '%V'オプションがよく使われている ようです。

例:

 Weekformat[ezwf]: V

RRDRowCount

新しくrrd ファイルを生成する際に影響します。初期状態では rrd ファイルは1日分の詳細データを保持します(加えて、1週間分の30分 のデータ、2ヶ月分の2時間のデータ、それに2年分の1日のデータを)。 このキーワードで、新しく作られるrrdファイルの基本となるインター バルを変更することができます。計算の際にこのインターバルを考える 必要があることを忘れないでください。

例:

RRDRowCount[ezwf]: 1600

SetEnv

cfgファイル内で外部のスクリプトを呼ぶ場合 (しきい値 や監視対象になっているスクリプト) 、SetEnv設定オプショ ンで環境変数を設定することによって、その外部スクリプト になんらかのデータを送ることができます。

例:

SetEnv[myrouter]: EMAIL="contact_email@someplace.net"  
                  HOST="www.some_server.net"  
                  URL="http://www.some_server.net/path/mrtg.html"


しきい値のチェック

MRTGはさまざまな監視対象のしきい値の問題をチェックすることができ、外部スクリプトを呼ぶことによって問題解決の手助けをします(メールを送ったり、管理者のポケベルを鳴らしたり)。

しきい値のチェックは下記のパラメータで設定可能です:

ThreshDir (グローバル)

ThreshDirを書き込み可能なディレクトリに設定することで、 MRTGはしきい値を超えた時のみ警告を発します。

例:

 ThreshDir: /var/mrtg/thresh

ThreshMinI (Target毎)

入力(1つめの)パラメータで受けつけられる最小の値です。もしパラメータがこの値を割ったとき、ThreshProgIで指定してあるプログラムが走ります。もし値が「%」で終っている場合にはしきい値はMaxBytesと連動して定義されます。

ThreshMaxI (Target毎)

入力(1つめの)パラメータで受けつけられる最大の値です。もしパラメータがこの値を超えたとき、ThreshProgIで指定してあるプログラムが走ります。もし値が「%」で終っている場合にはしきい値はMaxBytesと連動して定義されます。

ThreshDesc (Target毎)

この値は、以下で設定されるプログラムが呼び出される前に環境変数THRESH_DESCとして設定されます。プログラムはユーザーフレンドリな出力をするためにこの値を使用することができます。

ThreshProgI (Target毎)

ThreshMinIやThreshMaxIが破られた時に走るプログラムを定義します。MRTGは3つの引数を渡します: $router変数、破られたしきい値の値、それに現在のパラメータの値です。

ThreshProgOKI (Target毎)

(ThreshMinI と ThreshMaxI を基準にして) それまでThreshDirにあったファイルによると異常だったパラメータが、現在正常に戻った場合に走るプログラムを定義します。MRTGは3つの引数を渡します: $router変数、破られていないしきい値の値、それに現在のパラメータの値です。

ThreshMinO、 ThreshMaxO、ThreshProgO と ThreshProgOKO

*Iと同じ様に動作で出力(2番目の値)に作用します。

注、前述のSetEnvパラメータを使用して、しきい値用プログラムにより多くの情報を渡すことができます。


Target毎のデフォルトの値

接頭・接尾辞

タイプの手間を省くために、「^」と呼ばれるターゲットを定義することができます。このターゲットに指定したテキストのキーワードは、記述されている行以下 すべてのTargetの該当するキーワードの文頭に追加されます。「$」も同様ですが、こちらは文末に追加します。

キーワードの値と文頭、文末に追加されるテキストの間には空文字が追加されることに注意して下さい。テキストで指定するキーワードには大変有効ですが、その他のキーワードではあまり役に立ちません。以下の「デフォルト」ターゲットの説明をご覧下さい。

例では、このファイルのこれ以下の行で定義されているTargetに対して、生成されるページすべてに一般的なヘッダと連絡先をMRTGが挿入するようにしています。

例:

PageTop[^]: <H1>どこにもないユニットのトラフィック統計</H1><HR> 
PageTop[$]: 質問はPeter Nortonまでお問い合わせ下さい<HR>

接頭・接尾辞の値を削除するには、以下のように空の値を指定してください。

 PageTop[^]:
 PageTop[$]:

注: ローカルの値と接頭・接尾辞の間に通常空文字が追加されます。これを望まない場合には、$や^の最後に付けることによって空文字を除去する文字を NoSpaceChar設定オプションで定義することができます。

例:

  NoSpaceChar: ~
  Target[^]: 1.3.6.1.4.1.482.50.2.4.20.0&1.3.6.1.4.1.482.50.2.4.21.0:get@~
  Target[a]: a.tolna.net
  Target[b]: b.tolna.net
  Target[c]: c.tolna.net
  Target[d]: d.tolna.net

デフォルト値

ターゲット名「_」はそのキーワードのデフォルト値を指定します。明示的なキーワードの値や、接頭接尾辞のキーワードが指定されていない場合、このデフォルト値が使用されます。

例:

 YSize[_]: 150
 Options[_]: growright,bits,nopercent
 WithPeak[_]: ymw
 Suppress[_]: y
 MaxBytes[_]: 1250000

デフォルト値を削除し「工場出荷時状態」に戻すには、以下のように空の値を設定します:

 YLegend[_]:

設定ファイルの中にはデフォルト/接頭辞/接尾辞の値が複数指定してある場合があります。より後に指定してあるものが、設定ファイルの残りの行で前出の値を置き換えます。指定したキーワード/Targetペアで使用されるデフォルト/接頭辞/接尾辞の値は、設定ファイルの中で最初にその監視対象が出現した時に有効なものになります。

例:

 MaxBytes[_]: 1250000
 Target[myrouter.somplace.edu.2]: 2:public@myrouter.somplace.edu
 MaxBytes[_]: 8000
 Title[myrouter.somplace.edu.2]: Traffic Analysis for myrouter.somplace.edu IF 2

上記例では、監視対象のmyrouter.somplace.edu.2のMaxBytesのデフォルトの値は、ターゲット名がmyrouter.somplace.edu.2最初に出現した時点で有効だった1250000が使用されます。


コマンドライン オプション

--user ユーザ名 and --group グループ名
指定したユーザ and/or グループで走らせます (Unixのみ)
--lock-file ファイル名
別のlock-fileを指定します(デフォルトでは設定ファイル名に _lを追加したものになります)
--confcache-file ファイル名
別のconfcache-fileを指定します(デフォルトでは設定ファイル名に .okを追加したものになります)
--logging ファイル名|イベントログ
書き込み可能なファイル名を指定した場合、MRTGからの出力のすべて (warnings、debug messages、 errors)が ファイル名に行きます。Win32で走らせている場合は、Windowsのイベントログにすべてのエラーが送られるように、ファイル名の代わりに イベントログを指定することが可能です。

注: MRTG用のMessage DLLはありません。WindowsのイベントロッガーがMRTGがMessage DLLを持っていないという素敵なメッセージをすべてのイベントログへのエントリに関して表示します。もしWindowsユーザで協力してくださる方がいらっしゃいましたら、歓迎します。


最小のmrtg.cfg

 WorkDir: /usr/tardis/pub/www/stats/mrtg
 Target[r1]: 2:public@myrouter.somplace.edu
 MaxBytes[r1]: 8000 
  Title[r1]: ISDNのトラフィック解析
 PageTop[r1]: <H1>私たちのISDN回線の状況</H1>

複数のルータのためのcfg

 WorkDir: /usr/tardis/pub/www/stats/mrtg
 Title[^]: トラフィック解析
 PageTop[^]: <H1>
 PageTop[$]: の状況</H1><BR>お気づきの点はチーフに連絡して下さい。<HR>

 MaxBytes[_]: 8000
 Options[_]: growright

 Title[isdn]: 私たちのISDN回線
 PageTop[isdn]: 私たちのISDN回線
 Target[isdn]: 2:public@router.somplace.edu
 
 Title[backb]: 私たちのキャンパスバックボーン
 PageTop[backb]: 私たちのキャンパスバックボーン
 Target[backb]: 1:public@router.somplace.edu
 MaxBytes[backb]: 1250000

 
 # 以下の行は上記で定義されたデフォルトで前に
 # 追加される値を削除します

 Title[^]:

 Title[isdn2]: バックアップISDN回線のトラフィック
 PageTop[isdn2]: 私たちのISDN回線
 Target[isdn2]: 3:public@router.somplace.edu

著者

Tobias Oetiker <oetiker@ee.ethz.ch> と多くの協力者達


日本語訳

花井 浩之、橋本 理央 <e2j@mrtg.jp>