Разработка · 6 мин чтения

Мониторинг аптайма сайта: какие сервисы использовать и как настроить

Мониторинг аптайма - это не «поставил галочку и забыл», а конкретный набор проверок, который сообщает о падении сайта раньше, чем это заметят клиенты или Яндекс. За несколько лет работы с интернет-магазинами на WooCommerce и лендингами на Tilda я видел десятки случаев, когда сайт лежал 20-40 минут посреди рабочего дня, а владелец узнавал об этом из звонка бухгалтера «а почему не приходят заказы». Дальше - какие сервисы стоит использовать, чем проверка «сайт открывается» отличается от проверки «заказ можно оформить», и как настроить всё так, чтобы алерт долетал до вас, а не терялся в спам-папке почты.

Зачем нужен мониторинг доступности сайта, если сайт вроде работает

Главная страница у большинства сайтов действительно падает редко. А вот отдельные узлы - оплата, форма заявки, вебхук CRM, скрипт расчёта доставки - валятся гораздо чаще, и обычный пользователь замечает это как «сайт не работает», хотя технически он отвечает 200 OK. Я настраивал мониторинг для интернет-магазина на WooCommerce с приёмом платежей через Т‑Банк: сервер отвечал нормально, а виджет оплаты периодически падал из-за таймаута на стороне эквайринга - без отдельного монитора на страницу checkout это заметили бы только по падению выручки в конце дня.

Цифры здесь простые: 15 минут простоя в месяц - это уже 99,97% аптайма, формально отличный показатель. Но если эти 15 минут пришлись на вечер пятницы во время рекламной кампании, потери в заказах несоизмеримы с красивым процентом в отчёте. Плюс поисковики: частые 5xx-ответы и рост времени ответа Яндекс и Google фиксируют и постепенно понижают позиции - это не разовый штраф, а накопительный эффект за пару месяцев нестабильной работы.

Как устроено отслеживание аптайма: HTTP, ping, keyword и SSL

Большинство сервисов проверяют сайт одним из нескольких способов, и стоит понимать разницу, а не ставить все монитора по умолчанию:

  • HTTP(S)-проверка - запрос на URL, статус 200-299 считается «живым». Базовый вариант, ловит падения сервера и 5xx-ошибки.
  • Keyword-мониторинг - проверка, что на странице присутствует конкретный текст. Ловит «белый экран смерти», когда сервер отвечает 200, но рендерится пустая страница или ошибка PHP вместо контента.
  • TCP/порт-проверка - для сервисов без HTTP: почтового сервера, базы данных, кастомного API.
  • Ping (ICMP) - самый грубый способ, годится для проверки, что сервер вообще в сети, но не показывает, отвечает ли веб-сервер.
  • Мониторинг SSL-сертификата - отдельная проверка срока действия, чтобы не поймать «сайт недоступен» из-за забытого продления за неделю до дедлайна.

Для Tilda-сайтов со встроенными скриптами я обычно ставлю keyword-проверку на элемент, который появляется после успешной загрузки кастомного JS (например, форму с интеграцией СДЭК) - иначе падение стороннего скрипта останется незамеченным, пока сама Tilda отвечает исправно.

Сервисы для проверки работоспособности сайта: сравнение

Выбор зависит от того, нужен ли вам просто алерт в Telegram или полноценная страница статуса для клиентов.

Сервис Бесплатный тариф Минимальный интервал Особенность
UptimeRobot 50 мониторов, 5 мин 1 мин (платно) Простая настройка, много интеграций для алертов
Better Stack (Better Uptime) 10 мониторов, 3 мин 30 сек Красивая статус-страница, эскалация по звонку
StatusCake 10 мониторов, 5 мин 1 мин (платно) Проверки из нескольких регионов на бесплатном тарифе
Pingdom нет 1 мин Детальный RUM и анализ скорости, выше цена
Uptime Kuma бесплатно (self-hosted) настраивается вручную Открытый код, ставится через Docker, нужен свой всегда включённый сервер

Uptime Kuma я обычно рекомендую тем, у кого уже есть VPS под другие задачи - n8n или Telegram-бота, например, - тогда мониторинг встаёт туда же без дополнительной подписки. Если своего сервера нет, платный тариф Better Stack на пару монитора окупается уже на первом предотвращённом простое.

Настройка uptime-мониторинга: пошагово на примере UptimeRobot и Telegram

