Резервное копирование и восстановление

Перечень элементов, параметры копирования, процедура полного восстановления
ООО «Рапид.Исследовательские системы»
Версия: 1.1.2
Дата: март 2026

1. Назначение

Документ определяет перечень элементов конфигурации платформы Rapeed BI, подлежащих резервному копированию, параметры копирования и процедуру восстановления после сбоя.

2. Перечень элементов конфигурации

ЭлементТип данныхТом DockerКритичность
База данных PostgreSQLНастройки пользователей, рабочих пространств, мер, прав доступаlocal_storage_postgresВысокая
Конфигурация KeycloakПользователи, роли, группы, клиенты, парольные политикиlocal_storage_keycloakВысокая
Данные аналитического ядра (IDS)Импортированные наборы данных, индексы, справочникиlocal_storage_idsВысокая
Загруженные файлыФайлы CSV, Parquet, XLSX для импортаlocal_storage_uploadСредняя
Конфигурация платформыdocker-compose.yml, .env.enc, nginx, vector.tomlКаталог развёртыванияВысокая
ЖурналыСобытия безопасности, системные журналыlocal_storage_logsСредняя
МетрикиПоказатели производительностиlocal_storage_metricsНизкая
ТрассировкаДанные распределённой трассировкиlocal_storage_tempoНизкая

3. Параметры резервного копирования

ЭлементМетодПериодичностьГлубина храненияОбъём (ориентир)
PostgreSQLpg_dumpЕжедневно30 дней10–500 МБ
Keycloakrealm export + volumeЕжедневно30 дней1–10 МБ
IDS (аналитические данные)volume snapshotЕженедельно4 копии1–100 ГБ
Загруженные файлыvolume snapshotЕженедельно4 копии1–50 ГБ
Конфигурациякопия каталогаПри каждом измененииВсе версии< 10 МБ
Журналыvolume snapshotЕженедельно4 копиидо 10 ГБ
Рекомендуется хранить резервные копии на отдельном носителе или сетевом хранилище, физически отделённом от хоста платформы.

4. База данных PostgreSQL

4.1. Создание резервной копии

# Полный дамп базы данных docker exec postgres pg_dumpall -U ${POSTGRES_USER} | gzip > backup/pg_$(date +%Y%m%d).sql.gz

4.2. Восстановление

# Остановка зависимых сервисов docker compose stop widgets pivot-ms ui-settings # Восстановление из дампа gunzip -c backup/pg_20260324.sql.gz | docker exec -i postgres psql -U ${POSTGRES_USER} # Запуск сервисов docker compose start widgets pivot-ms ui-settings

4.3. Содержимое

  • Настройки пользовательского интерфейса
  • Конфигурации рабочих пространств
  • Права доступа
  • Настройки мер и формул
  • Журнал изменений

5. Конфигурация Keycloak

5.1. Экспорт realm

# Экспорт конфигурации realm (пользователи, клиенты, роли, политики) docker exec keycloak /opt/keycloak/bin/kc.sh export \ --dir /opt/keycloak/data/export \ --realm rapeed \ --users realm_file # Копирование на хост docker cp keycloak:/opt/keycloak/data/export backup/keycloak_$(date +%Y%m%d)/

5.2. Восстановление

# Копирование в контейнер docker cp backup/keycloak_20260324/ keycloak:/opt/keycloak/data/import/ # Перезапуск Keycloak с импортом docker compose restart keycloak

5.3. Содержимое

  • Учётные записи пользователей
  • Роли и группы
  • Клиентские приложения и секреты
  • Парольные политики и настройки OTP
  • Настройки brute force protection
  • Настройки сессий и токенов

6. Данные аналитического ядра

6.1. Создание резервной копии

# Остановка аналитического ядра docker compose stop ids ids_c1 ids_c2 ids_c3 # Копирование тома tar czf backup/ids_$(date +%Y%m%d).tar.gz -C /var/lib/docker/volumes/local_storage_ids/_data . # Запуск docker compose start ids ids_c1 ids_c2 ids_c3

