Estructura de navegación
Tabla de contenidos
Backups
Todo nuestro sistema se basa en la obtención de métricas, su uso y gestión, por lo cual tener nuestros datos es critico, afortunadamente influxdb ya tiene esto en cuenta y tiene un comando para la realización de backups, como no se recomienda guardar los backups en la misma máquina compartiremos una carpeta desde DC-01, la montaremos en nuestro servidor de monitorización y realizaremos backups periódicos mediante una tarea cron, para ello:
- Crearemos una carpeta de backups y la compartiremos desde
DC-01, gestionando los permisos para que se puedan guardar las copias. - Instalaremos
cifs-utilsysmbclientpara la conexión desde el servidor de monitorización. - Crearemos una carpeta donde montar la carpeta compartida la carpeta y la montaremos con el comando
sudo mount -t cifs //172.19.0.10/backups /mnt/backup -o username="administrador",password="abc123.",vers=3.0, podemos también pasar el usuario y contraseña por un fichero. - Crearemos una entrada en fstab para que la ubicación este montada permanentemente.


- Comprobamos que si creamos una carpeta en Windows aparece en la ubicación de Linux.

- Crearemos el backup de InfluxDB con el comando
influx backup --org-id c184b96027631c2a --token 2TxN_pBWuIw5MsZDOeSViU2HZqHUKe0W6iCuxGUOXaAvnMtX8B2WJP_EowJ7oN7SQve1F9qYVoLLRPJG3NsKAQ== --skip-verify /mnt/backup
En caso de que quisiésemos solamente copiar el backup de Prometheus usaríamos el comando:
influx backup --org-id c184b96027631c2a --token 2TxN_pBWuIw5MsZDOeSViU2HZqHUKe0W6iCuxGUOXaAvnMtX8B2WJP_EowJ7oN7SQve1F9qYVoLLRPJG3NsKAQ== --bucket prometheus --skip-verify /mnt/backup
Tras ejecutarlo veremos que nos ha creado varios archivos.

Vamos a optimizar la creación de backups con un script:
#!/bin/bash
influx backup --org-id c184b96027631c2a --token 2TxN_pBWuIw5MsZDOeSViU2HZqHUKe0W6iCuxGUOXaAvnMtX8B2WJP_EowJ7oN7SQve1F9qYVoLLRPJG3NsKAQ== --skip-verify /opt/backup
BACKUP_SOURCE="/opt/backup"
BACKUP_DEST="/mnt/backup"
MAX_BACKUPS=7
DATE=$(date +%Y%m%d%H%M%S)
tar -czf "$BACKUP_DEST/backup-$DATE.tar.gz" -C "$BACKUP_SOURCE" .
if [ $? -eq 0 ]; then
rm -rf "$BACKUP_SOURCE"/*
else
echo "Error"
exit 1
fi
# Contar el número de backups y eliminar los más antiguos si es necesario
BACKUP_COUNT=$(ls "$BACKUP_DEST"/backup-*.tar.gz | wc -l)
if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then
# Eliminar los backups más antiguos
OLDEST_BACKUP=$(ls "$BACKUP_DEST"/backup-*.tar.gz | sort | head -n 1)
rm "$OLDEST_BACKUP"
fi

Y si lo comprobamos veremos que se ha creado en el servidor.

Si ahora borrásemos un bucket por error:

Sería tan fácil como descomprimir el comprimido y restaurarlo.

Volverá estar operativo con todos los datos a fecha del último backup-

Por último crearíamos la tarea en cron, y se ejecutaría todos los días a las 00:00.
