Копирование метрик
В платформе astra-monitoring метрики хранятся в базе данных VictoriaMetrics, которая предлагает несколько способов резервного копирования данных. Рассморим следующие варианты:
Резервное копирование для Docker Compose
Подготовка
Убедитесь, что у вас есть доступ к хосту, где работает VictoriaMetrics
Проверьте расположение данных VictoriaMetrics в вашем docker-compose.yml:
services: vmetrics: image: registry.astralinux.ru/am/victoria-metrics volumes: - ./victoria-metrics/data:/victoria-metrics-data
Запомните путь ./victoria-metrics/data - это место хранения данных на хосте.
Примечание
Данный путь может отличаться в зависимости от установки, администратор может использовать любой удобный способ хранения данных.
Установите утилиту vmbackup, если её нет:
Полный бэкап
Создайте директорию для бэкапов:
Важно
Остановите запись новых данных (если возможно) или выполняйте бэкап в период низкой нагрузки.
Выполните полный бэкап:
Проверьте созданный бэкап:
Инкрементальный бэкап
Создайте директорию для инкрементальных бэкапов:
Выполните инкрементальный бэкап:
Обновите ссылку на последний снапшот:
Восстановление
Остановите VictoriaMetrics:
Очистите данные (если нужно):
Восстановите из бэкапа:
Запустите VictoriaMetrics:
Резервное копирование для Helm
Подготовка
Убедитесь, что у вас есть доступ к кластеру Kubernetes
Проверьте конфигурацию вашего Helm релиза:
Используйте имя своего релиз в место astra-monitoring и укажите namespace, к примеру monitoring
Обратите внимание на persistence.storageClass и persistence.size
Установите утилиты vmbackup и kubectl:
Полный бэкап
Создайте PVC для хранения бэкапов:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: vm-backup-pvc namespace: monitoring spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi storageClassName: standard
Примените:
Создайте Job для полного бэкапа:
apiVersion: batch/v1 kind: Job metadata: name: vm-full-backup namespace: monitoring spec: template: spec: containers: - name: vmbackup image: victoriametrics/vmbackup command: - "/bin/sh" - "-c" - | /vmbackup-prod \ -storageDataPath=/storage \ -dst=fs:///backup/$(date +%Y-%m-%d_%H-%M-%S)_full volumeMounts: - name: storage mountPath: /storage - name: backup mountPath: /backup volumes: - name: storage persistentVolumeClaim: claimName: vm-storage-pvc # Замените на ваш PVC VictoriaMetrics - name: backup persistentVolumeClaim: claimName: vm-backup-pvc restartPolicy: Never backoffLimit: 1
Примените:
Проверьте статус Job:
Инкрементальный бэкап
Создайте ConfigMap для хранения информации о последнем снапшоте:
Создайте CronJob для инкрементальных бэкапов:
apiVersion: batch/v1 kind: CronJob metadata: name: vm-incremental-backup namespace: monitoring spec: schedule: "0 * * * *" # Каждый час jobTemplate: spec: template: spec: containers: - name: vmbackup image: victoriametrics/vmbackup command: - "/bin/sh" - "-c" - | /vmbackup-prod \ -storageDataPath=/storage \ -dst=fs:///backup/$(date +%Y-%m-%d_%H-%M-%S)_incremental \ -snapshotNameURL=fs:///backup/latest_snapshot && \ /vmbackup-prod \ -snapshot.createURL=fs:///backup/latest_snapshot \ -snapshotOriginURL=fs:///backup/$(ls -t /backup | grep incremental | head -n1) volumeMounts: - name: storage mountPath: /storage - name: backup mountPath: /backup volumes: - name: storage persistentVolumeClaim: claimName: vm-storage-pvc - name: backup persistentVolumeClaim: claimName: vm-backup-pvc restartPolicy: Never backoffLimit: 1
Примените:
Восстановление
Масштабируйте VictoriaMetrics до 0 реплик:
Удалите текущие данные:
Создайте новый PVC:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: vm-storage-pvc namespace: monitoring spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Gi storageClassName: standard
Примените:
Запустите Job для восстановления:
apiVersion: batch/v1 kind: Job metadata: name: vm-restore namespace: monitoring spec: template: spec: containers: - name: vmrestore image: victoriametrics/vmrestore command: - "/vmrestore-prod" - "-src=fs:///backup/2025-01-01_full" # Укажите нужный бэкап - "-storageDataPath=/storage" volumeMounts: - name: storage mountPath: /storage - name: backup mountPath: /backup volumes: - name: storage persistentVolumeClaim: claimName: vm-storage-pvc - name: backup persistentVolumeClaim: claimName: vm-backup-pvc restartPolicy: Never backoffLimit: 1
Примените:
Проверьте логи восстановления:
Масштабируйте VictoriaMetrics обратно: