← К библиотеке
Безопасность Практика

Мониторинг и бэкап: чтобы не проспать падение

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

Главная беда не в том, что что-то ломается, — ломается всё и всегда. Беда в том, что ты узнаёшь об этом последним. Задача мониторинга — узнавать первым, до клиентов. Задача бэкапа — иметь откуда восстановиться, когда узнал слишком поздно.

Что вообще мониторить

Не всё сразу — вот минимум, потеря которого валит сервис:

  • Ноды — ушла в offline, клиенты без выхода. Смотрим статус в панели плюс внешний uptime.
  • Страница подписки — не отвечает, клиенты не могут забрать конфиг. HTTP-проверка URL подписки.
  • Диск и RAM ноды — переполнились, xray упал. node_exporter или простой скрипт.
  • Баланс хостинга — ушёл в ноль, сервер выключили. Напоминания, авто-пополнение.
  • Домен и сертификат — серт протух, всё лежит. Контроль срока и авто-renew.

Uptime Kuma + алерты в Telegram

Лёгкий монитор с уведомлениями в бота поднимается за пару минут. Слушает только 127.0.0.1, наружу отдаётся через reverse-proxy:

bash
docker run -d --restart=always -p 127.0.0.1:3001:3001 \
  -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Дальше открываешь его за reverse-proxy и добавляешь мониторы:

  • TCP на каждую ноду — SERVER_IP:443.
  • HTTP на страницу подписки — её публичный URL.

В разделе Notifications → Telegram вбиваешь токен своего бота и chat_id — при падении прилетит сообщение. Интервал ставь 60 секунд и 2–3 ретрая, чтобы монитор не дёргал тебя на каждом моргании сети.

Бэкап БД: обязательно и наружу

Нет бэкапа БД — угон или сбой означает потерю всех клиентов. PostgreSQL панели дампится одной командой:

bash
cd /opt/remnawave
docker compose exec -T remnawave-db pg_dump -U postgres postgres > backup-$(date +%F).sql
tar czf conf-$(date +%F).tgz .env docker-compose.yml

Руками ты это делать забудешь, поэтому вешаем на cron — ежедневно ночью, со сжатием:

cron
0 4 * * * root cd /opt/remnawave && docker compose exec -T remnawave-db pg_dump -U postgres postgres | gzip > /root/backups/db-$(date +\%F).sql.gz

И — самое важное — выгружаешь бэкап наружу, к другому провайдеру:

bash
# rclone настраивается заранее (rclone config), потом одной строкой в тот же cron
rclone copy /root/backups remote:vpnhub-backups

Бэкап на том же сервере, который изъяли или удалили, бесполезен. Держи копии в другом месте — другое облако, другой провайдер — и храни 7–14 поколений.

Восстановление (и проверка, что оно работает)

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

bash
cd /opt/remnawave
docker compose up -d remnawave-db                 # поднять только БД
gunzip < /root/backups/db-2026-07-02.sql.gz | \
  docker compose exec -T remnawave-db psql -U postgres postgres   # залить дамп
docker compose up -d                              # поднять панель

После заливки проверь глазами: пользователи, ноды и сквады на месте, ноды поднялись в online. «Бэкап, который не восстанавливается» — это отсутствие бэкапа.

Сертификаты: авто-продление

Протухший серт кладёт всё разом, а это самая обидная смерть — потому что предотвращается бесплатно:

bash
# certbot ставит таймер сам — проверь, что он есть
systemctl list-timers | grep certbot

# раз в квартал прогони renew вхолостую для контроля
certbot renew --dry-run

Гигиена «не слить деньги»

Мониторинг — это ещё и про маржу:

  • Удаляй лишние и выключенные VPS — они тикают по счёту, это главный тихий убийца прибыли.
  • Настрой напоминания о балансе хостингов — часть провайдеров шлёт на почту или в Telegram.
  • Собери один дашборд со статусом всех нод, подписки и балансов, чтобы видеть всё с одного экрана.

Чеклист

  • [ ] Uptime Kuma поднят, мониторит ноды и страницу подписки.
  • [ ] Алерты падают в Telegram, интервал 60с + ретраи.
  • [ ] Бэкап БД по cron ежедневно, со сжатием.
  • [ ] Бэкапы выгружаются наружу, хранится 7–14 копий.
  • [ ] Восстановление проверено на запасном сервере.
  • [ ] Авто-renew сертификатов работает.

Бэкап до любых правок панели — это база харднинга (см. «Харднинг панели»). А реакцию на пойманное падение — переезд на белый IP, каскад, запасные ноды — разбираем в разделах про обход блокировок и каскады.

Следующий гайд Cloudflare ECH и блок из РФ: почему сайт не грузится → Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →
Материал носит образовательный характер и посвящён инженерии сетевой инфраструктуры. Вы отвечаете за соблюдение законов своей юрисдикции.