Einfache Überwachung der Verfügbarkeit der Internetverbindung

8

Ich muss nur überwachen, wie oft eine Internetverbindung unterbrochen wird - und wie lange. Ich wollte nur ein bisschen Python schreiben, das jede Minute 8.8.8.8 pingte, aber ich dachte, es muss einen Util geben, der dies tut - und einen schönen Bericht erstellt

Dies ist jedoch eine Zweigstelle mit einer einfachen SOHO-Verbindung. Kein SNMP-Router, nur Windows, muss auf einem Desktop-Computer ausgeführt werden, der nicht für diese Aufgabe vorgesehen ist.

Sie müssen nicht über Kapazität, Ping-Latenz oder ähnliches Bescheid wissen - nur einen Bericht darüber, wie oft es länger als ein paar Sekunden gedauert hat, um dem Kabelunternehmen zu winken.

Martin Beckett
quelle

Antworten:

5

Ich mache das umgekehrt mit Pingdom . Kostenloses Konto, ein Scheck. Pingen Sie die WAN-IP-Adresse des Routers an, und alles ist gut. Sie erhalten einen monatlichen Verfügbarkeitsbericht und können die Kabelgesellschaft anrufen.

Tom O'Connor
quelle
Ich wusste nicht, dass sie eine kostenlose Version hatten. Vielen Dank
Martin Beckett
Pingdom berechnet jetzt $ 100 / Jahr für diese - Zeit, woanders zu suchen
Martin Beckett
"Ja wirklich?" Ich habe immer noch einen One-Check-Free-Tier-Monitor und habe nichts davon gehört, dass sie ihn gestoppt haben.
Tom O'Connor
1
pingdom.com/free Es ist am Ende der Preisseite gut versteckt. Hinterhältig.
Tom O'Connor
2
Das ist ein Link zu ihrer kostenlosen Testversion
Rehan Khwaja
1

Ich kenne keinen Util, aber ich habe mir einen einfachen Code dafür mit Perl gemacht:

#!/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;

Was es tut, ist, dass es versucht, Google jedes Mal zu pingen, wenn es ausgeführt wird, und es dann in eine Datei druckt, wenn es eine Antwort erhalten hat oder nicht, zusammen mit der Zeit, so dass Sie später überprüfen können, von welcher Zeit bis zu welcher Zeit das Internet nicht verfügbar war.

Wenn es Ihnen gefällt, kann ich die kleinen Änderungen vornehmen, die in Windows verwendet werden sollen, und Sie mussten ActivePerl installieren, das ist alles.

Die einzigen erforderlichen Änderungen sind Pfade und Befehle, die unter Windows möglicherweise anders sind.

Prix
quelle
1
Das ist ziemlich genau das, was ich geschrieben hätte (nur in Python) - ich habe nur angenommen, dass es ein kleines Systray-Tool gibt, um dies zu tun.
Martin Beckett
Um ehrlich zu sein, habe ich mich nie darum gekümmert, nach einem zu suchen, aber da du nach so etwas gesucht hast, habe ich gelernt, dass ich das, was ich benutze, mit dir / anderen in der Community teilen sollte, die etwas Ähnliches brauchen würden :) und es tut mir noch einmal leid, dass ich es nicht tue Ich kenne kein Werkzeug.
Prix
Der Ping muss nur an den ersten vom ISP gesteuerten Router gesendet werden, dh an das erste Gerät, über das Sie keine Kontrolle haben. Immer mehr ISPs schalten ICMP aufgrund dieser Art von Dingen aus. Der ICMP-Verkehr zum Edge-Gerät ist in Ordnung, aber über das Backbone wird nur Bandbreite verschwendet.
Dbasnett
@dbasnett ofc Ich habe es in Google geändert, um zu verbergen, wo ich pinge :)
Prix
@dbasnett guter Punkt - Ich nahm an, dass Googles 8.8.8.8 die Last bewältigen könnte.
Martin Beckett
1

Ich untersuche derzeit ein ähnliches Problem (ein DSL-Fehler in einer Zweigstelle). Ich führe PingPlotter remote aus. Es ist ein Windows-Programm und generiert ein einfach zu lesendes Diagramm. Ich habe das Diagramm verwendet, um dem ISP mitzuteilen, wann der Link unterbrochen wird.

(Warten Sie nun darauf, dass der ISP das Problem tatsächlich behebt. Lassen Sie mich wissen, wenn Sie Tipps haben, wie Sie Telekommunikationsunternehmen schneller zum Laufen bringen können!)

Mitch Miller
quelle
2
Entschuldigung - ich denke, dass das Problem als NP-sehr-sehr-schwer bekannt ist
Martin Beckett
1

Eine weitere gute Wahl ist http://www.alertfox.com/. Kostenlose Website-Überwachung, Transaktionstests und Berichte.


quelle
0

Probieren Sie die PA Server Monitor Free Edition aus . Der Umfang ist begrenzt, aber die kostenlose Version erledigt Ping und erstellt Diagramme für Sie. Läuft unter Windows und als Hintergrunddienst, damit es nicht im Weg steht.

DougN
quelle
habe es versucht - zu kompliziert zum Einrichten. Sieht so aus, als würde ich ein bisschen Python schreiben
Martin Beckett
0

Powershell schnell und schmutzig

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
    }
}

}
Knochen
quelle