Как зарезервировать Docker-контейнер InfluxDB (2026)

Правильный способ зарезервировать контейнер InfluxDB — логический дамп, а не копия файлов. Выполните `influx backup /backup/influx # (v2; v1 uses influxd backup -portable /backup)` внутри контейнера и зарезервируйте его вывод. Копирование /var/lib/influxdb2, пока influx пишет, даёт несогласованный снимок; команда резервирования замораживает TSM-шарды и метаданные через движок: фоновая компактация никогда не оставит вам порванную дисковую копию.

Обнаружение

Что находит Dockstash

Найденные переменные окруженияDOCKER_INFLUXDB_INIT_USERNAME, DOCKER_INFLUXDB_INIT_PASSWORD, DOCKER_INFLUXDB_INIT_ORG, INFLUXDB_HTTP_AUTH_ENABLED
Порт по умолчанию8086
Живые пути данных (никогда не копируются вживую)/var/lib/influxdb2, /var/lib/influxdb
Примеры образовinfluxdb:2.7, influxdb:2, influxdb:1.8, influxdb
Шаг за шагом

Резервируем InfluxDB с Dockstash, шаг за шагом

  1. Создайте аккаунт Dockstash и откройте панель

    Зарегистрируйтесь бесплатно на app.dockstash.com/register. Одноразовый мастер настройки спросит ваш VPS для хранения (машину, где будут лежать зашифрованные резервные копии) и сгенерирует пароль шифрования — сразу сохраните его в менеджере паролей: он показывается ровно один раз.

  2. Добавьте Docker-проект, в котором работает InfluxDB

    На экране Projects Dockstash автоматически находит каждую папку Compose-проекта на сервере (по умолчанию под /var/www). Выберите проект с вашим сервисом InfluxDB. Пока ничего не резервируется — вы лишь указываете Dockstash, где живёт проект.

  3. Проверьте, что InfluxDB распознана

    Откройте проект и вкладку Plan. Dockstash читает docker-compose.yml, распознаёт образ influxdb и его мажорную версию и добавляет слой с правильной командой резервирования — influx backup для v2, influxd backup -portable для v1 — плюс имя контейнера и найденные переменные (DOCKER_INFLUXDB_INIT_USERNAME, DOCKER_INFLUXDB_INIT_PASSWORD, DOCKER_INFLUXDB_INIT_ORG). Файлы, базы и конфиги прокси можно переключать перед сохранением.

  4. Опционально: проверьте команду резервирования вручную

    Если хотите доказательство до автоматизации, выполните influx backup во временный путь в контейнере. Вы увидите, как он пишет файлы шардов и метаданных, снимая каждый бакет через HTTP API — этот скоординированный движком снимок и резервируется, никогда не живой каталог TSM.

    docker exec <influxdb-container> influx backup /tmp/influx-test
  5. Подтвердите место хранения

    Резервные копии хранятся как зашифрованные снимки restic на вашем собственном VPS для хранения, по SSH. Если вы прошли мастер настройки, всё уже настроено; хост, пользователя, порт или SSH-ключ можно изменить в любой момент в Settings → Storage.

  6. Настройте расписание резервного копирования

    Во вкладке Schedule выберите ежедневно, еженедельно или собственный cron (валидируется при вводе). Временные ряды копятся быстро: ежедневно — верное умолчание, ежечасно — для критичных метрик. Добавьте еженедельный prune с политикой хранения.

  7. Запустите первую копию сейчас

    Нажмите Backup Now. Dockstash выполнит верную для версии команду в контейнере — influx backup через HTTP API на v2, influxd backup -portable на v1 — и отправит снимок прямо в restic. Живой вывод смотрите в панели логов.

  8. Убедитесь, что снимок существует

    По завершении запуска карточка проекта показывает новое время последней копии, число снимков и размер репозитория. Откройте экран Snapshots: точка восстановления появится на таймлайне — это ваше доказательство, что копия дошла до внешнего хранилища.

Команды

Команда дампа

influx backup /backup/influx # (v2; v1 uses influxd backup -portable /backup)

Команда восстановления

influx restore /backup/influx # (v1 uses influxd restore -portable /backup)

команда резервирования замораживает TSM-шарды и метаданные через движок: фоновая компактация никогда не оставит вам порванную дисковую копию.

Восстановить и проверить

Восстановите копию InfluxDB и докажите, что она работает

