О сбое узнаёте от клиентов
Сервер отвечает, но оформление заказа падает, и первым это замечает менеджер, которому позвонили. Проверка «жив ли процесс» не видит поломку в одном сценарии.
Мониторинг веб-сервиса отвечает на два вопроса: работает ли он для пользователя сейчас и где искать причину, если нет. Делаем это в коде и конфигурации вашего сервиса: метрики по запросам и очередям, журналы с общим идентификатором запроса, трассировка и оповещения по симптомам. Данные остаются в вашем контуре. Это не охранная система и не дежурная смена: мы строим то, по чему ваша команда сама увидит сбой и найдёт причину.
Обследование — 200 000 ₽, вычитается из первого этапаМетрики, журналы и трассы хранятся на ваших серверахИсходный код и настройки в вашем репозитории с первого коммита
Сервер отвечает, но оформление заказа падает, и первым это замечает менеджер, которому позвонили. Проверка «жив ли процесс» не видит поломку в одном сценарии.
Загрузка процессора видна, а в каком запросе, в какой системе и после какой выкладки всё замедлилось, неизвестно.
Чтобы понять, что случилось с одним заказом, нужно зайти на три машины и склеить строки по времени. Общего идентификатора запроса нет.
Сообщений много, половина ложные, у части нет владельца. Через месяц чат с тревогами отключают, и настоящий сбой проходит незамеченным.
Наблюдаемость — способность по сигналам сервиса ответить на вопрос, которого заранее не придумали.
Условный пример.
Менеджер пишет, что клиенты не могут оформить заказ. Без наблюдаемости начинается перебор: заходят на серверы, читают файлы, перезапускают процесс «на всякий случай». С настроенными сигналами порядок другой.
Каждый шаг требует подготовки в коде: правило привязано к сценарию, метрики разбиты по маршрутам, идентификатор проходит через вызовы, выкладка оставляет отметку. Нет одного звена, и поиск возвращается к перебору. Поэтому начинаем со сценариев, а не с инструментов.
Заготовка для разбора. Порогов не называем: их задают по замерам вашей нагрузки.
Журнал — это данные для поиска, а не дневник приложения.
Событие пишется структурой (например, JSON), а не предложением. В строке есть время, уровень, идентификатор запроса, название сервиса и версия, организация или пользователь в безопасной форме, код результата. Поиск «все ошибки одной организации за вчера» тогда выполняется запросом, а не чтением глазами.
Входящий запрос получает идентификатор на первом сервисе. Он попадает в каждую строку журнала, в заголовок вызова следующего сервиса, в сообщение очереди и в ответ клиенту, чтобы пользователь мог назвать его в обращении. Без этого журналы разных частей не связать.
Будим человека, когда пользователь не может оформить заказ, а не когда процессор нагружен. Причины остаются на панелях для разбора.
В сообщении указано, что сломано для пользователя, кто отвечает и что проверить первым. Правило без владельца удаляется.
Срочные идут сразу тому, кто может действовать, остальные собираются в ежедневный список.
Раз в квартал мы нарочно ломаем стенд и смотрим, сработало ли правило и понял ли получатель, что делать. Нерабочее правило хуже его отсутствия.
Полный набор нужен не всем: лишний инструмент надо обновлять и защищать.
Цены совпадают со страницей «Тарифы». Точная цена называется только у обследования, остановиться можно после любой ступени.
Сценарии, критический путь, что видно сейчас и чего не видно, цели, план внедрения сигналов. Вычитается из первого этапа, если продолжаете с нами.
Сервис вместе с базой, очередями, 1С и внешними обменами: где обрывается идентификатор запроса и кто за что отвечает.
Метрики, структурные журналы с идентификатором, панели по сценариям и оповещения по симптомам. Хранилище на вашем сервере, инструкция.
Сквозная трассировка через сервисы, очереди и внешние вызовы, панели по зависимостям, учения по оповещениям, регламент реакции.
Наблюдаемость как часть вывода продукта: все сервисы, цели по надёжности, регламент учений, передача команде.
Развитие панелей и правил, пересмотр порогов, разбор инцидентов. Сверх пакета — 5 000 ₽ в час.
Выписываем, что должен уметь пользователь, и для каждого сценария отвечаем: увидим ли поломку и за какое время. Смотрим, где теряется идентификатор запроса.
Записываем, что считается сбоем и какие значения нормальны, согласуем получателей оповещений и порядок реакции. Это решения вашей команды.
Подключаем сбор метрик, структурные журналы и трассировку в вашем репозитории. Панели и правила хранятся как код.
Нарочно останавливаем базу, замедляем внешнюю систему, роняем обработчик. Проверяем, сработали ли правила и хватает ли сигналов для поиска причины.
Сначала правила работают без рассылки, мы смотрим на ложные срабатывания, потом включаем отправку.
Инструкция по панелям, правилам и хранилищам; пересмотр порогов раз в квартал в сопровождении.
Если журнал пишется свободным текстом из разных мест, первые недели уходят на приведение его к структуре, а не на панели.
Каждая очередь, внешний вызов и сервис, где может оборваться идентификатор, добавляет работы.
В закрытом периметре хранилища и доступ к панелям согласуются со службой безопасности, и сроки растут.
Если после оповещения никто не отвечает за действия, пользы не будет. Порядок мы оформляем, выполнять его будет ваша команда.
Мониторинг веб-сервиса встраивается в сам сервис и его окружение: сигналы, панели, правила. Принять чужую систему на постоянное обслуживание и разбирать инциденты — другая услуга, сопровождение ПО; на практике они идут вместе, но договор и пакет часов разные. Если сервис ещё не написан, наблюдаемость закладывается в разработку веб-сервиса с начала, и это дешевле.
Если сервис не выдерживает пик, начинать надо с высоконагруженного сервиса. Если он должен пережить отказ узла или базы, смотрите отказоустойчивый веб-сервис: там оповещения запускают переключение, а здесь лишь сообщают о нём.
Безопасность — отдельная тема. Журналы приложения помогают разбирать события, но не заменяют систему обнаружения вторжений; о защите кода — безопасная разработка веб-приложений. Порядок сигналов описан в статье «Что измерять в веб-сервисе».
Какой сигнал отвечает на какой вопрос и какие поля нужны в журнале. Пригодится до выбора инструментов.
Что считать сбоем и как измерить доступность.
Если в сервисе работает модель, добавляются дрейф и качество ответов.
Сорок минут созвона: как сервис устроен и как о сбое узнаёте сейчас. По итогам скажем, какой набор сигналов нужен и с какой ступени начинать.
Обследование стоит 200 000 ₽ за один сервис и 350 000 ₽ за несколько систем. Лёгкий пилот (метрики, журналы и оповещения для одного сервиса) — 150 000–400 000 ₽ за 2–8 недель, тяжёлый (сквозная трассировка) — 400 000–1 200 000 ₽ за 2–3 месяца. Работы дешевле 150 000 ₽ не берём.
Обычный мониторинг проверяет известные условия: жив ли сервер, не заполнен ли диск. Наблюдаемость позволяет ответить на вопрос, которого не ждали: почему заказы одной организации падают после выкладки. Для этого нужны метрики, структурные журналы и трассы с общим идентификатором запроса.
Чаще всего нет. В одном процессе хватает журнала с идентификатором запроса и метрик по маршрутам. Трассировка оправдана, когда запрос идёт через несколько сервисов, очередей или внешних систем и время теряется на стыках.
Да. Хранилища, панели и доставка оповещений разворачиваются на ваших серверах, обновления идут по вашей процедуре. Облачные панели не рекомендуем, если в сигналах могут оказаться данные ограниченного доступа: внешние сервисы им обычно не подходят по требованиям заказчика.
Не в рамках этой услуги: мы настраиваем правила и порядок реакции, а сообщения получает ваша команда. Разбор инцидентов в рабочее время можно взять в сопровождение: 20 000, 60 000 или 120 000 ₽ в месяц, до 4, 12 или 25 часов, сверх пакета 5 000 ₽ в час. Круглосуточной смены у нас нет.
Нет. Мониторинг сервиса показывает, что он работает и где ломается. Обнаружение атак и расследование делаются другими средствами, услуг SIEM, WAF и IDS мы не оказываем. Журналы приложения могут быть источником для такой системы, если она у вас есть.
Небольшую нагрузку они добавляют, и её надо измерять. На пилоте сравниваем время ответа с сигналами и без них на вашей нагрузке, трассы пишем с выборкой, а метки метрик ограничиваем. Если накладные расходы заметны, сокращаем набор.
Вам. Панели, правила, конфигурация сбора и исходный код лежат в вашем репозитории с первого коммита. Результат передаётся по акту, порядок передачи прав записан в договоре; открытые компоненты остаются под своими лицензиями.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.