Аптайм 99.9%: как настроить мониторинг доступности сайта
Аптайм 99.9% — это около 43 минут простоя в месяц и не «хороший хостинг», а система. Что мониторить, какими инструментами, как настроить healthcheck и алерты в Telegram и как реагировать на инцидент.
«У нас всё работает» — фраза, которую владелец сайта произносит, глядя на свой экран. Проблема в том, что его экран показывает закэшированную страницу, а реальные клиенты в этот момент видят 502. Без мониторинга о падении узнают последними — из звонка недовольного клиента или из просевшей выручки. Разберём, как настроить наблюдение, чтобы узнавать о проблеме первым.
Что такое аптайм и почему 99.9% — это не 100%
Аптайм — доля времени, когда сайт доступен. Считается в «девятках»:
- 99% — до 7 часов простоя в месяц. Для бизнеса это много.
- 99.9% («три девятки») — около 43 минут в месяц. Рабочий ориентир для коммерческого сайта.
- 99.99% — 4,5 минуты в месяц. Требует резервирования и стоит заметно дороже.
SLA хостинга обычно обещает 99.9% на инфраструктуру. Но SLA провайдера не покрывает ваш кривой деплой, забитый диск или упавшую базу — это ваша зона ответственности, и именно её закрывает мониторинг.
Что именно мониторить
Пинга недостаточно: сервер отвечает на ICMP, а сайт при этом отдаёт 500. Минимальный набор проверок:
- HTTP-код главной и ключевых страниц — ждём 200, а не 3xx/5xx.
- Время ответа — рост с 200 мс до 3 с это тревога ещё до падения.
- Содержимое — на странице есть ожидаемое слово, а не заглушка хостера.
- Срок SSL — предупреждение за 14 дней до истечения.
- Ресурсы сервера — свободное место на диске, CPU, RAM.
- База данных — соединение открывается, запрос выполняется.
Инструменты: от UptimeRobot до Prometheus
Выбор зависит от масштаба:
- UptimeRobot, Uptime Kuma — внешние пинговалки HTTP. Ставятся за 10 минут, проверяют доступность «снаружи». Kuma можно поднять на своём сервере в РФ.
- Яндекс Мониторинг, встроенные проверки хостинга — базовый уровень, часто уже включён в панель.
- Prometheus + Grafana — для метрик изнутри: диск, память, БД, свои показатели. Дашборды и гибкие правила алертов.
Ключевой принцип — проверять и снаружи (доступен ли сайт миру), и изнутри (что с ресурсами).
Healthcheck-эндпоинт
Отдельная страница /health, которая проверяет не «отвечает ли PHP», а живы ли зависимости: база, кэш, диск.
<?php
// /health.php
$db = @mysqli_connect('localhost','u','p','db');
if (!$db) { http_response_code(503); exit('db down'); }
echo 'ok';
Мониторинг дёргает /health и видит реальное состояние стека, а не просто факт, что веб-сервер запущен.
Алерты в Telegram
Уведомление должно приходить туда, где вы его увидите ночью. Почта для этого плоха — Telegram-бот надёжнее. UptimeRobot и Grafana умеют слать в Telegram из коробки; вручную это одна строка:
curl -s "https://api.telegram.org/bot<TOKEN>/sendMessage" -d chat_id=<ID> -d text="site DOWN: 502 on /"
Настройте разные уровни: «сайт лёг» — немедленно, «диск на 85%» — предупреждение в рабочее время.
Как реагировать на алерт
Мониторинг без регламента — просто источник тревоги. Договоритесь заранее:
- Кто дежурит и получает алерт первым.
- Первые действия: проверить внешней пинговалкой (не мой ли это интернет), глянуть логи, диск, статус сервисов.
- Порог эскалации: если за N минут не подняли — звоним в поддержку хостинга или подрядчику.
Чеклист и вывод
- Внешняя проверка HTTP-кода и контента каждые 1-5 минут.
- Внутренние метрики: диск, RAM, CPU, БД.
- Healthcheck-эндпоинт, проверяющий зависимости.
- Контроль срока SSL с запасом 14 дней.
- Алерты в Telegram с разделением по важности.
- Написанный регламент реагирования.
99.9% аптайма — это не «хороший хостинг», а система: внешние и внутренние проверки, честный healthcheck, быстрые алерты и регламент. Настроить и передать вам на сопровождение можем мы — настроим мониторинг доступности и алерты под ваш сайт, чтобы о проблеме вы узнавали за минуты до клиентов.