Перейти к основному содержимому
Версия: 4.6.X

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

komrad-cli backup create создаёт зашифрованный набор резервных копий для одного узла KOMRAD. Набор содержит данные всех активных поверхностей и может быть сохранён локально, на SFTP-сервере или в S3-совместимом хранилище.

Быстрый старт

komrad-cli backup create \
--to /var/backups/komrad \
--passphrase "секретная_фраза"

После выполнения в /var/backups/komrad появляется директория набора (например, 20260630T120000Z), содержащая манифест и зашифрованные блобы.

Что включается в резервную копию

ПоверхностьДанныеМеханизм
PostgreSQLвсе базы данных KOMRADpg_dump -Fc через echelonpg
События ClickHouseтаблица komrad_eventsнативный BACKUP ClickHouse
NATS JetStreamочереди komrad-busJetStream snapshot
Конфигурации*.yaml сервисовtar + zstd
Сертификаты и ключиTLS-материал, учётные данные NATStar + zstd

Поверхности обнаруживаются автоматически через конфигурационные файлы сервисов. Для исключения поверхности используйте --no-pg, --no-ch, --no-natsjs, --no-events или --exclude <поверхность>.

Хранилища

Флаг --to задаёт одно или несколько хранилищ (флаг повторяется):

# Локальная директория
komrad-cli backup create --to /var/backups/komrad --passphrase "..."

# SFTP
komrad-cli backup create --to sftp:backup-server/komrad/backups --passphrase "..."

# S3-совместимое хранилище
komrad-cli backup create --to s3:my-bucket/komrad --passphrase "..."

Для настройки параметров подключения к SFTP или S3 укажите komrad-backup.yaml через --config:

targets:
- type: sftp
host: backup-server
user: komrad
key_file: /etc/echelon/komrad/keys/backup_id_ed25519
path: /backups/komrad
- type: s3
endpoint: https://s3.example.com
bucket: komrad-backups
access_key: AKIAIOSFODNN7EXAMPLE
secret_key: wJalrXUtnFEMI/K7MDENG
prefix: komrad

Шифрование

Резервные копии всегда шифруются. По умолчанию используется age.

БэкендФлагПрименение
age (умолчание)--cipher ageУниверсальный; pure-Go
aes-gcm--cipher aes-gcmPure-Go AEAD
openssl--cipher opensslГОСТ на Astra Linux / REDOS

Фраза-пароль задаётся тремя способами (в порядке приоритета):

  1. --passphrase "фраза"
  2. Переменная окружения KOMRAD_BACKUP_PASSPHRASE
  3. cipher.passphrase в komrad-backup.yaml

Для OpenSSL/ГОСТ укажите параметры в конфиге:

cipher:
backend: openssl
passphrase: "секретная_фраза"
openssl:
cipher: gost2012_256
dgst: md_gost12_256

Резервное копирование событий (ClickHouse)

По умолчанию создаётся полная копия таблицы komrad_events. Для крупных инсталляций доступны дополнительные режимы.

# Полная копия (умолчание)
komrad-cli backup create \
--ch-mode full \
--to /var/backups/komrad --passphrase "..."

# Инкрементальная (относительно последней базовой копии)
komrad-cli backup create \
--ch-mode incremental \
--to /var/backups/komrad --passphrase "..."

# Только события за последние 30 дней
komrad-cli backup create \
--events-window 30d \
--to /var/backups/komrad --passphrase "..."

# Только события за заданный период
komrad-cli backup create \
--events-since 2026-01-01 \
--events-until 2026-06-30 \
--to /var/backups/komrad --passphrase "..."

# Без событий (только настройки и инциденты)
komrad-cli backup create \
--no-events \
--to /var/backups/komrad --passphrase "..."
к сведению

При инкрементальном режиме новая базовая копия создаётся автоматически, если возраст предыдущей превышает --ch-base-rotate (по умолчанию 7d).

Расписание

systemd-таймер

sudo tee /etc/systemd/system/komrad-backup.service <<'EOF'
[Unit]
Description=KOMRAD backup

[Service]
Type=oneshot
ExecStart=/opt/echelon/komrad/bin/komrad-cli backup create \
--to /var/backups/komrad \
--config /etc/echelon/komrad/komrad-backup.yaml
EnvironmentFile=/etc/echelon/komrad/backup.env
EOF

sudo tee /etc/systemd/system/komrad-backup.timer <<'EOF'
[Unit]
Description=KOMRAD backup — ежедневно в 02:00

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now komrad-backup.timer

Создайте файл с паролем /etc/echelon/komrad/backup.env (права 0600, владелец root):

KOMRAD_BACKUP_PASSPHRASE=секретная_фраза

cron

0 2 * * * root KOMRAD_BACKUP_PASSPHRASE=секретная_фраза /opt/echelon/komrad/bin/komrad-cli backup create --to /var/backups/komrad >> /var/log/komrad-backup.log 2>&1

Проверка резервной копии

После создания копии проверьте целостность:

komrad-cli backup verify /var/backups/komrad/20260630T120000Z \
--passphrase "секретная_фраза"

Команда проверяет манифест и sha256-контрольные суммы всех блобов. Включите проверку в расписание или запускайте вручную после каждого backup create.