Мониторинг из нескольких сетевых точек без ложной массовой аварии
Один неуспешный маршрут не доказывает падение сервиса. Для автоматической реакции нужны независимые сигналы и защита от одновременного переключения всей группы.
Главное за минуту
- Решение должно учитывать масштаб: одна прокси, одна локация или весь сервис.
- Массовое действие требует кворума и лимита одновременных замен.
- Кворум формируют действительно независимые маршруты и проверки.
- Массовый сбой переводит автоматику в паузу, а не ускоряет замены.
Независимые проверки
Используйте минимум два разрешённых endpoint и, для критичного решения, вторую сетевую точку. Совпадение отказов повышает уверенность.
Независимость означает разные сетевые маршруты и разные диагностические цели, а не два запроса из одного процесса. Присвойте каждому probe ID и сохраняйте одну временную шкалу с погрешностью синхронизации часов. Для пользовательского пути проверяйте код и безопасный признак содержимого; простой TCP-connect подтверждает только доступность порта и не доказывает работоспособность сервиса.
Классификация сбоя
Отдельно отмечайте DNS, TCP, TLS, HTTP-код, содержание ответа и превышение времени. Это помогает определить слой проблемы.
Сформируйте модель состояний: healthy, degraded, local_path_failure, destination_failure и unknown. Переход выполняйте только после заданного числа последовательных сигналов в окне, сохраняя исходные DNS, TCP, TLS и HTTP результаты. Не объединяйте timeout и содержательно неверный ответ в одну ошибку: они требуют разных ответственных, алертов и способов восстановления.
Предохранитель массовой реакции
Если за короткое время падает большая доля одной локации, приостановите автоматические замены, продолжайте диагностику и уведомите оператора.
Предохранитель учитывает размер клиента и локации. Например, при одновременном отказе значимой доли пула за короткое окно автоматическая замена ставится на паузу, а разрешается только небольшой canary. Точные проценты выбирают по истории и ёмкости, но лимит одновременных действий задают заранее. Ручное снятие паузы требует подтверждения второй точкой и записи причины.
Постепенное восстановление
После подтверждения восстановления включайте небольшой canary-набор, затем расширяйте обработку партиями. Фиксируйте число успешных и неуспешных проверок.
Восстановление начинайте с малого контрольного пакета. Например, 1–5% затронутого пула может служить отправной точкой, но это не универсальная норма: размер определяют по ёмкости, стоимости ошибки и риску клиента. После полного цикла проверки выдержите наблюдаемое окно и только затем увеличивайте пакет. Отслеживайте долю повторного отказа, время восстановления и число замен на одну аренду. При ухудшении остановитесь и верните последнюю безопасную политику, не запускайте встречные массовые переключения.
Практический чек-лист
- 1Используйте два независимых endpoint.
- 2Добавьте порог массового сбоя.
- 3Восстанавливайте партиями через canary.
- 4Опишите состояния и условия переходов.
- 5Задайте canary и окно наблюдения.
Источники и документы
Материал подготовлен по первичным, официальным и техническим источникам. Формулировки статьи являются самостоятельным изложением.