Большинство владельцев сайтов узнают о проблемах от клиентов. Форма перестала отправлять заявки — узнали через неделю, потеряв заказы. Хостинг уронил сервер — узнали от клиента, который написал в гневе. Диск переполнился и база данных перестала писать — узнали, когда сайт полностью отвалился.
Хорошая новость: большинство этих проблем можно поймать на раннем этапе — за минуты или часы до того, как они станут катастрофой. Нужна система мониторинга. Это не «приятная опция», а базовая инфраструктура любого серьёзного сайта.
Вы узнаёте о проблемах первым — не клиент. Вы понимаете, почему сайт тормозит или падает. Вы видите тренды: становится ли нагрузка выше, заканчивается ли место на диске, растёт ли число ошибок. Всё это — до того, как это ударит по бизнесу.
1. Четыре уровня мониторинга
Мониторинг — это не одна система, а слои. Каждый следующий ловит проблемы, которые не видны предыдущему. Начинать можно с первого уровня, но для серьёзного проекта нужны все четыре.
- Uptime-мониторинг. Работает ли сайт вообще. Самое простое и обязательное. Проверяет доступность каждую минуту и присылает алерт при падении.
- Метрики сервера. Загрузка процессора, память, диск, сеть. Позволяют увидеть приближение проблемы: место на диске заканчивается, нагрузка растёт.
- Метрики приложения. Сколько запросов в секунду, какая средняя задержка, какой процент ошибок 5xx. Это уже про качество работы, а не про «работает или нет».
- Ошибки в коде. Исключения в PHP, Python, Rust, JavaScript — всё, что падает, но не роняет сервер. Клиент видит «пустой экран», вы — ничего. Sentry закрывает именно эту слепую зону.
2. Uptime-мониторинг: базовый уровень
Это то, с чего начинают все. Сервис раз в минуту делает HTTP-запрос на ваш сайт и проверяет код ответа. Если ответ не 200 — приходит алерт в Telegram, SMS, email.
Что выбрать: для простых случаев достаточно UptimeRobot или Better Stack. Оба дают бесплатный тариф с проверкой каждые 5 минут и 50 мониторов. Если нужны проверки каждую минуту и неограниченные алерты — платный тариф стоит символических денег.
Что проверять:
- Главную страницу — она всегда должна отдавать 200.
- Страницу с формой заявки — она критична для бизнеса.
- Страницу авторизации, если есть личный кабинет.
- API-endpoint, если сайт — это приложение с бэкендом.
3. Метрики сервера: видеть приближение проблемы
Uptime-мониторинг скажет, что сайт упал. Метрики сервера — предупредят об этом заранее. Загрузка процессора 95% в течение часа — сигнал, что скоро что-то сломается. Свободное место на диске 5% — «через два дня база данных перестанет писать».
Стандартный стек — Prometheus для сбора метрик и Grafana для отображения. Prometheus раз в 15 секунд собирает данные с сервера, Grafana рисует графики в реальном времени. Если значение превышает порог — Prometheus через Alertmanager присылает алерт.
Что обязательно отслеживать:
# Пример правил для Prometheus
- alert: HighCPUUsage
expr: node_cpu_seconds_total{mode="idle"} < 10
for: 5m
annotations:
summary: "CPU загружен более 90% в течение 5 минут"
- alert: LowDiskSpace
expr: node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.10
for: 1h
annotations:
summary: "Свободно менее 10% места на диске"
- alert: HighMemoryUsage
expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.15
for: 10m
annotations:
summary: "Свободно менее 15% памяти"
Если не хочется поднимать Prometheus и Grafana, есть более лёгкие альтернативы — Netdata или Zabbix. Netdata устанавливается одной командой и сразу показывает красивые графики. Для одного сервера этого часто достаточно.
4. Метрики приложения: задержки и ошибки
Сервер работает, сайт открывается — но пользователи жалуются на медленную работу. Это уже не про uptime, а про качество. Здесь помогают метрики приложения:
- RPS (запросов в секунду). Сколько трафика держит приложение. Резкий рост — возможен наплыв или атака.
- Средняя и p95-задержка. p95 — это «95% запросов обрабатываются быстрее, чем X миллисекунд». Если p95 растёт — пользователи чувствуют замедление, даже если среднее в норме.
- Процент ошибок 5xx. 5xx — это «сервер сломался». Даже 1% — это серьёзно: из 1000 посетителей 10 увидели ошибку.
- Медленные SQL-запросы. Если запрос к базе выполняется больше секунды — это сигнал для оптимизации. Такие запросы обычно и есть причина медленной работы сайта.
5. Отлов ошибок: Sentry
Самая коварная категория проблем — ошибки, которые не роняют сайт. Пользователь нажал кнопку, форма не отправилась, он ушёл к конкуренту. В логах сервера — тишина. Sentry ловит именно такие случаи.
Sentry — это сервис для отлова ошибок в приложениях. Он подключается как библиотека в код, перехватывает исключения и отправляет их на сервер с полным контекстом: стек вызовов, значения переменных, браузер пользователя, URL страницы.
Как это выглядит в коде (Python):
import sentry_sdk
sentry_sdk.init(
dsn="https://...@sentry.io/...",
traces_sample_rate=0.1,
)
# Теперь любая непойманная ошибка
# автоматически отправится в Sentry
# с полным стеком вызовов
У Sentry есть облачная версия (Sentry.io) и self-hosted. Облако бесплатно до 5 000 ошибок в месяц — для большинства проектов хватит с запасом. Self-hosted требует сервер, но зато данные хранятся у вас.
Альтернативы: для маленьких проектов хватит простого логирования через error_log в PHP или tracing в Rust. Но Sentry даёт то, чего нет у обычных логов — группировку похожих ошибок, отправку алертов и удобный интерфейс для просмотра.
6. Алерты: куда и когда присылать
Мониторинг бесполезен, если алерты приходят в место, которое никто не проверяет. Или если их так много, что на них перестают обращать внимание.
Куда присылать:
- Telegram-бот или выделенный канал — для команды.
- SMS для критичных алертов — если сайт лежит ночью.
- Email — для дневных сводок и менее срочных уведомлений.
Мониторинг — это страховка. Стоимость настройки — несколько часов, стоимость сервисов — несколько сотен рублей в месяц. Стоимость часа простоя сайта для бизнеса с оборотом в 500 000 ₽ в месяц — примерно 700 ₽. Но проблема не в самих деньгах, а в упущенных клиентах, которые один раз не смогли оставить заявку и ушли к конкуренту.
Настроим мониторинг под ключ
Развернём систему мониторинга, настроим алерты в Telegram, научим реагировать на типовые проблемы. От 5 000 ₽ + поддержка.