Простой интернет-монитор работоспособности

8

Мне нужно просто следить за тем, как часто интернет-соединение прерывается - и как долго. Я собирался написать немного Python, который пингует 8.8.8.8 каждую минуту, но я подумал, что должна быть утилита, которая делает это - и выдает хороший отчет

Но это филиал с простым соединением типа SOHO, без SNMP-маршрутизатора, только Windows, должен работать на настольном компьютере, который не предназначен для этой задачи.

Не нужно знать пропускную способность, задержку пинга или что-то еще - просто отчет о том, сколько раз он падал в течение более нескольких секунд, чтобы махнуть кабельной компании.

Мартин Беккет
источник

Ответы:

5

Я делаю это наоборот с Pingdom . Бесплатный аккаунт, один чек. Пингуйте WAN-IP-адрес роутера, и все хорошо. Вы получаете ежемесячный отчет о работоспособности и можете кричать в кабельную компанию.

Том О'Коннор
источник
Не понял, что у них есть бесплатная версия. Спасибо
Мартин Беккет
Pingdom теперь взимает $ 100 / год за это - время искать в другом месте
Мартин Беккет
В самом деле? У меня все еще есть монитор с одноуровневой проверкой, и я ничего не слышал о том, чтобы они его останавливали.
Том О'Коннор
1
pingdom.com/free Это хорошо спрятано внизу страницы с ценами . Sneaky.
Том О'Коннор
2
Это связано с их бесплатной пробной
версией
1

Я не знаю никакой утилиты, но я сделал для меня простой код с помощью 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 каждый раз при запуске, а затем будет печатать в файл, если он получил ответ или нет, а также время, чтобы вы могли позже проверить, с какого времени и до какого времени Интернет был недоступен.

Если вам это нравится, я могу сделать небольшие изменения для использования в Windows, и вам нужно было установить ActivePerl, и все.

Единственными необходимыми изменениями являются пути и команды, которые могут отличаться в Windows.

Prix
источник
1
Это в значительной степени то, что я написал бы (только на python) - я просто предположил, что для этого есть небольшой инструмент systray.
Мартин Беккет
Честно говоря, я никогда не удосужился найти один из них, но так как вы искали что-то подобное, я решил, что должен поделиться тем, что я использую с вами / кем-либо еще в сообществе, которому нужно что-то похожее :) и еще раз извините, что я не не знаю ни одного инструмента.
Prix
Пинг должен быть только на первом маршрутизаторе, контролируемом провайдером, другими словами, на первом устройстве, которым вы не управляете. Все больше и больше интернет-провайдеров отключают ICMP из-за такого рода вещей. Трафик ICMP к периферийному устройству в порядке, но через магистраль просто теряется пропускная способность.
dbasnett
@dbasnett ofc Я изменил его на Google, чтобы скрыть, где я пинг :)
Prix
@dbasnett хорошая мысль - я предположил, что Google 8.8.8.8 может справиться с нагрузкой.
Мартин Беккет
1

В настоящее время я расследую подобную проблему (ошибка DSL в филиале). Я запускаю PingPlotter удаленно; это программа для Windows, которая генерирует простой для чтения график. Я использовал график, чтобы сообщить провайдеру, в какое время ссылка сбрасывается.

(Теперь жду, когда провайдер на самом деле это исправит - дайте мне знать, если у вас есть какие-либо советы о том, как заставить операторов работать быстрее!)

Митч Миллер
источник
2
Извините - я думаю, что эта проблема известна как NP-очень-очень сложная
Мартин Беккет
0

Попробуйте бесплатную версию PA Server Monitor . Он ограничен по объему, но бесплатная версия сделает Ping и создаст для вас графики. Работает в Windows и в качестве фоновой службы, поэтому не мешает.

DougN
источник
попробовал - слишком сложно настроить. Похоже, я напишу немного Python
Мартин Беккет
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
    }
}

}
TBone
источник