1

Моя компания работает в глобальной сети. Каждый из наших филиалов работает на определенном диапазоне IP-адресов (192.168.0.100, 192.168.1.100, 192.168.2.100, например).

Я хочу контролировать соединение. Я написал быстрое консольное приложение на C #, которое проверяет каждый адрес каждые 5 секунд и записывает результат в файл CSV. Достаточно ли этого? Я получаю довольно много ошибок TimedOut, хотя адрес может быть доступен в следующем тесте (так что он не выключен, а время ожидания) - почему это может происходить? Я пингую слишком часто или? Я установил щедрый период ожидания.

Благодарю.

Редактировать: я должен был сказать, что в каждом филиале нет «сервера», только маршрутизатор, настроенный для подключения к глобальной сети - так что я могу сделать что-то еще, кроме проверки подключения?

5 ответов5

5

О проверке основного сетевого подключения между точками через глобальную сеть. При нормальных условиях обычная трассировка Ping должна показывать стабильную связь.
Тем не менее, в вашем случае (по каналам глобальной сети) ваша связь кажется слабой.
Под этим я подразумеваю, что на вашем WAN-пути могут возникать периодические потери пакетов.

О проверке доступности серверного приложения. Теперь это другая игра с мячом.
Вам необходимо использовать тесты, включающие протокол сервера (TCP и HTTP/HTTPS, если это веб-сервер).
Потому что ваш «сервер» может быть доступен, но служба может быть повреждена или остановлена.

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

1

На мой взгляд, вам действительно нужен более богатый тест, который обеспечит доступ к некоторым услугам (www, общий доступ к файлам и т.д.). Ping только говорит вам, что базовая ОС работает. Есть бесплатные инструменты, такие как Nagios, ZenOSS и monit, которые уже делают это.

1

Возможно, вы захотите исследовать какое-то программное обеспечение SNMP - оно разработано именно для того, что вы хотите сделать. Чистый SNMP является открытым исходным кодом и довольно популярен.

1

Поскольку вы проверяете клиентов с неизвестными IP-адресами, вам может потребоваться установить на них агент для «регистрации» на главном сервере (SNMP/WMI), что кажется лучшим решением. Вы можете запланировать задания для запроса обратно к мастеру, используя планировщик ОС (cron, at и т.д.). Например, ваш php-скрипт на мастере может принимать такие параметры:

HTTP://master/collector-script.php IP = 1.2.3.4 & ID = computer12

Запланируйте curl или wget и т.д., Используя cygwin на windows, чтобы поразить этот URI. Сценарий сборщика будет хранить все это в базе данных, и, если пройдет X минут без ответа от одного из компьютеров, он может отправить вам электронное письмо. Вы могли бы написать что-то подобное менее чем за час, но они продают программное обеспечение, которое делает это тоже.

Однако, если вы хотите просто протестировать исходящие случайные сервисы, вот несколько других решений:

Мой сайт работает? Например, простая страница, которую можно свернуть и проверить, был ли ответ 200 (ОК) с ожидаемыми данными. Но вы также хотели бы знать, каково было время ответа. Это займет 200 мс или 20 с, чтобы дать вам ответ?

Простой запрос к базе данных на странице php может проверить службу базы данных, а также веб-страницу и службу php.

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

Кроме того, пинг это кусочек во времени. Он говорит вам, что этот конкретный отрезок времени ответил, но не говорит вам обо всем между пингами. Если у вас Windows, и все, что вы хотите увидеть, - это если на удаленном хосте установлена ОС / сеть, вы можете попробовать одну из следующих 2 утилит:

http://www.pingplotter.com/freeware.html http://en.wikipedia.org/wiki/PathPing

Они также дают представление о состоянии сети. В Linux также есть похожие инструменты, такие как:

httping -h hostname.com

Который отправит запрос http на любой порт, который вы хотите.

Конечно, есть и надежный телнет:

telnet yoursite.com 80

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

0

Зависит от того, что вы подразумеваете под доступным: ping проверяет соединение с физическим сервером, но не программное обеспечение сервера и его способность отвечать на входящие запросы. Тайм-ауты могут возникать из-за пропущенных эхо-запросов между источником и сервером. Traceroute (tracert, в Windows) покажет вам, где отбрасываются пинги. Ни один из них не скажет вам об отзывчивости вашего (программного обеспечения) вашего сервера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .