Вопрос или проблема
Как “статусные проверочные” сайты, такие как “isitdownrightnow.com“, “Hosting Checker” или “isitup.com“, определяют, что веб-сайт работает? Это должно быть больше, чем просто пинг? Я спрашиваю, потому что хотел бы предложить аналогичную функцию для внутренних сайтов компании, в которой я работаю. Проблема с нашей сетью в том, что большинство сайтов имеют серьезную аутентификацию с использованием различных комбинаций карт CAC, карт PIV и токенов RSA. Плюс некоторые корпоративные сайты на самом деле являются внешними сайтами.
В общем, более интересно знать, функционирует ли услуга, чем в режиме онлайн ли конкретный IP, поэтому вам следует в общем делать такие тесты как можно более специфичными.
Например, представьте веб-сервер с полным диском; страница входа загружается нормально, но вход не удается, потому что /tmp
заполнен, и файлы сессии не могут быть записаны на диск. Услуга не работает, но тест не обнаружит это, если не проверит возможность входа.
Может быть полезно также отслеживать косвенные параметры, такие как время транзакции базы данных; если оно повышается, приложение может быть затронуто.
Мониторинг сложных услуг сложен, и часто представляет собой комбинацию тестирования конечных точек, анализа логов и мониторинга хоста.
Сайты, такие как упомянутый, обычно имеют функциональные тесты для крупных сайтов, таких как Facebook и Twitter, в то время как для меньших сайтов они просто выполняют запрос HTTP(S), и если он отвечает 200, то это считается успешным.
Обычно это больше, чем просто пинг, так как несколько сайтов могут размещаться на одном публичном IP. Они анализируют ответ сайта заголовка, чтобы убедиться, что сайт отвечает чем-то хорошим.
Запрос “ОК” (200) против серверной ошибки 500 будет иметь разное значение в отчете.
Ответ или решение
Сайты проверки статуса, такие как "isitdownrightnow.com", определяют работоспособность веб-сайта, используя комбинацию различных методов и технологий, которые позволяют получить более полное представление о состоянии сервиса, чем просто простой пинг.
-
HTTP-запросы: В первую очередь, сервисы отправляют HTTP-запросы на указанный URL-адрес. Успешный ответ в виде кода 200 (OK) указывает на то, что сайт функционирует должным образом. В отличие от этого, коды ошибок, такие как 404 (Not Found) или 500 (Internal Server Error), могут сигнализировать о проблемах на сервере или недоступности нужного ресурса.
-
Проверка различных конечных точек (endpoints): Для сложных веб-приложений важно не только проверять доступность главной страницы, но и тестировать определенные конечные точки, такие как страницы входа, API и другие важные функциональные компоненты. Это позволяет выявить, например, ситуацию, когда сайт загружается, но функциональность (например, аутентификация) не работает.
-
Анализ заголовков ответа: Сайты проверки статуса анализируют заголовки HTTP-ответов, чтобы понять, какой тип контента возвращается. Это позволяет отличать ответы, которые могут сигнализировать о проблемах (например, серверные ошибки), даже если сервер в данный момент онлайн.
-
Мониторинг производительности: Некоторые сервисы дополнительно отслеживают параметры производительности, такие как время ответа, время выполнения транзакций баз данных и другие метрики, которые могут свидетельствовать о перегруженности или проблемах с сервером.
-
Тестирование нескольких адресов и IP: Учитывая, что на одном IP-адресе может быть размещено несколько сайтов, сервисы используют различные методы для проверки каждой конкретной конечной точки, чтобы избежать путаницы между сайтами, которые могут делить один и тот же IP.
-
Логи и автоматизированный мониторинг: Для более сложных сервисов необходимо применять автоматизированные системы мониторинга, которые собирают и анализируют логи, чтобы выявлять причины неполадок, а также отслеживать длительное время скрытые проблемы.
Для реализации аналогичного решения внутри вашей компании, учитывая многоуровневую аутентификацию (CAC, PIV, RSA и т.д.), вам, возможно, потребуется:
- Создать специальные тестовые аккаунты с соответствующими правами для доступа к ресурсам, которые вы хотите мониторить.
- Разработать скрипты или инструменты для автоматической аутентификации на внутренних веб-сайтах, чтобы проверять не только доступность, но и возможность выполнения определенных действий (например, вход в систему).
- Учитывать политические или сетевые ограничения, связанные с доступом, если ваши тесты будут применяться к внешним ресурсам.
В конечном итоге, правильный мониторинг включает в себя не только проверку доступности веб-сайтов, но и анализ их функциональности, что и позволяет достичь более высокой уверенности в их работоспособности.