6.2. Восстановление

# Остановка аналитического ядра docker compose stop ids ids_c1 ids_c2 ids_c3 # Очистка и восстановление тома rm -rf /var/lib/docker/volumes/local_storage_ids/_data/* tar xzf backup/ids_20260324.tar.gz -C /var/lib/docker/volumes/local_storage_ids/_data # Запуск docker compose start ids ids_c1 ids_c2 ids_c3

6.3. Содержимое

  • Импортированные наборы данных
  • Построенные индексы и агрегации
  • Справочники
  • Конфигурация источников данных
При наличии доступа к исходным источникам данных (ClickHouse, ODBC) данные аналитического ядра могут быть восстановлены путём повторного импорта.

7. Загруженные файлы

7.1. Создание резервной копии

tar czf backup/uploads_$(date +%Y%m%d).tar.gz -C /var/lib/docker/volumes/local_storage_upload/_data .

7.2. Восстановление

tar xzf backup/uploads_20260324.tar.gz -C /var/lib/docker/volumes/local_storage_upload/_data

8. Конфигурация платформы

8.1. Перечень файлов

ФайлОписание
docker-compose.ymlОписание сервисов и их параметров
.env.encЗашифрованные секреты (пароли, ключи)
nginx/*.confКонфигурация reverse proxy и TLS
nginx/certs/*TLS-сертификаты
vector.tomlКонфигурация сбора журналов
keycloak/rapeed-realm.jsonКонфигурация realm Keycloak
rabbitmq/rabbitmq.confКонфигурация очереди сообщений
oauth2-proxy/alpha.yamlКонфигурация OAuth2 Proxy

8.2. Создание резервной копии

# Копия всего каталога развёртывания tar czf backup/config_$(date +%Y%m%d).tar.gz -C /path/to/rapeed .

8.3. Восстановление

tar xzf backup/config_20260324.tar.gz -C /path/to/rapeed

9. Журналы

ПараметрЗначение
ХранилищеVictoriaLogs (Docker том local_storage_logs)
Автоматическая ротация90 дней / 10 ГБ
Резервное копированиеОпционально (журналы могут быть восстановлены из SIEM при наличии интеграции)
# Копия тома журналов tar czf backup/logs_$(date +%Y%m%d).tar.gz -C /var/lib/docker/volumes/local_storage_logs/_data .

10. Процедура полного восстановления

В случае полной потери хоста восстановление выполняется в следующем порядке:

  1. Подготовка хоста

    Установка ОС, Docker, настройка ОС скриптом check-tune-os.sh

  2. Восстановление конфигурации

    Распаковка каталога развёртывания из резервной копии

  3. Загрузка Docker-образов

    Загрузка из дистрибутива или резервной копии: docker load -i images/*.tgz

  4. Восстановление PostgreSQL

    Запуск контейнера PostgreSQL, восстановление из дампа

  5. Восстановление Keycloak

    Запуск с импортом realm из резервной копии

  6. Восстановление данных IDS

    Распаковка тома аналитического ядра

  7. Восстановление загруженных файлов

    Распаковка тома загрузки

  8. Запуск платформы

    docker compose up -d

  9. Проверка работоспособности

    Проверка healthcheck всех контейнеров, вход через браузер, проверка данных

Время полного восстановления зависит от объёма данных аналитического ядра. Ориентировочно: 15–60 минут без учёта загрузки образов и копирования данных.

11. Проверка резервных копий

Для обеспечения актуальности резервных копий рекомендуется регулярная проверка:

ПроверкаПериодичностьМетод
Наличие актуальных копийЕжедневноПроверка даты последнего файла в каталоге резервных копий
Целостность архивовЕженедельноgzip -t / tar tzf для каждого архива
Восстановление PostgreSQLЕжемесячноВосстановление дампа на тестовом экземпляре, проверка количества записей
Полное восстановлениеЕжеквартальноРазвёртывание платформы из резервных копий на тестовом хосте