投稿日:2003年09月20日 作成鷹の巣

No.12402 MRTGで、監視対象のルータの電源断中に電源断直前のトラフィックが表示されてしまう。



MRTGで、監視対象のルータの電源断中に電源断直前のトラフィックが表示されてしまう。

No.12402 投稿時間:2003年09月20日(Sat) 05:59 投稿者名:かず URL:

お世話になります。
MRTGの設定について、教えて頂きたい事ががあります。

環境
OS:Windows2000 Server SP4
ActivePerl5.8 + Apache2.0 + MRTG2.9.29
Router:CentreCOM AR410 V2(アライド)


どうにかApacheやMRTGのインストールが終了して、稼動テストをしている時に
わかったのですが、監視対象のルータの電源を切ると切断(電源断)している
直前のトラフィックが(実際は発生していないはずなのに)電源断している間、
あたかも発生しているように表示されます。

※今の状態では、直前に100kbpsのトラフィックが発生している際に監視対象
(ルータ)からの応答が急になくなると停止の時間だけ、100Kbpsのトラフィ
ックが表示されてしまいます。

これをMRTGのオプション設定等で解決する事はできないのでしょうか。
ルータの応答がない間はトラフィックが「0」(発生しない)となる設定に
したいのですが。。。
※ルータへのトラフィック取得は5分間隔、ページ更新間隔も5分間隔です。


素人考えですが、よろしくお願いします。^^;


MRTGの起動方法は?

No.12422 投稿時間:2003年09月20日(Sat) 18:08 投稿者名:鷹の巣 URL:http://sakaguch.com/

> 環境
> OS:Windows2000 Server SP4
> ActivePerl5.8 + Apache2.0 + MRTG2.9.29
> Router:CentreCOM AR410 V2(アライド)
>
>
> どうにかApacheやMRTGのインストールが終了して、稼動テストをしている時に
> わかったのですが、監視対象のルータの電源を切ると切断(電源断)している
> 直前のトラフィックが(実際は発生していないはずなのに)電源断している間、
> あたかも発生しているように表示されます。
>
> ※今の状態では、直前に100kbpsのトラフィックが発生している際に監視対象
> (ルータ)からの応答が急になくなると停止の時間だけ、100Kbpsのトラフィ
> ックが表示されてしまいます。
>
> これをMRTGのオプション設定等で解決する事はできないのでしょうか。
> ルータの応答がない間はトラフィックが「0」(発生しない)となる設定に
> したいのですが。。。
> ※ルータへのトラフィック取得は5分間隔、ページ更新間隔も5分間隔です。

こちらのサイト
http://www.argus.ne.jp/~tomom/snmp/
を見てきたのですが、
1.MRTGを常駐させてトラフィック遷移グラフの更新(5分間隔)を行う様に、
MRTGの設定ファイルに「RunAsDaemon: yes」指示を付け加えておられますか?
2.それとも、5分間隔でMRTGを定期的に起動しておられるのでしょうか?


cfgファイルの記述としてRunAsDaemonをyesにしています。

No.12485 投稿時間:2003年09月22日(Mon) 23:22 投稿者名:かず URL:

お返事が遅くなり、申し訳ないです。

MRTGの起動方法についてなのですが、一応、cfgファイルの記述としてRunAsDaemonをyesに
しています。
残念ながら、起動方法もお教え頂いたとおり、試して見ましたが結果は同様でした。

> こちらのサイト
> http://www.argus.ne.jp/~tomom/snmp/
> を見てきたのですが、
> 1.MRTGを常駐させてトラフィック遷移グラフの更新(5分間隔)を行う様に、
> MRTGの設定ファイルに「RunAsDaemon: yes」指示を付け加えておられますか?
> 2.それとも、5分間隔でMRTGを定期的に起動しておられるのでしょうか?

鷹の巣さん、ありがとうございます。


MRTGの仕様ですが、手が無いわけではありません。

No.12425 投稿時間:2003年09月21日(Sun) 00:13 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

こんばんは。

> どうにかApacheやMRTGのインストールが終了して、稼動テストをしている時に
> わかったのですが、監視対象のルータの電源を切ると切断(電源断)している
> 直前のトラフィックが(実際は発生していないはずなのに)電源断している間、
> あたかも発生しているように表示されます。
>
> ※今の状態では、直前に100kbpsのトラフィックが発生している際に監視対象
> (ルータ)からの応答が急になくなると停止の時間だけ、100Kbpsのトラフィ
> ックが表示されてしまいます。
>
> これをMRTGのオプション設定等で解決する事はできないのでしょうか。
> ルータの応答がない間はトラフィックが「0」(発生しない)となる設定に
> したいのですが。。。
> ※ルータへのトラフィック取得は5分間隔、ページ更新間隔も5分間隔です。

これは、MRTGが前回取得したデータも利用して平均化(アルゴリズムはわかりませんが)
する処理の都合上、こうなってしまいます。残念ながら、設定では変更できないと思います。
素直に考えれば、根性を入れてMRTGを解析して改造するしかないと思いますが、Daemon起動
ではなくCronで5分毎に起動しているなら、少し強引ですがルータにpingを打って、応答が
無い場合にはログを強制的に「0」に書き換えてしまうスクリプトなら遊びで作ったものが
あります。MRTGには一切手は入りません。
同様のことは、サーバを落としておいて立ち上げたときにも発生しますが、このスクリプト
はこれには対応できません。


