CreateYourVPN Academy
Курс: как всё устроено

Мониторинг серверов и меш-сеть

Как CreateYourVPN следит за здоровьем серверов: самопроверки, меш-сеть взаимных проверок между серверами и автоматическое скрытие недоступных серверов от пользователей.

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

Два уровня проверок

Система смотрит на каждый сервер с двух сторон.

1. Сервер проверяет сам себя

Каждый сервер раз в несколько минут отчитывается: жив ли приёмник трафика на порту 443 и работает ли VPN-сервис. Вместе с отчётом приходят и метрики из урока 3. Если отчёт говорит «мне плохо» — сервер получает статус «Сервер недоступен». Если отчёты вовсе перестали приходить — статус «Нет данных от сервера»: возможно, машина выключена или потеряла сеть.

2. Серверы «простукивают» друг друга

Самопроверка не поймает главный коварный случай: сервер сам считает себя здоровым, но снаружи до него не достучаться — например, его IP заблокировали. Для этого все ваши серверы объединены в меш-сеть взаимных проверок: каждый сервер регулярно пробует достучаться до каждого соседа — так же, как это делало бы приложение пользователя.

Дальше работает «голосование»:

  • Один неудачный стук ничего не значит — мало ли, сеть мигнула. Считаются только устойчивые серии неудач.
  • Сервер помечается как «Недоступен из ваших серверов», только когда до него стабильно не могут достучаться несколько независимых серверов — единичное мнение не приговор.
  • Есть и защита от «сумасшедшего свидетеля»: если какой-то сервер вдруг заявляет, что не видит половину соседей, — скорее всего, проблемы у него самого, и его голоса не учитываются.

Именно эта схема ловит блокировки: если сервер заблокировали в стране, где стоят другие ваши серверы, — соседи из этой страны быстро перестанут до него достукиваться, наберётся кворум, и система пометит сервер недоступным. А серверы из других стран, где блокировки нет, продолжат его видеть — и по разнице мнений картина станет очевидной.

Что происходит с проблемным сервером

Статусы напрямую влияют на балансировку: серверы со статусами «Сервер недоступен» и «Недоступен из ваших серверов» исключаются из выдачи — новые подключения на них не направляются, и в подписках пользователей их место занимают здоровые серверы из тех же маршрутов.

При этом система осторожна — она построена по принципу «не навреди»:

  • Маршрут никогда не остаётся пустым. Если «плохими» оказались все серверы маршрута, система вернёт пользователям лучший из имеющихся вариантов, а не пустой список — иначе приложения решили бы, что серверов больше нет, и стёрли их.
  • Тишина — не приговор. Статус «Нет данных от сервера» сам по себе сервер из выдачи не убирает: без свежих данных система не делает резких движений.

Всё лечится само

Ни один из статусов не «прилипает» навсегда — состояние выводится заново из свежих данных:

  • сервер снова прислал здоровый отчёт → статус «Сервер недоступен» снимается;
  • соседи снова начали достукиваться → серия неудач обнуляется, и метка «Недоступен из ваших серверов» уходит;
  • возобновились отчёты → «Нет данных от сервера» исчезает.

Починили сервер (или его разблокировали) — он сам вернулся в строй. Никаких ручных «включить обратно».

Где это видно в панели

Откройте карточку любого пользователя → список его серверов: рядом с каждым сервером горит точка состояния, а при проблеме — подпись с причиной: «Сервер недоступен», «Недоступен из ваших серверов» (с указанием, сколько ваших серверов его не видят) или «Нет данных от сервера». Косвенные признаки видны и на карточках серверов: бейдж «устарело» на метриках и «Нет данных — агент не отвечает».

Меш-проверки предельно экономные: это крошечные проверочные касания с жёстким суточным лимитом на объём — на трафик и производительность серверов они не влияют.

Запомнить

  • Два уровня контроля: сервер проверяет себя, а соседи по меш-сети — его снаружи.
  • Блокировка ловится «голосованием» нескольких серверов — без паники от единичных сбоев.
  • Проблемные серверы выпадают из выдачи, пользователи молча переезжают на здоровые.
  • Всё самовосстанавливается: ожил сервер — вернулся в строй автоматически.

Дальше

Инфраструктура умеет чинить себя сама, но есть то, что стоит беречь отдельно, — ваша база пользователей.

On this page