Зеленый статус-код, который сожрал $14 200: почему ваш мониторинг врет вам в лицо

Ноябрь 2021 года. Черная пятница. У моего клиента — запуск дорогого онлайн-курса, трафик гонят ведрами. Я сижу перед монитором, обложившись вкладками. Экран светится зеленым. Популярный сервис uptimerobot рапортует: все отлично, доступность 100%.

А продаж нет. Четыре часа абсолютной, звенящей тишины в CRM.

Выяснилось все случайно, когда один настойчивый покупатель написал в поддержку в Телеграм: «Ребята, я хочу отдать вам деньги, но кнопка оплаты не нажимается». Оказалось, сторонний скрипт аналитики обновился, бесконфликтно упал в консоли браузера и намертво заблокировал обработчик клика на кнопке «Оплатить».

Для сервера страница была жива. Он отдавал честный статус 200 OK. Любой стандартный test сайта показывал, что все работает. Но бизнес лежал в коме. Мы потеряли ровно 14 200 долларов чистой прибыли за четыре часа просто потому, что верили красивым зеленым иконкам.

Иллюзия контроля: почему пинг больше не работает

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

Это опасное заблуждение. Современный веб-ресурс — это не статичная HTML-страница из двухтысячных. Это слоеный пирог из фронтенда, бэкенда, базы данных, внешних API, платежных шлюзов и пикселей отслеживания. Достаточно отвалиться одному микросервису, который отвечает за автозаполнение адреса при доставке, и ваша корзина превращается в тыкву. При этом сам сайт будет открываться идеально быстро.

Когда вы настраиваете мониторинг сайта бесплатно через простейшие облачные утилиты, вы проверяете только то, что сервер не сгорел физически. Но вы не проверяете, работает ли ваш бизнес.

Особенно больно это бьет по тем, кто закупает платный трафик. Представьте: у вас запущен мониторинг сайта яндекс директ (или вы настроили мониторинг сайта директ через внутренние инструменты). Система видит, что страница открывается, и продолжает сливать рекламный бюджет. Объявления крутятся, клики идут, деньги списываются, а пользователи уходят, наткнувшись на неработающую форму отправки заявки. Вы платите за воздух.

Инструменты, которые мы выбираем (и где они спотыкаются)

Когда разработчик осознает эту проблему, он обычно идет по одному из трех путей:

Первый путь — развернуть собственное self-hosted решение. Отличный вариант — uptime kuma, запущенный через uptime kuma docker контейнер на своем сервере. Это быстро, бесплатно и дает приятный интерфейс. Но тут кроется ловушка: если вы мониторите сервер с этого же сервера (или из той же локальной сети), вы никогда не узнаете, что у пользователей из других регионов сайт не открывается. Например, когда из-за очередной волны блокировок вам экстренно потребуется мониторинг сайта ркн, чтобы понять, какие IP-адреса попали под раздачу.

Второй путь — тяжелая артиллерия. На сцену выходит мониторинг сайта zabbix или Prometheus с кучей экспортеров. Это мощно, гибко, но требует отдельного инженера на поддержку. Для малого и среднего бизнеса это как стрелять из пушки по воробьям. Вы потратите больше времени на настройку алертов в Zabbix, чем на сам продукт.

Третий путь — забить и проверять руками. Но человек физически не может делать тест сайта каждые пять минут круглосуточно. Это не формальный мониторинг сайта образовательной организации, где сайту достаточно просто висеть в сети для галочки перед проверяющими органами. В коммерции каждая минута простоя — это прямые убытки.

Что такое настоящий мониторинг сайта онлайн?

Чтобы спать спокойно, нужно мониторить не инфраструктуру, а пользовательские сценарии (synthetic monitoring).

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

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

Если ваша база данных перегружена и отвечает на запрос авторизации дольше 5 секунд, стандартный пинг покажет «Up», потому что веб-сервер Nginx еще жив. Но пользователь закроет вкладку и уйдет к конкурентам. Поэтому время ответа критически важных API-методов нужно мониторить так же жестко, как и сам факт работы сервера.

Решение, которое мы создали для себя и клиентов

Устав от ложных срабатываний и «слепых зон» стандартных систем, мы разработали собственный инструмент умного контроля.

Если вам нужен надежный, глубокий и автоматический контроль вашего проекта без необходимости настраивать сложные серверные связки, обратите внимание на наш продукт: Guardian — мониторинг 24/7. Он не просто проверяет, жив ли сервер, а имитирует реальное поведение пользователей, контролирует работу форм, кнопок и критически важных сценариев вашего бизнеса, мгновенно присылая уведомления туда, где вы их точно не пропустите.