• Русский
  • Резервное копирование и восстановление данных мониторинга Prometheus

    Содержание

    Обзор функции

    Данные мониторинга Prometheus хранятся в формате TSDB (Time Series Database) и поддерживают функции резервного копирования и восстановления. Данные мониторинга сохраняются в назначенном пути внутри контейнера Prometheus (указанном в конфигурации storage.tsdb.path, по умолчанию /prometheus).

    template:
      spec:
        containers:
          - args:
              - '--storage.tsdb.path=/prometheus' # Каталог для хранения данных мониторинга в контейнере Prometheus

    Сценарии использования

    • Сохранение исторических данных мониторинга при миграции системы
    • Предотвращение потери данных из-за непредвиденных инцидентов
    • Миграция данных мониторинга на новый экземпляр Prometheus

    Предварительные требования

    • Установлен плагин ACP Monitoring с Prometheus (имя компонента вычислений — prometheus-kube-prometheus-0, тип — StatefulSet)
    • Привилегии администратора кластера
    • Достаточно свободного места для хранения в целевом расположении

    Порядок выполнения операций

    Резервное копирование данных

    Перед началом резервного копирования обратите внимание: при сохранении данных мониторинга Prometheus сначала помещает собранные данные в кэш, а затем периодически записывает их в каталог хранения. Следующие методы резервного копирования используют каталог хранения как источник данных, поэтому данные, находящиеся в кэше на момент резервного копирования, не включаются.

    Метод 1: Резервное копирование каталога хранения (рекомендуется)

    1. Используйте команду kubectl cp для резервного копирования:

      kubectl cp -n cpaas-system prometheus-kube-prometheus-0-0:/prometheus -c prometheus <target storage path>
    2. Резервное копирование из бэкенда хранения (в зависимости от типа хранилища, выбранного при установке):

    • LocalVolume: копировать из каталога /cpaas/monitoring/prometheus
    • PV: копировать из каталога монтирования PV (рекомендуется установить для PV параметр persistentVolumeReclaimPolicy в значение Retain)
    • StorageClass: копировать из каталога монтирования PV

    Метод 2: Резервное копирование с помощью снимка (snapshot)

    1. Включите Admin API:

      kubectl edit -n cpaas-system prometheus kube-prometheus-0

      Добавьте конфигурацию:

      spec:
        enableAdminAPI: true

      Примечание: после обновления и сохранения конфигурации Pod Prometheus (имя Pod: prometheus-kube-prometheus-0-0) перезапустится. Дождитесь, пока все Pod будут в статусе Running, прежде чем выполнять дальнейшие операции.

    2. Создайте снимок:

      curl -XPOST <Prometheus Pod IP>:9090/api/v1/admin/tsdb/snapshot

    Восстановление данных

    1. Скопируйте резервные данные в контейнер Prometheus:

      kubectl cp ./prometheus-backup cpaas-system/prometheus-kube-prometheus-0-0:/prometheus/
    2. Переместите данные в указанный каталог:

      kubectl exec -it -n cpaas-system prometheus-kube-prometheus-0-0 -c prometheus sh
      mv /prometheus/prometheus-backup/* /prometheus/

      Упрощение: если при установке плагина тип хранилища — LocalVolume, достаточно скопировать резервные данные напрямую в каталог /cpaas/monitoring/prometheus/prometheus-db/ на узле, где установлен плагин.

    Результаты операций

    • После завершения резервного копирования в целевом каталоге будет находиться полный набор данных мониторинга в формате TSDB
    • После восстановления Prometheus автоматически загрузит исторические данные мониторинга

    Дополнительная информация

    Описание формата данных TSDB

    Пример структуры данных в формате TSDB:

    ├── 01FXP317QBANGAX1XQAXCJK9DB
    │   ├── chunks
    │   │   └── 000001
    │   ├── index
    │   ├── meta.json
    │   └── tombstones
    ├── chunks_head
    │   ├── 000022
    │   └── 000023
    ├── queries.active
    └── wal
        ├── 00000020
        ├── 00000021
        ├── 00000022
        ├── 00000023
        └── checkpoint.00000019
            └── 00000000

    Особенности резервного копирования данных

    • Резервные копии не включают данные, находящиеся в кэше на момент создания копии
    • Рекомендуется выполнять резервное копирование данных регулярно
    • При использовании PV-хранилища рекомендуется установить persistentVolumeReclaimPolicy в значение Retain

    Следующие шаги

    • Проверить корректность восстановления данных мониторинга
    • Регулярно планировать задачи резервного копирования
    • При использовании метода резервного копирования со снимком можно отключить Admin API при необходимости