Резервное копирование

Восстановление возможно только на ту же версию 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. Восстановление данных выполняется без предварительной очистки. Для исключения дублирования данных перед восстановлением необходимо удалить старые записи за аналогичный период согласно инструкции уменьшение объема хранимых данных

  1. Запустить Clickhouse (если остановлен)

    docker-compose up -d clickhouse
  2. Выбрать бэкап, перенести в контейнер и восстановить данные

    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"
  3. Удалить архив с бэкапом из контейнера

    docker-compose exec clickhouse rm /tmp/$ARCHIVE

Восстановление настроек коллектора

Восстановление настроек выполняется на остановленном модуле backend.

  1. Остановить backend (если запущен)

    docker-compose stop backend
  2. Выбрать бэкап, извлечь файл настроек и перенести в хранилище

    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
  3. Запустить Collector с восстановленными настройками

    docker-compose up -d