MRTGを使ったネットワーク監視技法

第7回 コンフィギュレーションファイルを作る(2)

この記事を読むのに必要な時間:およそ 3 分

前回に引き続き,mrtg.cfgの作成方法について解説します。

cfgmakerを活用する

コンフィギュレーションファイル(mrtg.cfg)を作成する場合にはcfgmakerを使うという説明を前回しました。このときは,WorkDirの指定がないため,mrtg.cfgを手で修正しています。しかし,できれば手での修正は避けたいものです。

実は,cfgmakerには引数を使ってWorkDirなどのグローバルキーワードを指定することができます。またテンプレート機能があり,これを使うと監視対象機器ごとのキーワードの指定なども効率良く行うことができます。

今回はcfgmakerを使って,手修正のいらないmrtg.cfgを作る方法をご紹介します。

cfgmakerを使い,手修正のいらないmrtg.cfgを作る

WorkDirなどのグローバルキーワードは,引数に--globalを与えることで指定できます。なお,cfgmakerを使ったmrtg.cfgの作成は試行錯誤を繰り返しますから,シェルスクリプトにして使うことにします。(vi cfg_mrtg.sh)

スクリプト(cfg_mrtg.sh)

/usr/local/mrtg-2/bin/cfgmaker ¥
    --global "WorkDir: /usr/local/apache2/htdocs/mrtg" ¥
    --global "IconDir: /mrtg/icons/" ¥
    --global "options[_]: growright,bits" ¥
    --global "Language: eucjp" ¥
    --output="mrtg.cfg" ¥
    HIMITSU@192.168.1.208

このスクリプトでは,--globalの他に,--outputの指定があります。--outputは出力するファイルを明示する場合に使います。--outputの指定がない場合には,標準出力に出力されます。

このスクリプトに実行権限を付けたあと,実行します。

# chmod 755 cfg_mrtg.sh
# ./cfg_mrtg.sh

テンプレートを使う

mrtg.cfgにLanguage: eucjp を指定することで,"日グラフ(5分間 平均)"のように日本語が表示されるようになりますが,SystemやMaintainerなどは英語のままです。

図1 見出しに英語が使われている例

図1 見出しに英語が使われている例

これらも日本語にするためには,テンプレートを使うことで解決できます。またテンプレートを使うと,MRTGが出力する項目を細かく指定することができます。

今,cfg_mrtg.tempというファイル名で,テンプレートを作るとします。cfg_mrtg.tempは,以下のようになります。なお,筆者は直接日本語を入力するために,viの代わりにvimを使っています。

cfg_mrtg.tempテンプレート

$head_lines="";
$problem_lines="";
$target_lines="";
$separator_lines="";

if ($if_ok) {

  my( $TN ) = $target_name;

  #                                  MaxBytes, Title
  if ($TN eq "192.168.1.208_1") {SL( 1250000,  "ルータ1" )};
}

#====================================================
#
#       SL   (Set Lines)
#

sub SL
{
    my ($MaxBytes, $Title ) = @_;
    my ($bps);
    my ($MK);

    $bps = $MaxBytes * 8.0 / 1000000.0;
    if ( $bps < 1.0 ) {
        $bps = $bps * 1000;
        $MK = "Kbps";
    } else {
        $MK = "Mbps";
    }

$target_lines .= <<HTMLTEXT;
Target[$target_name]: $if_index:$router_connect
MaxBytes[$target_name]: $MaxBytes
Title[$target_name]: $Title [ $bps $MK ] $sysname : $target_name
Directory[$target_name]: $router_name
PageTop[$target_name]: <H1>$Title : $sysname : $target_name</H1>
  <div>
  <TABLE>
    <TR><TD>システム名</TD><TD>$sysname</TD></TR>
    <TR><TD>場所</TD>      <TD>$html_syslocation</TD></TR>
    <TR><TD>担当者</TD>    <TD>$html_syscontact</TD></TR>
    <TR><TD>回線速度</TD>  <TD>$bps $MK</TD></TR>
  </TABLE>
  </div>

HTMLTEXT

}

著者プロフィール

田村吉章(たむらよしあき)

1962年群馬県生まれ。東京理科大学理工学部数学科卒。専門は数値解析。85年から金融機関に勤務。システム開発部門,有価証券のリスク管理部門を経た後,システム監査に従事。公認情報システム監査人(CISA)。主な業務に社内ネットワークの企画・構築の他,有価証券のプライスモデルの実装やValue at Risk(VaR)算出などを行う市場リスク管理システムの構築などがある。

コメント

コメントの記入