Configurando backup do Zabbix para FTP

De Gigafull
Revisão de 17h04min de 7 de junho de 2021 por Admin (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

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