Мониторинг аптайма для интернет-магазина
Коротко. Для интернет-магазина мониторьте не только главную, но и корзину, оформление заказа, оплату и API документацию склада — именно там теряются деньги. Ставьте интервал проверки 1 минуту, проверки из нескольких регионов и алерты в Telegram и на email одновременно. Каждая минута недоступности в пик распродажи — это упущенные заказы и подорванное доверие покупателей.
Почему простой магазина дороже, чем кажется
Когда падает обычный сайт-визитка, вы теряете немного трафика. Когда падает интернет-магазин — вы теряете прямую выручку в реальном времени. Покупатель, который не смог оформить заказ, чаще всего не возвращается: он уходит к конкуренту и забывает про вас. Хуже того, проблема может быть незаметной для вас самих — главная страница открывается, но страница оплаты возвращает 500-ю ошибку, и заказы тихо не доходят.
Главная страница «зелёная» — это не значит, что магазин работает. Проверяйте именно те страницы, через которые проходят деньги: корзину, чекаут и колбэк платёжного шлюза.
Что именно мониторить в e-commerce
Магазин — это цепочка из нескольких критичных звеньев. Достаточно одного разрыва, чтобы заказы перестали проходить. Вот минимальный набор:
| Что мониторить | Тип проверки | Почему критично |
|---|---|---|
| Главная страница | HTTP, ожидаем 200 | Первое впечатление, SEO-трафик |
| Каталог / категория | HTTP, 200 + время отклика | Медленный каталог = брошенные сессии |
| Корзина | HTTP, 200 | Без корзины нет заказов |
| Страница оформления | HTTP, 200 | Самое узкое место воронки |
| Платёжный колбэк / API | HTTP-эндпоинт, JSON | Тихие потери оплат |
| проверку SSL | SSL-мониторинг сайтов | Истёк сертификат = браузер блокирует магазин |
| Складское / 1С API | HTTP health-check | Остатки и резервы товара |
Какой интервал проверки выбрать
Чем дороже минута простоя, тем чаще нужно проверять. Для контентного блога хватит 5 минут, но для магазина с потоком заказов это слишком много: за 5 минут в пик можно потерять десятки заявок, прежде чем вы вообще узнаете о проблеме.
- Бесплатный план enterno.io — проверка раз в 5 минут, до 10 мониторов. Подходит для старта.
- Pro — раз в 1 минуту. Рекомендованный минимум для активного магазина.
- Business — раз в 30 секунд. Для крупных магазинов с распродажами и высоким GMV.
Правило большого пальца: интервал проверки должен быть не больше, чем вы готовы потерять денег за один цикл простоя.
Проверяйте health-эндпоинт, а не только главную
Лучший сигнал «всё работает» — это отдельный health-эндпоинт, который внутри проверяет базу данных, кэш и связь с платёжным провайдером, и возвращает простой JSON. Тогда мониторинг ловит реальные сбои бэкенда, а не только то, что nginx отдаёт страницу.
Пример лёгкого health-эндпоинта на PHP, который проверяет БД и Redis:
<?php
// /health.php — отдавать только 200, если всё живо
header('Content-Type: application/json');
$ok = true; $checks = [];
try { $pdo->query('SELECT 1'); $checks['db'] = 'ok'; }
catch (Throwable $e) { $checks['db'] = 'fail'; $ok = false; }
try { $redis->ping(); $checks['redis'] = 'ok'; }
catch (Throwable $e) { $checks['redis'] = 'fail'; $ok = false; }
http_response_code($ok ? 200 : 503);
echo json_encode(['status' => $ok ? 'up' : 'down', 'checks' => $checks]);
Теперь монитор на этот URL с ожидаемым кодом 200 будет падать ровно тогда, когда отвалится база или кэш — а не когда «вроде открывается».
Если у вас нет доступа к коду, можно проверить отдачу вручную через консоль:
curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" https://shop.example.com/health
Алерты: куда и кому
Мониторинг без оповещений бесполезен. enterno.io отправляет алерты в Telegram, Slack, на email, через webhook, в PagerDuty и Jira. Для магазина практичная схема:
- Telegram — мгновенно, в рабочий чат команды. Видно за секунды.
- Email — дубль, чтобы не потерялось, если Telegram под рукой нет.
- Webhook / PagerDuty — для ночных инцидентов с эскалацией дежурному.
Настройте порог инцидента в 2–3 подряд неудачные проверки, чтобы единичный сетевой сбой не будил всю команду. Подробнее о настройке порогов — в гайде по лучшим практикам оповещений.
Многорегиональные проверки и статус-страница
enterno.io проверяет сайт из России, Европы и США. Это важно: магазин может быть доступен из дата-центра в Москве, но недоступен для покупателей из ЕС из-за проблем с CDN или маршрутизацией. Многорегиональный мониторинг ловит такие частичные сбои.
Публичная статус-страница (можно на своём домене, например status.shop.ru) снимает нагрузку с поддержки во время инцидента: покупатели сами видят, что вы в курсе и чините.
Частые вопросы
Какой аптайм считается нормальным для магазина?
Ориентир — 99,9% и выше, это около 43 минут простоя в месяц. Для крупных магазинов в пик цель 99,95%+. Отслеживать соответствие цели удобно через расчёт SLA по аптайму.
Достаточно ли мониторить только главную страницу?
Нет. Заказы теряются на чекауте и оплате, а не на главной. Минимум — главная + корзина + оформление заказа + health-эндпоинт бэкенда.
Что делать с ложными срабатываниями?
Поднимите порог инцидента до 2–3 неудачных проверок подряд и используйте многорегиональную проверку — реальный сбой обычно виден из нескольких регионов сразу.
Как мониторить оплату, не делая реальных покупок?
Проверяйте доступность платёжного колбэка/эндпоинта и его JSON-ответ. Для глубоких проверок добавьте отдельный health-маршрут, который Ping инструмент API провайдера в тестовом режиме.
Начать мониторинг — бесплатно →
Смотрите также: полный гайд по мониторингу аптайма и как проектировать health-check эндпоинты.