Резервная копия InfluxDB становится настоящей только после восстановления. Восстановления Dockstash по умолчанию не перезаписывают живые временные ряды — сначала в новое место, проверка бакетов, затем осознанное продвижение.

  1. Выберите точку восстановления

    Откройте Snapshots, выберите проект и просмотрите таймлайн. Каждая строка — согласованный на уровне движка снимок ваших TSM-шардов и метаданных: бакеты, политики хранения и пользователи — плюс файлы проекта того же запуска.

  2. Восстановите в новое место

    Нажмите Restore и оставьте режим по умолчанию «Restore to new location». Введите имя проекта для подтверждения — осознанное действие с набором текста. Дамп и файлы попадут в выбранный целевой путь, не трогая живой проект.

  3. Проверьте восстановленные данные

    Загрузите восстановленную копию в тестовый контейнер InfluxDB через influx restore (или influxd restore -portable на v1) и перечислите бакеты. Каждый ожидаемый бакет должен появиться со своей политикой хранения; быстрый запрос по недавнему диапазону подтвердит, что свежайшие точки на месте.

    docker exec <influxdb-container> influx bucket list
  4. Продвигайте, когда всё проверено

    Когда восстановленные данные проверены, переключите на них приложение (или повторите восстановление в режиме «Overwrite existing» — явный опт-ин). Ещё лучше: пусть еженедельная тренировка восстановления делает это доказательство автоматически, чтобы восстановление никогда не было вашей первой репетицией.

Подводные камни

Каких ловушек избегать

  • Никогда не запускайте restic по живому каталогу TSM/WAL — шарды компактятся в фоне, сырая копия несогласована.
  • InfluxDB v2 использует `influx backup` (HTTP API + токен); v1 — `influxd backup -portable`. Dockstash определяет мажорную версию.
  • Копиям v2 нужен операторский токен с чтением; без него вызов не авторизован.
Устранение неполадок

Типичные проблемы резервирования InfluxDB

Симптом
Команда резервирования падает с «unknown command» или неизвестными флагами.
Причина
Командные строки v1 и v2 совершенно разные: v2 использует influx backup через HTTP API, v1 — influxd backup -portable. Команда одного поколения против другого падает сразу — обычное дело после апгрейда тега образа.
Решение
Проверьте мажорную версию контейнера (influxd version) и используйте соответствующую команду. Dockstash определяет мажорную версию по образу и выбирает правильную автоматически; после апгрейда перезапустите обнаружение во вкладке Plan.
Симптом
influx backup падает с «unauthorized» или 401 от API.
Причина
Копии v2 идут через HTTP API и требуют операторский (all-access) токен. Обычного токена чтения — или отсутствия токена при включённой аутентификации — недостаточно.
Решение
Дайте операторский токен с чтением бакетов. Если использовали переменные DOCKER_INFLUXDB_INIT_*, подойдёт стартовый админ-токен; иначе создайте новый через influx auth create --all-access и добавьте в учётные данные плана.
Симптом
Копия, сделанная копированием /var/lib/influxdb2, не стартует, или запросы возвращают неполные данные.
Причина
InfluxDB компактит TSM-шарды в фоне. Сырая копия живого каталога ловит шарды посреди компактации — часть файлов до, часть после — и даёт порванное, несогласованное хранилище.
Решение
Никогда не копируйте живой каталог данных. Используйте команду резервирования движка, снимающую шарды и метаданные согласованно — именно её выполняет Dockstash. Порванная сырая копия обычно невосстановима; восстановитесь из настоящей копии.

Сделайте это в один клик с Dockstash

Dockstash выполняет ровно тот дамп, что выше, передаёт его restic вовне и автоматически проверяет восстановление тренировкой — без скриптов на поддержке.

Последнее обновление: July 2026

Часто задаваемые вопросы

Какая команда правильно резервирует InfluxDB?

Для v2 — `influx backup` через HTTP API с операторским токеном. Для v1 — `influxd backup -portable`. Обе согласованно снимают TSM-шарды и метаданные. Dockstash определяет версию и запускает нужную.

Можно ли копировать файлы шардов напрямую?

Нет. InfluxDB компактит TSM-шарды в фоне: копия живого каталога несогласована. Используйте команду резервирования, координирующую согласованный снимок через движок.

Какой токен нужен копии v2?

Операторский (all-access) токен с правом чтения бакетов. Dockstash находит переменные стартового токена; при включённой аутентификации предоставьте токен.

Как восстановить копию временных рядов?

Используйте `influx restore` (v2) или `influxd restore -portable` (v1) против свежего инстанса. Dockstash сначала восстанавливает в staging-инстанс до любой перезаписи.

Как часто резервировать InfluxDB?

Ежедневно подходит большинству метрик; ежечасно — если больно терять час точек. На Free копии вручную (Backup Now); Pro — до ежечасных, Business — любой cron. Добавьте еженедельную тренировку.

Блокирует ли резервирование записи в InfluxDB?

Нет. Команда снимает шарды через движок, пока сервер продолжает принимать записи — коллекторы и дашборды работают во время копии.

Где на самом деле живут резервные копии?

На вашем собственном VPS для хранения, как зашифрованные снимки restic, отправляемые по SSH. Dockstash никогда не держит ваши данные в чужом облаке — вы указываете машину под вашим контролем, а репозиторий зашифрован паролем, который есть только у вас.

Как узнать, что копия восстановима, без ручного восстановления?

Запланируйте тренировку восстановления. Dockstash восстанавливает последний снимок в изолированную рабочую область, сверяет каждый файл по байтам с источником и проверяет восстановленный дамп — затем ставит на проект значок «прошло/провалено». Еженедельная тренировка означает всегда свежее доказательство.