Multi-region проверка сбоев

4 мин чтения · Продвинутые мониторы

Когда мониторинг работает только из одной точки, кратковременный сбой маршрутизации у нашего интернет-провайдера может разбудить вас в три часа ночи ложной тревогой. Проверка из нескольких регионов (multi-region) решает эту проблему: сбой подтверждается только тогда, когда о нём сообщает основной сервер и хотя бы один резервный в другом регионе или у другого интернет-провайдера.

Как это работает

  1. Основная проверка (с нашего центрального сервера) сообщает DOWN (недоступно).
  2. Перед отправкой уведомления система вызывает резервный воркер в другом регионе.
  3. Воркер выполняет собственный тест и обычно в течение нескольких секунд возвращает UP или DOWN (зависит от таймаута монитора).
  4. Если резервный воркер также подтверждает DOWN, монитор помечается как недоступный и отправляются уведомления.
  5. Если основной сервер сообщил DOWN, а резервный вернул UP, это была ложная тревога (по-английски flake) - уведомление не отправляется.

Когда запускается консенсус

Проверка из нескольких регионов вызывается не при каждой проверке, а только в чётко определённых случаях, чтобы не замедлять обычные измерения:

  • Основной сервер (primary) сначала выполняет собственную проверку, включая внутренние повторы (2 попытки с короткой паузой).
  • Консенсус запускается только тогда, когда основной сервер и после повтора сообщает DOWN. Если всё в порядке, резервные регионы вообще не вызываются.
  • Это относится только к мониторам типа http (без многошаговых сценариев), tcp и ping. Остальные типы (ssl, dns, домен, визуальный, heartbeat) его не используют.

Как принимается решение о сбое

После того как основной сервер сообщает DOWN, система запрашивает независимую проверку у доступных резервных воркеров в других регионах. По результатам она подсчитывает, сколько точек подтвердили сбой:

  • Монитор помечается как недоступный только тогда, когда количество сообщений DOWN достигает заданного порога (по умолчанию 2 региона, включая основной).
  • Если порог не достигнут (например, основной сообщил DOWN, а резервный UP), это ложная тревога: монитор остаётся в состоянии UP и уведомление не отправляется. В качестве времени отклика используется среднее по регионам, ответившим корректно.
  • Резервный воркер, который в данный момент не отвечает, тихо пропускается и не учитывается в голосовании.

Кто и как это включает

Проверка из нескольких регионов - это необязательная функция уровня всей платформы, которой управляет администратор ePulz.io. Регионы не фиксированы: администратор добавляет резервные воркеры по мере необходимости (например, основной сервер плюс один или два облачных узла в других странах) и задаёт, сколько из них должны подтвердить сбой.

Как это отображается в интерфейсе

В деталях монитора при сбое, прошедшем консенсус, вы видите результат проверки из каждой точки, например:

consensus: primary:down, eu1:down
result: DOWN (2 of 2 confirmed)

На публичной странице статуса посетители не видят никаких технических деталей: они получают только проверенный, достоверный статус сервиса без ложных тревог.

Публичная страница статуса ePulz.io с полосами uptime и статусом сервисов
На публичной странице статуса отображается только проверенный статус: многорегиональная проверка фильтрует ложные сбои за кулисами

Практические последствия

  • Меньше ложных уведомлений: кратковременный сбой на маршруте к одному провайдеру отфильтровывается проверкой из другого региона.
  • Немного большее время обнаружения: при подтверждении сбоя добавляется несколько секунд по сравнению с измерением только из одной точки.
  • Более надёжная история: в инциденты и статистику доступности записываются только реальные сбои, а не локальные сетевые колебания.
Совет: Многорегиональная проверка особенно выгодна для критичных публичных сервисов, где важна точность uptime и вы не хотите будить команду ложными тревогами. Для внутренних мониторов в локальной сети лучше решайте это через LAN-агент.
Было ли это руководство полезным?