シンプルなインターネット接続稼働時間モニター


8

インターネット接続がダウンする頻度とその期間を監視する必要があります。私は毎分8.8.8.8にpingを送信する少しのpythonを書くつもりでしたが、これを実行するユーティリティが必要だと思いました-そして素晴らしいレポートを生成します

ただし、これは単純なSOHOタイプの接続を備えたブランチオフィスであり、SNMPルーターはなく、Windowsのみで、タスク専用ではないデスクトップマシンで実行する必要があります。

容量やpingのレイテンシなどを知る必要はありません。ケーブル会社で手を振るために数秒以上ダウンした回数のレポートだけです。

回答:


5

私はこれをPingdom逆に行います。無料アカウント、1つのチェック。ルーターのWAN IPアドレスにpingを送信すると、問題ありません。あなたは毎月の稼働時間レポートを受け取り、ケーブル会社に叫ぶことができます。


彼らが無料版を持っていることに気づかなかった。ありがとう
マーティン・ベケット

Pingdomは現在、このために年間100ドルを請求しています
マーティンベケット

本当に?私はまだ1つのチェックの無料枠のモニターを持っており、それを停止することについて何も聞いていません。
トム・オコナー

1
pingdom.com/free 価格ページの下部に隠されています。卑劣。
トム・オコナー2014年

2
これは、現在無料トライアルにリンクしています
Rehan Khwaja

1

utilは知りませんが、perlを使用して簡単なコードを自分で作成しました。

#!/usr/bin/perl

use Net::Ping;
use POSIX qw/strftime/;

if (-e '/var/run/net_test.pid') {
        print "net_test already running.\n";
        exit;
} else {
        system "touch /var/run/net_test.pid";
}

my $host   = "www.google.com";
my $ping   = Net::Ping->new('icmp');
my $result = $ping->ping($host,2);

if ($result != 1) {
        $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is not available...";
        $run = `echo $format >> /var/log/virtua_net`;
        while ($result != 1) {
                $result = $ping->ping($host,2);
                sleep 60;
        }
        $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is back...";
        $run = `echo $format >> /var/log/virtua_net`;
} else {
        $format = strftime('[%d/%m/%Y %H:%M:%S]',localtime)." Internet is ok...";
        $run = `echo $format >> /var/log/virtua_net`;
}
$ping->close();

system "rm -rf /var/run/net_test.pid" if (-e "/var/run/net_test.pid");
exit;

これは、実行するたびにgoogleへのpingを試行し、応答があったかどうかにかかわらず、時間とともにインターネットに接続できなかった場合に後で確認できるように、ファイルに出力します。

あなたがそれを好きなら、私はwindowsで使用されるように小さな変更を加えることができます、そしてあなたはすべてであるActivePerlをインストールする必要がありました。

必要な唯一の変更は、Windowsで他とは異なるパスとコマンドです。


1
これは私が書いたものとほぼ同じです(Pythonのみ)-これを行うための小さなシステムトレイツールがあると思いました。
Martin Beckett

正直言って、私は1つを探すのに迷惑をかけたことはありませんが、このようなものを探していたので、私はあなた/コミュニティの誰かと共有する必要があります。どんなツールも知りません。
Prix

pingを実行する必要があるのは、ISPが制御する最初のルーター、つまり制御できない最初のデバイスだけです。このようなことが原因で、ますます多くのISPがICMPをオフにしています。エッジデバイスへのICMPトラフィックは問題ありませんが、バックボーン全体で帯域幅が無駄になっているだけです。
dbasnett

@dbasnett ofc私はそれをグーグルに変更して、pingする場所に隠されました:)
Prix

@dbasnettの良い点-Googleの8.8.8.8が負荷を処理できると思いました。
マーティンベケット

1

現在、同様の問題(ブランチオフィスでのDSL障害)を調査しています。PingPlotterをリモートで実行しています。これはWindowsプログラムであり、読み取りが簡単なグラフを生成します。グラフを使用して、リンクがドロップする時間をISPに通知しました。

(今、ISPが実際に修正するのを待っています-電話会社をより速く動作させるためのヒントがあれば教えてください!)


2
すみません-問題はNP-very-very-hardとして知られていると思います
Martin Beckett

1

別の良い選択は、http: //www.alertfox.com/ です無料のWebサイト監視、トランザクションテスト、およびレポートです。


0

PA Server Monitor Free Editionをお試しください。範囲は限定されていますが、無料バージョンではPingを実行してグラフを作成します。Windows上で実行され、邪魔にならないようにバックグラウンドサービスとして実行されます。


試してみました-設定するには複雑すぎます。少しPythonを書くようです
Martin Beckett

0

Powershell迅速かつダーティ

while ($true) {

  #if (test-connection -count 1 microsoft.com -Quiet) {    



  if (test-connection -count 1 google.com ) {    
   $result=(get-date).ToString("yyyy-MM-dd hh:mm:ss")
   $result = "$result ok"
   "$result" | Tee-Object -FilePath c:\~~temp\router_log.txt -append     #"$result" | Out-File -FilePath c:\~~temp\router_log.txt -append

   sleep 5

 } else {
    while (-not (test-connection -count 1 google.com -Quiet)) {    
        $result=(get-date).ToString("yyyy-MM-dd hh:mm:ss")
        $result = "$result down"
        "$result" | Tee-Object -FilePath c:\~~temp\router_log.txt -append
        sleep -millisecond 100
    }
}

}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.