Введение
Серверам и сайтам нужен мониторинг, как минимум - того, что они живы и доступны, в идеале следует регистрировать и запоминать ещё и параметры производительности
Существует множество пакетов и сервисов, которые этим занимаются.
Из сетевых сервисов первым назову UptimeRobot.
UptimeRobot
Компания зарегистрирована на Мальте и работает уже много лет.
Бесплатно он предоставляет:
- 50 мониторов с частотой обновления от 5 минут
- HTTP(S)-запросы по любым адресам
- Поиск ключевого слова на странице
- Ping (ICMP-запросы)
- Проверка портов (SMTP, IMAP и т.п.)
- Оповещения по электронной почте, вебхуками, сообщениями в Twitter, Telegram, Slack и в других сервисах
- Статистика по времени отклика
- Подробные логи за два месяца
- Возможность публиковать статистику на общедоступную страницу
- Открытый API
Алгоритм работы мониторинга:
Каждые пять минут их сервер посылает запрос (какой - указано в настройках мониторинга) на указанный адрес. В логах HTTP-сервера запросы выглядят примерно так:
69.162.124.235 - - [06/Jan/2024:19:10:27 +0000] "HEAD / HTTP/1.1" 200 0 "https://x.sockoop.ru" "Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)" "-"
Если получен запрос с кодом 2xx, сервер считается работающим. Если получены ошибки с кодом 4xx/5xx, посылаются запросы с других адресов, если и они не получили удовлетворительного ответа, фиксируется инцидент и рассылаются оповещения.
Статья на Хабре с подробностями
Доморощенные и самохощенные программы
Мониторить доступность серверов умеют популярные пакеты мониторинга - Munin monitoring, Nagios, Zabbix, Grafana/Prometheus (например, с помощью Blackbox exporter)