Моніторинг серверів і меш-мережа
Як CreateYourVPN стежить за здоров'ям серверів: самоперевірки, меш-мережа взаємних перевірок між серверами й автоматичне приховування недоступних серверів від користувачів.
Сервер може підвести в найнезручніший момент: падає служба, хостинг перезавантажує машину — або, ще гірше, сервер стає заблокованим у країні користувача й перестає бути досяжним, хоча технічно й працює. Ваші користувачі не повинні помічати нічого з цього. Цей урок — про те, як CreateYourVPN стежить за вашими серверами і що відбувається, коли з якимось із них трапляється біда.
Два рівні перевірок
Система дивиться на кожен сервер із двох боків.
1. Сервер перевіряє сам себе
Кожні кілька хвилин кожен сервер звітує: чи живий слухач трафіку на порту 443, чи запущена служба VPN? Метрики з уроку 3 приходять із тим самим звітом. Якщо звіт каже «мені погано», сервер отримує статус "Сервер недоступний". Якщо звіти зовсім перестають надходити, статус стає "Немає даних від сервера" — можливо, машину вимкнено або вона втратила мережу.
2. Сервери «стукають» один одному
Самоперевірки не вловлюють найпідступніший випадок: сервер вважає себе здоровим, але ззовні до нього не дістатися — наприклад, його IP заблоковано. Саме тому всі ваші сервери об'єднані в меш-мережу взаємних перевірок: кожен сервер регулярно намагається достукатися до кожного сусіда — так само, як це робив би застосунок користувача.
Далі вступає в дію «голосування»:
- Один невдалий стук нічого не означає — мережа могла просто моргнути. Рахуються лише стійкі серії невдач.
- Сервер позначається як "Недоступний з ваших серверів" лише тоді, коли кілька незалежних серверів послідовно не можуть до нього достукатися — думка одного сервера не є вироком.
- Є й захист від «ненадійного свідка»: якщо якийсь сервер раптом заявляє, що не бачить половини своїх сусідів, проблема, найімовірніше, у ньому самому — і його голоси відкидаються.
Саме ця схема вловлює блокування: якщо сервер заблокують у країні, де живуть інші ваші сервери, сусіди з цієї країни швидко перестануть до нього достукуватися, набереться кворум, і система позначить сервер недоступним. Тим часом сервери в країнах без блокування продовжуватимуть його бачити — і розбіжність думок робить картину очевидною.
Що відбувається з проблемним сервером
Статуси напряму впливають на балансування: сервери зі статусами «Сервер недоступний» і «Недоступний з ваших серверів» виводяться з ротації — на них не спрямовуються нові підключення, а в підписках користувачів їхнє місце займають здорові сервери з тих самих маршрутів.
Водночас система діє обережно — вона побудована за принципом «не нашкодь»:
- Маршрут ніколи не залишається порожнім. Якщо всі сервери в маршруті виявляються «поганими», система видасть користувачам найкращий доступний варіант, а не порожній список — інакше застосунки вирішать, що сервери зникли, і зітруть їх.
- Мовчання — не вирок. Статус «Немає даних від сервера» сам по собі не виводить сервер із ротації: без свіжих даних система не робить різких рухів.
Усе загоюється саме
Жоден зі статусів не «прилипає» назавжди — стан завжди перераховується за свіжими даними:
- сервер знову надсилає здоровий звіт → «Сервер недоступний» знімається;
- сусіди знову починають до нього достукуватися → серія невдач скидається, і мітка «Недоступний з ваших серверів» зникає;
- звіти відновлюються → «Немає даних від сервера» зникає.
Полагодьте сервер (або дочекайтеся зняття блокування) — і він сам повернеться в стрій. Ніякого ручного «увімкнути назад».
Де це видно в панелі
Відкрийте картку будь-якого користувача → список його серверів: біля кожного сервера є статусна крапка, а коли щось не так — підпис із причиною: «Сервер недоступний», «Недоступний з ваших серверів» (з кількістю ваших серверів, які його не бачать) або «Немає даних від сервера». Непрямі ознаки видно й на картках серверів: мітка «застаріло» на метриках і «Немає даних — агент не відповідає».
Меш-перевірки надзвичайно економні: це крихітні пробні дотики з жорстким добовим лімітом обсягу — вони жодним чином не впливають на трафік чи продуктивність ваших серверів.
Головні висновки
- Два рівні контролю: сервер перевіряє сам себе, а його сусіди по меш-мережі перевіряють його ззовні.
- Блокування вловлюються «голосуванням» кількох серверів — жодної паніки через одноразові збої.
- Проблемні сервери випадають із ротації; користувачі непомітно переходять на здорові.
- Усе загоюється саме: щойно сервер оживає, він автоматично повертається в стрій.
Далі
Інфраструктура вміє лікувати себе сама, але є дещо, що варто захищати окремо — ваша база користувачів.
Мультихоп: ланцюги серверів
Як побудувати мультихоп-інбаунд у CreateYourVPN: трафік входить на одному сервері, а виходить з іншого. Навіщо це потрібно, як створити і що бачить користувач.
Резервні копії: збереження та відновлення користувачів
Останній урок курсу: навіщо робити резервні копії бази користувачів, як налаштувати автоматичне копіювання в Google Drive або S3 і як відновити дані з копії.