
Как узнавать о сбоях раньше, чем позвонит клиент
Между поломкой и моментом, когда о ней узнали, проходило два дня
DevOps и инфраструктура
Сообщение в мессенджер в тот момент, когда сайт или сервис перестал работать, — а не в понедельник от клиента. Ставим на ваш сервер, без абонентской платы.
Между поломкой и звонком клиента обычно проходит слишком много времени. Мы делаем так, чтобы вы узнавали о ней первым — сообщением в тот же мессенджер, где переписываетесь с сотрудниками.
Сайт перестал открываться в субботу вечером. Или зависла программа, через которую принимаются заявки. Или отвалилась оплата, и деньги просто не приходят.
Никто этого не замечает: вечер, выходной. В понедельник выясняется, что два дня не было ни одной заявки. Сколько клиентов за это время ушло к конкурентам, узнать уже невозможно.
Что при этом теряется:
Посчитать это можно самому: возьмите свою среднюю выручку за день и умножьте на число дней, которое ваш сайт способен пролежать незамеченным в выходные. Это и есть цена одного пропущенного сбоя.
Проблема не в том, что что-то сломалось. Ломается у всех. Проблема в том, сколько времени прошло между поломкой и моментом, когда о ней узнали.
Ставим на ваш сервер систему, которая следит за сервисами и присылает сообщение, когда что-то перестало работать. Не «сервер номер три, ошибка 502», а человеческим языком: что именно сломалось и когда.
Дальше — три вещи, которые обычно не делают, а зря.
Отсеиваем лишнее. Сервер сообщает о сотнях мелких событий в сутки. Если пересылать всё, через неделю уведомления перестают читать — и настоящую поломку пропускают вместе с остальным шумом. До людей доходит только то, на что надо реагировать.
Не отправляем одно и то же дважды. Если сервис перезапускается десять раз подряд, приходит одно сообщение, а не десять.
Держим всё у себя. Наблюдение и доставка работают внутри вашей инфраструктуры. Ни один посторонний сервис не видит, что происходит внутри компании.
Мы это используем сами. У нас на серверах работает около десяти программ, и уведомления о сбоях настроены на все. Это не пересказ документации: мы описываем то, что чиним, когда оно ломается. Кейс с подробностями — внизу страницы.
Уведомления не превращаются в шум. Отсев лишнего и защита от повторов входят в базовую настройку. Система, на которую перестали смотреть, хуже, чем её отсутствие: на неё продолжают рассчитывать.
Всё внутри вашего контура. Никакой сторонней панели, которая знает, что у вас падает и как часто. Данные о состоянии сервисов не покидают вашу инфраструктуру.
Без абонентской платы. Вы платите за настройку и за сервер, а не помесячно за чужой сервис, счёт которого растёт вместе с числом проверок.
Правила меняются без переписывания кода. Фильтры, адресаты и тексты живут в настройках, а не в программе, — поменять их можно быстро и без выкладки новой версии.
Если реагировать всё равно некому. Уведомление не чинит, оно сообщает. Если ночью и в выходные никто не подойдёт к серверу, сначала стоит договориться, кто это делает: свой человек, мы по обращению или никто. Третий вариант превращает уведомления в ленту сообщений о том, что всё сломалось, и разницы с их отсутствием не будет.
Если сервис один и он на готовом хостинге. У хостера обычно есть встроенное оповещение. Оно хуже, но бесплатное и его хватает. Мы нужны там, где сервисов несколько и они связаны между собой.
Если нужно круглосуточное дежурство с гарантией времени реакции. Мы настраиваем систему, которая сообщает о сбое, и чиним по обращению — но дежурства со сменами и обещанным временем ответа у нас нет. Если оно нужно по договору, мы не тот исполнитель, и лучше знать это сейчас.
Если задача — графики и отчёты за год. Хранение метрик и дашборды — соседняя история со своей стоимостью. Её обсуждаем отдельно и не выдаём за мониторинг сбоев.
Базовая сборка на одном сервере — от двух-трёх дней. Набор правил под несколько систем со своими сценариями реакции — от недели. Точный срок называем после разбора.
Считается по числу сервисов, за которыми надо следить, и по тому, нужна ли гибкость: набор фиксированных проверок стоит дешевле, чем система, где правила меняются под каждую ситуацию.
Отдельная статья — сервер. Если своего нет, нужен небольшой VPS; если сервер уже есть, чаще всего хватает его.
Прайса не публикуем: «десять сервисов» у одной компании и у другой различаются по объёму работы в разы. Разбор и точная смета — в течение рабочего дня, бесплатно.
События берутся из того, что уже есть: состояние контейнеров Docker или Docker Swarm, коды ответа сервисов, результат заданий по расписанию. Доступ к сокету Docker идёт через docker-socket-proxy и ограничен эндпоинтами чтения — сам сокет в контейнер не монтируется.
Поток событий уходит на вебхук n8n, и вся логика фильтрации, дедупликации и форматирования живёт в воркфлоу, а не в коде сервиса: правила меняются без пересборки и передеплоя. Там, где нужен нестандартный источник, пишется небольшое приложение-пересыльщик.
Доставка — в Telegram или в собственный Matrix (Synapse) в том же кластере. Ingress и TLS — Traefik, наружу открыт только прокси. Учётные данные подключений хранятся в secrets, а не в переменных окружения. Сценарии выгружаются файлом и попадают в репозиторий вместе с остальной конфигурацией.
Если вы не знаете, работает ли ваш сайт прямо сейчас, — это и есть ответ. Напишите, что у вас развёрнуто. Посмотрим, что уже можно наблюдать без переделок, и скажем, что стоит настроить в первую очередь. Бесплатно.
Они смотрят снаружи и видят только главную страницу. Упавшая очередь заказов, не прошедшая ночная копия базы, кончающееся место на диске — для них ничего не происходит. Плюс данные о ваших сбоях уходят на чужой сервер.
Да, но сервер понадобится — небольшой. Поможем арендовать, он будет оформлен на вас.
Именно за этим и нужны фильтры. Мы настраиваем их сразу и после первой недели работы правим по факту: что-то оказывается неважным, что-то наоборот.
Обычно в Telegram — он есть у всех. Можно в собственный рабочий чат на вашем сервере, если переписка не должна выходить наружу, или на почту. Разным людям можно слать разные события.
К системе идёт инструкция: что означает каждое уведомление и с чего начинать. Если чинить некому, приходите к нам — чиним по обращению, время реакции при этом не гарантируем и не делаем вид, что гарантируем.
Обычная история: он показывает всё сразу и требует, чтобы кто-то на него смотрел. Мы настраиваем обратное — молчание, пока всё в порядке, и короткое сообщение, когда нет. Существующую систему при этом чаще всего можно оставить и использовать как источник событий.

Между поломкой и моментом, когда о ней узнали, проходило два дня