Базовая настройка занимает 10-15 минут:

  1. Создаёте монитор типа HTTP(s), указываете URL и интервал проверки (для интернет-магазина ставлю 5 минут на главную и 1 минуту на checkout).
  2. В разделе Alert Contacts добавляете Telegram - через официального бота UptimeRobot нужно написать ему /start и получить chat ID.
  3. Для keyword-проверки указываете текст, который должен присутствовать на странице (например, «Добавить в корзину»), и тип условия - «должен содержать» или «не должен содержать».
  4. Настраиваете повторную проверку из нескольких точек - это отсекает ложные срабатывания из-за проблем на стороне одного дата-центра, а не вашего сайта.

Проверить руками, как сервер отвечает и сколько времени занимает запрос, можно так:

curl -o /dev/null -s -w "%{http_code} %{time_total}sn" https://example.ru/checkout

Если готовых интеграций мало и нужен собственный обработчик алертов (например, отправка не в общий чат, а конкретному дежурному по расписанию), пишу небольшого aiogram-бота, который принимает вебхук от монитора и решает, куда отправить уведомление:

from aiogram import Bot
import asyncio

async def notify_down(chat_id: int, url: str):
    bot = Bot(token="BOT_TOKEN")
    await bot.send_message(chat_id, f"⚠️ {url} не отвечает больше 2 минут")
    await bot.session.close()

asyncio.run(notify_down(-1001234567890, "https://example.ru"))

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Мониторинг интернет-магазина: checkout, эквайринг и СДЭК отдельно от главной страницы

Для e‑commerce одного монитора на главную страницу мало. Реальный путь клиента - это каталог, корзина, форма оплаты и расчёт доставки, и каждый узел может упасть независимо от остальных. На проекте с WooCommerce и приёмом оплаты через Т‑Банк я разносил это на отдельные проверки: keyword-монитор на странице оплаты (ищет кнопку «Оплатить», а не просто статус 200), отдельный HTTP-монитор на эндпоинт вебхука эквайринга с ожиданием ответа быстрее 2 секунд, и монитор на доступность API СДЭК для расчёта стоимости доставки - эта интеграция падает чаще самого сайта, потому что зависит от стороннего сервиса.

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

Автоматизация реакции на падение: n8n, эскалация и логирование инцидентов

Простой алерт в Telegram решает проблему, только если кто-то читает чат в 3 часа ночи. На практике я строю сценарий в n8n: вебхук от UptimeRobot или Uptime Kuma триггерит workflow, который сначала пишет в общий чат, а если через 10 минут инцидент не подтверждён вручную (нет реакции в чате), эскалирует дальше - звонок через сервис телефонии или SMS ответственному. Туда же добавляю запись инцидента с таймстампом и длительностью простоя в таблицу на своём сервере - это удобно для разбора причин падений раз в месяц и для отчёта клиенту, если есть SLA по договору.

По деньгам ориентир такой: настройка сценария в n8n с эскалацией и логированием - от 25 000 ₽, отдельный Telegram-бот под нестандартную логику уведомлений - от 30 000 ₽, а если весь мониторинг завязан на собственный скрипт на Python вместо готового сервиса - от 20 000 ₽. Для проектов, где мониторинг уже настроен, но нужно, чтобы кто-то реагировал на алерты и разбирался в причинах, беру на техподдержку от 15 000 ₽/мес.

Чтобы сайт работал без сбоев

Техподдержка

от 15 000 ₽/мес

Подробнее →

Частые вопросы

Какой интервал проверки выбрать для мониторинга аптайма

Для большинства сайтов достаточно 5 минут - этого хватает, чтобы заметить падение до того, как о нём напишут в отзывах. Для checkout и платёжных вебхуков ставлю 1 минуту, потому что каждая минута простоя оплаты - это упущенные заказы прямо сейчас, а не абстрактная метрика.

Бесплатных сервисов достаточно или нужен платный тариф

Для одного лендинга или небольшого сайта UptimeRobot на бесплатном тарифе закрывает задачу полностью. Платный тариф или self-hosted Uptime Kuma нужен, когда мониторов больше десятка, требуется интервал короче 5 минут или важна статус-страница для клиентов.

Как отличить реальное падение сайта от разового сбоя сети

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

Нужно ли мониторить сайт, если хостинг уже обещает SLA 99,9%

SLA хостинга покрывает только доступность сервера, а не корректность работы сайта, эквайринга или сторонних интеграций вроде СДЭК. Я видел сервера с идеальным аптайм-отчётом хостинга, при этом сам сайт отдавал ошибку PHP несколько часов подряд - SLA дата-центра тут ни при чём.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно