Резервное копирование
Возможно резервное копирование следующих компонентов системы:
- данных кластера — настроек, сделанных через web-интерфейс и API;
- данных экземпляра — специфичных для экземпляра настроек;
- метрик (графиков).
Восстановление возможно только на ту же версию MITIGATOR, с которой была сделана резервная копия.
Создание резервной копии
Резервная копия состоит из копии данных кластера (backup.sql
)
и копии данных каждого экземпляра (один или несколько backup_ownid.tgz
).
Резервная копия данных кластера
Выполняется на сервере, хранящем базу данных (primary, если настроена репликация).
Вариант А. При работающем MITIGATOR:
docker-compose exec postgres sh -c 'backup > /tmp/backup.sql'
docker cp $(docker-compose ps -q postgres):/tmp/backup.sql .
Вариант Б. При остановленном MITIGATOR:
docker-compose up -d postgres
docker-compose exec postgres sh -c 'backup > /tmp/backup.sql'
docker cp $(docker-compose ps -q postgres):/tmp/backup.sql .
docker-compose down postgres
После выполнения любой из приведенных команд следует вручную убедиться, что резервная копия создалась без ошибок:
tail backup.sql
Резервная копия данных экземпляра
Выполняется на каждом из экземпляров:
tar -czf backup_ownid.tgz -C /var/lib/docker/volumes/mitigator_own_id/ .
Резервная копия метрик
Выполняется на сервере, хранящем метрики.
Инструкция актуальна для версии v22.02 и выше. Для более старых версий используйте соответствующую версии инструкцию.
Если перед началом резервного копирования MITIGATOR остановлен, необходимо
запустить модуль хранения метрик (docker-compose up -d clickhouse
) и
остановить его после процедуры создания бэкапа (docker-compose stop clickhouse
).
Внимание! Резервные копии метрик, снятые на версиях v22.02.0-v22.04.3, будут иметь расширение .tar.gz
docker-compose exec clickhouse sh -c 'backup'
docker cp $(docker-compose ps -q clickhouse):/tmp/metrics.tar.zst .
docker-compose exec clickhouse rm /tmp/metrics.tar.zst
Восстановление из резервной копии
Команды приведены исходя из того, что файлы с резервной копией
находятся в рабочем каталоге /srv/mitigator
, однако местоположение файлов
может быть любым:
- на удаленном сервере;
- на USB-накопителе;
- в любом каталоге системы.
В этом случае в командах должен быть указан полный путь к файлам резервной копии.
Восстановление данных кластера
Выполняется на сервере, хранящем базу данных (primary, если настроена репликация).
-
Остановить MITIGATOR:
docker-compose down
Очистка тома postgres
приведёт к удалению всех настроек, политик защиты, журналов
и пользователей системы MITIGATOR.
Перед выполнением убедитесь в наличии актуальной резервной копии данных.
-
Удалить существующую базу:
docker volume rm mitigator_postgres
-
Запустить Postgres:
docker-compose up -d postgres && docker-compose logs -f postgres
-
Дождаться сообщения
database system is ready to accept connections
, нажать Ctrl+C. -
Перенести бэкап в контейнер и восстановить данные:
docker cp backup.sql $(docker-compose ps -q postgres):/tmp docker-compose exec postgres sh -c 'psql mitigator </tmp/backup.sql >/tmp/restore.log'
Восстановление данных экземпляра
Выполняется на каждом экземпляре.
-
Развернуть volume own_id:
tar -xzf backup_ownid.tgz -C /var/lib/docker/volumes/mitigator_own_id/ .
-
Запустить MITIGATOR:
docker-compose up -d
Если на этапе восстановления появились ошибки, технической поддержке будет
нужен их текст и файл restore.log
, который можно забрать из контейнера так:
docker cp $(docker-compose ps -q postgres):/tmp/restore.log .
Восстановление метрик
Выполняется на сервере, хранящем метрики.
-
Запустить Clickhouse (если остановлен)
docker-compose up -d clickhouse && docker-compose logs -f clickhouse | grep -qm1 "03-create-graphite_tagged-table.sql"
-
Перенести бэкап в контейнер и восстановить данные
Внимание! Резервные копии метрик, снятые на версиях v22.02.0-v22.04.3, будут иметь расширение
.tar.gz
docker cp metrics.tar.zst $(docker-compose ps -q clickhouse):/tmp docker-compose exec clickhouse sh -c 'restore /tmp/metrics.tar.zst'
-
Удалить архив с бэкапом из контейнера
docker-compose exec clickhouse rm /tmp/metrics.tar.zst