ログの書き換えスクリプトを今後の参考にしたいのですが。

No.12490 投稿時間:2003年09月22日(Mon) 23:44 投稿者名:かず URL:

こんばんわ。かずです。
おやじさん、お返事ありがとうございます。

> これは、MRTGが前回取得したデータも利用して平均化(アルゴリズムはわかりませんが)
> する処理の都合上、こうなってしまいます。残念ながら、設定では変更できないと思います。

そうですか。。公式ページを確認していたのですが、そういった記述が見当たりませんでしたので
仕様かな。。とは考えていたのですが。
(※有名なツールでしたので少し頼りすぎていたかも知れません・・・・)

> 素直に考えれば、根性を入れてMRTGを解析して改造するしかないと思いますが、Daemon起動
> ではなくCronで5分毎に起動しているなら、少し強引ですがルータにpingを打って、応答が
> 無い場合にはログを強制的に「0」に書き換えてしまうスクリプトなら遊びで作ったものが
> あります。MRTGには一切手は入りません。
> 同様のことは、サーバを落としておいて立ち上げたときにも発生しますが、このスクリプト
> はこれには対応できません。

スクリプト等もチャレンジしてみようとは思っていたので、いい機会かもしれません。。
強制ログ書き換えスクリプトなんですが、おやじさんのWebPageに掲載されていらっしゃったり
しますでしょうか。
もしよければログの書き換えスクリプトを今後の参考にしたいのですが・・・。^^;


あまり人に見せられるようなものではありませんが・・・。

No.12493 投稿時間:2003年09月23日(Tue) 00:38 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

こんばんは。

 あまり人に見せられるようなものではありませんが、下記を適当な名前
(ex. mrtg.cgi)で保存し、5分毎にCronでまわしてください。この中でMRTG
も動かしていますので、これをまわすだけです。
 強引にログを書き換えていますが、ロジック的に問題はないはずです。
Windows用のcronは下記ページを参考にしてください。
 MRTGをRunAsDaemonで動かしていたなら、削除してください。
 下記は、pingコマンドがWindows用ですからLinuxでは使えません。

 Cronの参考ページ: http://www.aconus.com/~oyaji/adsl/mrtg_win.htm
 crontabの例     : 0,5,10,15,20,25,30,35,40,45,50,55 * * * * perl mrtg.cgi
 
-------- 以下、スクリプト--------------------------------

#!/usr/bin/perl
# -------------------------------------------------------
# [概要]
# ルータにpingを打って、応答が無い場合はログを強制的に「0」
# リセットし、mrtgを起動。応答があればそのままmrtgを起動。
# -------------------------------------------------------
# [設定]
# ・$router_url  :ルータのLAN側IPアドレスを指定
# ・$traffic_log :トラヒックのログをフルパスで指定
# ・$mrtg_cmd    :MRTGの起動コマンドをフルパスで指定
# -------------------------------------------------------
$router_url    = "192.168.1.1";
$traffic_log = "C:/usr/mrtg/traffic.log";
$mrtg_cmd = "perl C:/mrtg/bin/mrtg C:/mrtg/bin/mrtg.cfg";
# -------------------------------------------------------
$ping = "ping -n 1";
$ping_cnt = 3;
# -------------------------------------------------------

$ping_chk = 0;
while( $ping_chk++ < $ping_cnt ) {
    $ret = `$ping $router_url`;
    last if ( $ret =~ /Reply from $router_url/ );
}
unless ( $ping_chk < $ping_cnt ) {
    open(TOUT, "+<$traffic_log") || exit;
    flock(TOUT, 2);
    @log = <TOUT>;
    truncate(TOUT, 0);
    seek(TOUT, 0, 0);
    $loop_cnt = 0;
    foreach $line (@log) {
        if($loop_cnt == 1){
            (@xx) = split(/\s/,$line);
            $line = "$xx[0] 0 0 0 0\n";
            splice(@log,$loop_cnt,1,$line);
            last;
        }
        $loop_cnt++;
    }
    print(TOUT @log);
    close (TOUT);
}
`$mrtg_cmd`;


試行錯誤してみます。

No.12513 投稿時間:2003年09月24日(Wed) 00:44 投稿者名:かず URL:

こんばんは。
おやじさん、ありがとうございます。

とりあえず、お教え頂いたスクリプト拝見しました。
(ほぼ答えをお教え頂いてしまいましたが・・・^^;)

MRTGを使っている方はこの問題(仕様)というのは、気にされてなかったんでしょうか。
そもそも使用方法等が多彩なツールなので、自分のやる気とスキル次第といった雰囲気
ですね(それが当たり前なのでしょうね)。


とにかく、本当にご親切にありがとうございました。
あとは自分自身でカスタマイズ(いつになるのやら・・)しながら、試行錯誤してみます。
ありがとうございました。

> こんばんは。
>
> あまり人に見せられるようなものではありませんが、下記を適当な名前
> (ex. mrtg.cgi)で保存し、5分毎にCronでまわしてください。この中でMRTG
(中略)
> close (TOUT);
> }
> `$mrtg_cmd`;


|目次|掲示板|過去ログ目次|▲頁先頭|