Es hora de revisar el como vamos a respaldar toda la infraestructura que poseemos de Zabbix
El componente clave de la infraestructura es la base de datos, en mi caso esta en mariadb, la estructura de la bd la encontré en zabbix.org, tengo entendido que no ha cambiado desde la versión 2.0 pero no puedo asegurarlo y en la página solo se encuentra hasta la v4.0 (actualmente la versión 5.2 ya fue lanzada oficialmente).
Para el respaldo voy a omitir las 5 tablas que contienen mas datos en la BD y que para este tipo de respaldo no serán necesarios, estas son:
- history
- history_log
- history_str
- history_text
- history_uint
Estas tablas solo almacenan la data recibida y para los propósitos del respaldo no nos interesan, si se requieren solo basta con eliminar las opciones asociadas. Lamentablemente con este método no podemos solo agregar X cantidad de días de información, o es todo o es nada.
Una vez aclarado esto he elegido la herramienta mysqldump ya que es simple, viene por defecto cuando instalamos mariadb-client y cumple las necesidades que tengo.
El comando es algo largo y lo iré explicando de a poco cada una de las opciones usadas
mysqldump --single-transaction --skip-comments --ignore-table-data=zabbix.history --ignore-table-data=zabbix.history_log --ignore-table-data=zabbix.history_str --ignore-table-data=zabbix.history_text --ignore-table-data=zabbix.history_uint [DB] -u [user] -p[password]
Para evitar inconsistencias se deshabilitará el servicio de zabbix, aunque en la documentación del comando indican que si se trabaja con el motor InnoDB esto no es necesario yo personalmente prefiero hacerlo
--single-transaction
La primera opción single-transaction la tuve que usar durante las pruebas ya que esta opción evita que se bloquee la base de datos durante el respaldo y solo funciona con InnoDB
--skip-comments
Esta opción evita que se escriban comentarios en el respaldo, a pesar de que son útiles los comentarios (puede indicar la versión del servidor y fecha del respaldo entre otros datos) en mi caso generaba un error por lo que los deshabilite con esta opción
--ignore-table-data
Esta última opción es para evitar que se respalde la data de la tabla indicada como argumento y, en caso de querer omitir mas de una tabla se usa la misma opción cambiando el nombre de la tabla a omitir.
Un punto importante de esta opción es que si respalda la estructura de la tabla por lo que se creará vacía cuando hagamos una restauración
Finalmente indicamos la base de datos que queremos respaldar, pudiendo omitir esta información para respaldar todas las bases de datos, el usuario y la contraseña a utilizar.
En mi caso obtener el respaldo completo me toma aproximadamente 30 min y el archivo resultante pesa cerca de 5Gb.
Para el respaldo de la configuración basta con respaldar el archivo de configuración ubicado en /etc/zabbix/zabbix_server.conf y todos los directorios adicionales declarados en este archivo (por ejemplo ruta de los certificados TLS, módulos, scripts personalizados).
Y ya con eso tenemos un respaldo completo de la infraestructura de Zabbix para que en caso de algún problema podamos recuperar la operación en el menor tiempo posible.
fuente: