Инструмент для проверки доступности веб-сайта

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

Есть ли какой-либо сервер/приложение/инструмент, который последовательно проверяет состояние заданного URL-адреса (выполняя необработанные HTTP-запросы GET) с заданным интервалом? Было бы также интересно, если бы мы могли добавить конфигурацию почтового сервера, чтобы уведомлять администраторов, если сайт не работает.

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

Инструмент должен обеспечивать следующие функции:

  • Инструмент, который мы можем установить на наших веб-серверах, чтобы не зависеть от сторонних сервисов.
  • Вид сервиса, который можно запустить/остановить вручную
  • Легкое решение
  • Запускается по крайней мере на Linux, будет интересно иметь его и на Windows
  • Открытый исходный код / ​​Дешевая альтернатива
Одно замечание по поводу требований: несколько лет назад мы написали именно этот инструмент и запустили его на наших собственных серверах. Нам нужно было как можно скорее узнать, когда один из наших (размещенных) серверов вышел из строя. Недостаток самостоятельного запуска заключался в том, что мы должны были предусмотреть возможность того, что наши собственные соединения не работают. Мы решили эту проблему, пропинговав абсолютно не связанные надежные сайты. Таким образом, это стало своего рода «распределенным» тестированием. (Коммерческая) внешняя служба будет тестировать из разных мест и, возможно, даже предупредит вас по SMS. Итог: я рекомендую внешний сервис.
@JanDoggen, это отличный отзыв от вас. На самом деле, помимо наших внутренних серверов, у нас есть некоторые из наших приложений, работающих на внешних серверах. Метод будет заключаться в использовании инструмента на наших собственных веб-серверах, а также на внешних. Таким образом, мы могли бы протестировать все службы на каждом сервере. У этого есть несколько недостатков , связанных с необходимостью обновлять то, что нужно проверять везде, каждый раз, когда мы настраиваем новую службу. Но именно об этом мой вопрос. На самом деле, мы также рассматриваем возможность запуска внешнего сервиса, так как есть интересные бесплатные варианты, такие как uptimerobot.com.
'loop: curl url & sleep 600 & goto loop '?
Я использую бесплатный сервис мониторинга веб-сайтов upnow.info с открытым исходным кодом, основанный на Sails JS + Angular (NodeJS).

Ответы (5)

То, что вы ищете, относится к категории программного обеспечения для мониторинга.

Я использовал mon для этого. Я не эксперт, поэтому я не могу сказать, как он сравнивается со многими другими инструментами мониторинга, но, судя по вашему описанию, он должен хорошо работать для вас.

  • Инструмент, который мы можем установить на наших веб-серверах → apt-get install monили yum install monлюбой другой в вашем дистрибутиве.
  • Вид сервиса, который можно запустить/остановить вручную →service mon start/stop
  • Легкое решение → программа и документация к ней занимают около 1 МБ
  • Запускается по крайней мере в Linux, будет интересно иметь его и в Windows → должен быть во всех основных дистрибутивах Linux; однако нет пакета Cygwin.
  • Открытый исходный код → да, это бесплатно, совместимое с Debian.

Mon просто начать работу. Из коробки в Debian/Ubuntu он отправляет мне ( root) электронное письмо, когда сервер Apache на том же компьютере выходит из строя. Очевидно, вам нужно отредактировать файл конфигурации, чтобы он мог отслеживать другие хосты. Mon поставляется с мониторингом хостов (ping), HTTP, FTP, SMTP, MySQL, доступным дисковым пространством и многими другими службами, и вы можете запускать произвольные команды для мониторинга служб, которые не являются встроенными. Оповещения могут быть отправлены по электронной почте, SNMP или пользовательскими методами.

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

Возможно, вы захотите изучить этот monitoringтег в Unix и Linux и в Server Fault , чтобы увидеть, не придутся ли вам по душе какие-то альтернативы.

Соответствует всем требованиям вроде бы (+1). Просто в качестве примечания: последнее обновление, похоже, было из 2010 года. Но это ничего не должно значить для простой фоновой службы :) Сопоставимым (и современным) проектом будет PHP Server Monitor . Но не пользовавшись им, я не могу подробно рассказать об этом...
@Izzy Мне придется попробовать, поскольку я лично разрабатываю для Windows и с интересом слежу за этой темой.
@NickWilde Если вы говорите о PHP Server Monitor (что я предполагаю), вы можете преобразовать свою попытку в какую-то репутацию, создав ответ. Глядя на рейтинг этого проекта, я уверен, что оно того стоит!
@ Иззи, да, как только я попробую, я обязательно превращу это в ответ, если я совпаду, как кажется, спасибо :)

Это одна из вещей , для которых разработан Nagios . Он может отслеживать практически любую видимую извне службу (HTTP, IMAP, POP, MySQL, SSH и т. д.), а также любые внутренние данные на сервере (использование диска, загрузку системы, количество процессов) с помощью так называемого NRPE. Он будет отправлять электронные письма о проблемах со службами, при необходимости с ограничениями (не отправлять электронные письма Джо в нерабочее время) для произвольно сложных сопоставлений получателей со службами на машинах. Он будет вести журналы, когда службы были активны/критичны/неактивны. Его также можно настроить для выполнения других действий при сбоях службы (перезапустите MySQL, если он не работает). Это бесплатно и с открытым исходным кодом (есть платная версия с дополнительными функциями , которые выходят далеко за рамки того, что вам нужно), и есть много документации. Есть как минимум один порт Windows (Cygwin),Нагвин .

Я бы добавил, что легко добавить плагин для проверки чего-либо через NRPE. Создайте какой-нибудь скрипт, который возвращает 0,1,2 или 3 в зависимости от состояния, добавьте скрипт в файл commands.cfg и проверьте, что хотите. Кроме того, у вас также есть мобильные приложения для мониторинга вашего Nagios. Стоит прочитать: signalvnoise.com/posts/3178-nagios-monitoring-performance

Для этого я использую Monit , он бесплатный, с открытым исходным кодом (AGPL) и доступен пакет Debian .

Он поддерживает:

  • Режим демона - опрашивать программы с заданным интервалом
  • Режимы мониторинга - активный, пассивный или ручной
  • Запуск, остановка и перезапуск программ
  • Группировать и управлять группами программ
  • Определение зависимости процесса
  • Ведение журнала в системный журнал или собственный файл журнала
  • Конфигурация - всеобъемлющий контрольный файл
  • Проверка времени выполнения и портов TCP/IP (tcp и udp)
  • Поддержка SSL для проверки портов
  • Проверка сокета домена Unix
  • Статус процесса и время ожидания процесса
  • Процесс использования процессора
  • Использование памяти процесса
  • Процесс проверки зомби
  • Проверьте среднюю загрузку системы
  • Проверить временную метку файла или каталога
  • Оповещение, остановка или перезапуск процесса в зависимости от его характеристик
  • Контрольная сумма MD5 для программ, запущенных и остановленных monit
  • Оповещение о тайм-ауте программы, перезапуске, контрольной сумме, остановке ресурса и ошибке временной метки
  • Гибкие и настраиваемые оповещения по электронной почте
  • Проверка протокола. HTTP, FTP, SMTP, POP, IMAP, NNTP, SSH, DWP, LDAPv2 и LDAPv3
  • Интерфейс http с дополнительной поддержкой SSL, чтобы сделать monit доступным из веб-браузера.

Если вы готовы платить за услугу, я очень доволен Pingdom .

  • Вы можете настроить интервал проверки
  • Уведомления о простоях отправляются по электронной почте, в SMS-сообщениях или в Twitter.
  • У них есть объединенные информационные панели, которые предоставляют сводки и исторические данные для сайтов, которые вы отслеживаете.
  • У них есть бесплатный план, который может отслеживать один URL-адрес, если вы хотите попробовать его.
Это выглядит интересно. Однако я бы предпочел иметь что-то внутреннее, а не зависеть от стороннего (и платного) сервиса...
Будет ли это работать на сервере, который недоступен из Интернета?
@ Жиль, нет, не будет.
@XtremeBiker они не были упомянуты в исходном вопросе, хотя я вижу, что вы обновили его сейчас.

SmartBear , владельцы SoapUI, предлагают такую ​​услугу. Начальная цена в настоящее время составляет 12 долларов США в месяц за базовую услугу (с бесплатной пробной версией для всех уровней обслуживания).

Похоже, он охватывает ваши спецификации и многое другое . Я не уверен, считаете ли вы такой сервис излишним, поскольку он, кажется, делает намного больше, чем задал ваш вопрос. Он включает в себя мониторинг порога производительности , который вы хотели, и включает уведомления по электронной почте и SMS о любых проблемах.

Я использовал продукты SmartBear несколько раз в прошлом (и в настоящее время) и был очень доволен ими. Если вы хотите протестировать сервис, посмотрите их бесплатную демо -версию . Просто введите в него свой URL, и он создаст отчет на основе вашего сайта.

При всем при этом, если вам нужна простая проверка вверх/вниз, я бы просто закодировал пингер лично. Эти другие варианты отлично подходят для мониторинга, поиска узких мест и решения проблем до их возникновения, в чем и заключается их ценность. И по цене это намного дешевле, чем тестирование нагрузки и производительности.

Это кажется интересным, но похоже, что это более полный инструмент, который также обеспечивает полное тестирование приложения. Я только хочу уведомить, если он пойдет вниз! (Для обнаружения ответа 404 при получении страницы будет достаточно)
У меня нет опыта работы с этим, но похоже, что он подходит для ваших нужд. Ping For Life выглядит очень просто. Будет ли это лучше соответствовать вашим потребностям?