Configurando backup do Zabbix para FTP
HOMOLOGADO COM
Zabbix 5.2.6 + Centos 8
Criar pasta "Backup" no /root/
mkdir /root/Backup/
Criar pasta "Scripts" no /root/
mkdir /root/Scripts/
Instalar o NCFTPPUT
yum install ncftp Se acontecer o erro No match for argument: ncftp, seguir procedimentos abaixo wget https://download-ib01.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -Uvh epel-release*rpm dnf install ncftp
Criar um arquivo com nome .backupserver.cfg dentro da pasta /root/Scripts/, e neste arquivo, colocar os dados de acesso ao FTP
host 20.20.20.20 user usuarioFTP pass senhaFTP
Cria um arquivo com nome Cria_Pasta_Dia_Backup.sh dentro da pasta /root/Scripts/, e neste arquivo configurar script para criar uma pasta onde ficara salvo os arquivos do dia atual
#!/bin/bash diadehoje=$(date +'%Y%m%d') mkdir /root/Backup/BackupZabbix_$diadehoje
Cria um arquivo com nome Copia_Arquivos_Backup.sh dentro da pasta /root/Scripts/, e neste arquivo configurar script para copiar os arquivos que serão exportados para o FTP para a pasta do backup
Na cópia dos arquivos, será criada pastas com _ no nome, o _ corresponde a /. Desta maneira, fica mais facil o entendimento para futura importação, exemplo:
etc_zabbix = /etc/zabbix/
usr_share_zabbix = /usr/share/zabbix/
#!/bin/bash diadehoje=$(date +'%Y%m%d') cp -r /etc/zabbix/ /root/Backup/BackupZabbix_$diadehoje/etc_zabbix cp -r /usr/share/zabbix/ /root/Backup/BackupZabbix_$diadehoje/usr_share_zabbix cp -r /usr/lib/zabbix/ /root/Backup/BackupZabbix_$diadehoje/usr_lib_zabbix cp -r /usr/local/share/snmp/mibs /root/Backup/BackupZabbix_$diadehoje/usr_local_share_snmp_mibs cp -r /etc/httpd/conf.d /root/Backup/BackupZabbix_$diadehoje/etc_httpd_conf.d
Criar um arquivo com nome Gera_Backup_DB.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/sh #SCRIPT PARA BACKUP BASEADO EM MYSQL #VARIAVEL PARA ARMAZENAR A DATA PARA NOMEAR O BACKUP DATA=`/bin/date +%Y%m%d` #DEFINIR LOCAL E NOME DO BACKUP, UTILIZAR O $DATA PARA IDENTIFICAR A DATA DO BKP NOME="/root/Backup/BackupZabbix_$DATA/bkp_db_zabbix_$DATA.sql" #VARIAREIS CONEXAO COM DB HOST="localhost" USER="root" DATABASE="zabbix" #COMANDO DE DUMP DO BANCO mysqldump -u $USER -p'SenhaDBZabbix' $DATABASE > $NOME
Cria um arquivo com nome Compactar_Arquivos.sh, dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash dia=$(date +'%Y%m%d') tar -cvpzf /root/Backup/BackupZabbix_$dia.tar.gz /root/Backup/BackupZabbix_$dia/
Cria um arquivo com nome cria_arquivo_informacoes.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash cat >'/root/Backup/informacoes' <<EOT Versão SO: Versão Zabbix: EOT
Cria um arquivo com nome envia_bkps_ftp.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash dia=$(date +'%Y%m%d') ncftpput -f /root/Scripts/.backupserver.cfg -vZmRF / /root/Backup/BackupZabbix_$dia.tar.gz ncftpput -f /root/Scripts/.backupserver.cfg -vZmRF / /root/Backup/informacoes
Cria um arquivo com nome Excluir_bkps.sh dentro da pasta /root/Scripts/, neste arquivo, configurar o script a seguir
#!/bin/bash rm -rf /root/Backup/*
Agendar CRON no arquivo /etc/crontab, no exemplo abaixo, vai fazer backup toda segunda-feira a noite, e na terça as 01:00 irá realizar a exclusão do backup de dentro do Zabbix
00 23 * * mon root bash /root/Scripts/Cria_Pasta_Dia_Backup.sh 05 23 * * mon root bash /root/Scripts/Copia_Arquivos_Backup.sh 05 23 * * mon root bash /root/Scripts/cria_arquivo_informacoes.sh 10 23 * * mon root bash /root/Scripts/Gera_Backup_DB.sh 30 23 * * mon root bash /root/Scripts/Compactar_Arquivos.sh 40 23 * * mon root bash /root/Scripts/envia_bkps_ftp.sh 00 03 * * tue root bash /root/Scripts/Excluir_bkps.sh
Programar auditoria dos backups
VMs - Zabbix / Rotina Toda Segunda-Feira Arquivo compactado, dentro dele (DB, /etc/zabbix/*, /usr/share/zabbix/*, /usr/lib/zabbix/*, /usr/local/share/snmp/mibs/, /etc/httpd/conf.d) Arquivo informacoes com as informações de versão