Резервное копирование
Восстановление возможно только на ту же версию Collector, с которой была сделана резервная копия.
Резервная копия данных flow
Выполняется на сервере, хранящем метрики.
Если перед началом резервного копирования Collector остановлен, необходимо
запустить модуль хранения flow (docker-compose up -d clickhouse
) и
остановить его после процедуры создания бэкапа (docker-compose stop clickhouse
).
CID=$(docker-compose ps -q clickhouse) \
&& VERSION=$(docker inspect -f '{{index .Config.Labels "build.branch"}}' $CID) \
&& ARCHIVE=$(docker-compose exec clickhouse sh -c "backup $VERSION") \
&& docker cp $CID:$ARCHIVE . \
&& docker-compose exec clickhouse rm $ARCHIVE
Резервная копия настроек коллектора
Если перед началом резервного копирования Collector остановлен, необходимо
запустить модуль backend (docker-compose up -d backend
).
CID=$(docker-compose ps -q backend) \
&& VERSION=$(docker inspect -f '{{index .Config.Labels "build.branch"}}' $CID) \
&& ARCHIVE="settings-$(date +"%Y-%m-%d_%H-%M")-${VERSION}.zst" \
&& nsenter -n -t "$(docker inspect -f '{{ .State.Pid }}' $CID)" curl -Sfs localhost:8000/settings -o bolt_db \
&& zstd -zq -o $ARCHIVE --rm bolt_db
Восстановление из резервной копии
Команды приведены исходя из того, что файлы с резервной копией
находятся в рабочем каталоге /srv/collector
, однако местоположение файлов
может быть любым:
- на удаленном сервере;
- на USB-накопителе;
- в любом каталоге системы.
В этом случае в командах должен быть указан полный путь к файлам резервной копии.
Восстановление flow
Выполняется на сервере, хранящем flow. Восстановление данных выполняется без предварительной очистки. Для исключения дублирования данных перед восстановлением необходимо удалить старые записи за аналогичный период согласно инструкции уменьшение объема хранимых данных
Запустить Clickhouse (если остановлен)
docker-compose up -d clickhouse
Выбрать бэкап, перенести в контейнер и восстановить данные
ARCHIVE=flows-X.tar.zst \ && CID=$(docker-compose ps -q clickhouse) \ && docker cp ./$ARCHIVE $CID:/tmp/ \ && docker-compose exec clickhouse sh -c "restore /tmp/$ARCHIVE"
Удалить архив с бэкапом из контейнера
docker-compose exec clickhouse rm /tmp/$ARCHIVE
Восстановление настроек коллектора
Восстановление настроек выполняется на остановленном модуле backend.
Остановить backend (если запущен)
docker-compose stop backend
Выбрать бэкап, извлечь файл настроек и перенести в хранилище
ARCHIVE=settings-X.zst \ && VOLUME=$(docker volume create collector_db) \ && BOLT_DIR=$(docker volume inspect ${VOLUME} -f '{{.Mountpoint}}') \ && zstd -dqf -o $BOLT_DIR/bolt_db $ARCHIVE
Запустить Collector с восстановленными настройками
docker-compose up -d