Мониторинг серверов и меш-сеть
Как CreateYourVPN следит за здоровьем серверов: самопроверки, меш-сеть взаимных проверок между серверами и автоматическое скрытие недоступных серверов от пользователей.
Сервер может подвести в самый неожиданный момент: упал сервис, хостер перезагрузил машину, а бывает и хуже — сервер заблокировали в стране пользователя, и он перестал открываться, хотя формально работает. Ваши пользователи не должны это замечать. В этом уроке — как CreateYourVPN следит за серверами и что происходит, когда с одним из них беда.
Два уровня проверок
Система смотрит на каждый сервер с двух сторон.
1. Сервер проверяет сам себя
Каждый сервер раз в несколько минут отчитывается: жив ли приёмник трафика на порту 443 и работает ли VPN-сервис. Вместе с отчётом приходят и метрики из урока 3. Если отчёт говорит «мне плохо» — сервер получает статус «Сервер недоступен». Если отчёты вовсе перестали приходить — статус «Нет данных от сервера»: возможно, машина выключена или потеряла сеть.
2. Серверы «простукивают» друг друга
Самопроверка не поймает главный коварный случай: сервер сам считает себя здоровым, но снаружи до него не достучаться — например, его IP заблокировали. Для этого все ваши серверы объединены в меш-сеть взаимных проверок: каждый сервер регулярно пробует достучаться до каждого соседа — так же, как это делало бы приложение пользователя.
Дальше работает «голосование»:
- Один неудачный стук ничего не значит — мало ли, сеть мигнула. Считаются только устойчивые серии неудач.
- Сервер помечается как «Недоступен из ваших серверов», только когда до него стабильно не могут достучаться несколько независимых серверов — единичное мнение не приговор.
- Есть и защита от «сумасшедшего свидетеля»: если какой-то сервер вдруг заявляет, что не видит половину соседей, — скорее всего, проблемы у него самого, и его голоса не учитываются.
Именно эта схема ловит блокировки: если сервер заблокировали в стране, где стоят другие ваши серверы, — соседи из этой страны быстро перестанут до него достукиваться, наберётся кворум, и система пометит сервер недоступным. А серверы из других стран, где блокировки нет, продолжат его видеть — и по разнице мнений картина станет очевидной.
Что происходит с проблемным сервером
Статусы напрямую влияют на балансировку: серверы со статусами «Сервер недоступен» и «Недоступен из ваших серверов» исключаются из выдачи — новые подключения на них не направляются, и в подписках пользователей их место занимают здоровые серверы из тех же маршрутов.
При этом система осторожна — она построена по принципу «не навреди»:
- Маршрут никогда не остаётся пустым. Если «плохими» оказались все серверы маршрута, система вернёт пользователям лучший из имеющихся вариантов, а не пустой список — иначе приложения решили бы, что серверов больше нет, и стёрли их.
- Тишина — не приговор. Статус «Нет данных от сервера» сам по себе сервер из выдачи не убирает: без свежих данных система не делает резких движений.
Всё лечится само
Ни один из статусов не «прилипает» навсегда — состояние выводится заново из свежих данных:
- сервер снова прислал здоровый отчёт → статус «Сервер недоступен» снимается;
- соседи снова начали достукиваться → серия неудач обнуляется, и метка «Недоступен из ваших серверов» уходит;
- возобновились отчёты → «Нет данных от сервера» исчезает.
Починили сервер (или его разблокировали) — он сам вернулся в строй. Никаких ручных «включить обратно».
Где это видно в панели
Откройте карточку любого пользователя → список его серверов: рядом с каждым сервером горит точка состояния, а при проблеме — подпись с причиной: «Сервер недоступен», «Недоступен из ваших серверов» (с указанием, сколько ваших серверов его не видят) или «Нет данных от сервера». Косвенные признаки видны и на карточках серверов: бейдж «устарело» на метриках и «Нет данных — агент не отвечает».
Меш-проверки предельно экономные: это крошечные проверочные касания с жёстким суточным лимитом на объём — на трафик и производительность серверов они не влияют.
Запомнить
- Два уровня контроля: сервер проверяет себя, а соседи по меш-сети — его снаружи.
- Блокировка ловится «голосованием» нескольких серверов — без паники от единичных сбоев.
- Проблемные серверы выпадают из выдачи, пользователи молча переезжают на здоровые.
- Всё самовосстанавливается: ожил сервер — вернулся в строй автоматически.
Дальше
Инфраструктура умеет чинить себя сама, но есть то, что стоит беречь отдельно, — ваша база пользователей.
Мультихоп: цепочки серверов
Как в CreateYourVPN собрать мультихоп-инбаунд: трафик входит на одном сервере и выходит с другого. Зачем это нужно, как создать и что видит пользователь.
Резервные копии: сохранить и восстановить пользователей
Финальный урок курса: зачем бэкапить базу пользователей, как настроить автоматические копии в Google Drive или S3 и как восстановиться из копии.