E-mail com resumo dos backups do Bareos

8 Comments

E aí pessoal, tudo bem?

Assunto novo no blog, agora vamos falar um pouco sobre Bareos, solução totalmente open source de backup.

Estou usando o software há alguns meses e estou gostando muito do desempenho e de como ele funciona. Já utilizei o Bareos com backup em disco, em drive de fita e em autoloader (Robô de fitas) e todos funcionam muito bem.

Este artigo foi escrito utilizando o CentOS 7. Para a versão CentOS 6, os comandos são similares.

Uma das poucas coisas que não gostei muito foi o sistema de notificação. Ele é meio engessado e a configuração inicial dele é bem fraca. Para cada trabalho de backup é gerado um e-mail, ou seja, se eu tenho 50 servidores com jobs no meu Bareos, quer dizer que vou receber 50 e-mails por dia, com o status de cada Job. Hummmm….. não!

Eu estava pensando em uma forma de receber um e-mail, que poderia ser diário, mas com um resumo de todos os backups que foram realizados naquele dia. Então comecei a caçar scripts na Internet, em sua grande maioria desenvolvidos para Bacula, e depois de muito fuçar, achei alguns arquivos que consegui adaptar para a minha necessidade. E é isso que venho compartilhar com vocês. 🙂

Programa para envio de e-mails:

Eu realizei alguns testes com vários softwares para envio de e-mails, mas como eu uso uma conta do Google Apps, o sistema que melhor me atendeu foi o phpMailer, que suporta vários tipos de criptografia e provavelmente vai funcionar com qualquer e-mail.

Antes de tudo, instale o Git, para clonar os arquivos do GitHub:

# yum install git -y

Agora vamos baixar o Mailer:

# cd ~

# git clone https://github.com/marceloecmedeiros/phpmailer.git

# cd phpmailer

# tar -xzvf pacotemail.tar

Você terá a pasta PHPmailer e o arquivo executável zmail.sdx. Vamos movê-los para a pasta do Bareos:

# mv PHPMailer /etc/bareos

# mv zmail.sdx /etc/bareos

Agora vamos ajustar as permissões do arquivo zmail.sdx para que ele se torne executável:

# chmod +x /etc/bareos/zmail.sdx

Precisamos agora, editar o arquivo zmail.sdx para preencher com os dados da sua conta de e-mail e SMTP. Já deixei o arquivo bem explicado e comentado, não tem segredo basta alterar os seguintes campos:

$mail->Host = “smtp.empresa.com”;
$mail->Port = porta;
$mail->SMTPSecure = ‘tls’;
$mail->Username = “meuemail@minhaempresa.com.br”;
$mail->Password = “minhasenha”;
$mail->From = ‘meuemail@minhaempresa.com.br’;
$mail->setFrom(‘meuemail@minhaempresa.com.br’, ‘BACKUP BAREOS’);
$mail->addReplyTo(‘meuemail@minhaempresa.com.br’, ‘BACKUP BAREOS’);

Como devem ter percebido, esse arquivo não fui em que desenvolvi, então mantive os cŕeditos do mesmo 😉

Se quiser fazer um teste, a sintaxe é:

# ./zmail.sdx <destinatario> <assunto> <mensagem>

Ficaria mais ou menos assim (eu uso aspas para não ter problemas com espaçamento):

# ./zmail.sdx meuemail@minhaempresa.com.br “teste de assunto” “teste do corpo do e-mail”

Para funcionar, o arquivo zmail.sdx e a pasta PHPMailer precisam estar na mesma pasta (/etc/bareos no nosso exemplo).

Como enviar o e-mail:

Eu pensei em algumas formas do próprio Bareos montar esse e-mail e enviar assim que terminar todos os Jobs, mas confesso que não consegui achar uma solução e não quis perder muito tempo. Então minha solução foi montar um script que faz um select no banco de dados do Bareos, buscando os Jobs que eu defino, formata a saída e envia ao zmail.sdx que por sua vez me envia por e-mail.

Buscando os trabalhos no banco de dados:

Digamos que quero um resumo com ID, nome, tipo, level e tamanho dos backups das ultimas 24 horas. Eu poderia rodar o seguinte comando:

# echo “SELECT JobId, Name, Type, Level, JobBytes FROM Job WHERE Type=’B’ AND JobStatus=’T’ AND RealEndTime >= DATE_ADD(NOW(), INTERVAL -24 HOUR) ORDER BY JobId;” | mysql -ubareos -pbareos bareos

JobId   Name                            Type    Level    JobBytes
96        ServidorDeArquivos   B          D          412920369
97        ServidorWebLinux       B          D          0
98        ServidorTomcat            B          D          761683848
99        BackupCatalogo           B          D         241984968

Script para formatar e enviar por e-mail:

Já temos nosso SQL então agora vamos utilizar um script em shell para formatar essa saída e enviar bonitinho no nosso e-mail.

Faça o download do script do GitHub:

# cd ~

# git clone https://github.com/marceloecmedeiros/sumariobareos.git

# cd sumariobareos

# mv mailbareos.sh /etc/bareos

# cd /etc/bareos

Edite o arquivo mailbareos.sh para trocar seu usuário, senha e servidor, caso necessário. Perceba que o ‘-u’ e o ‘-p’ no usuário e senha não podem ser removidos, o script usa ele. Então, se o usuário é ‘bareos’ o campo dbuser ficará ‘-ubareos’ .Se sua senha for ‘MinhaSenha’ o campo dbpass ficará ‘-pMinhaSenha’.

A sintaxe do script é:

# ./mailbareos.sh <intervalo em horas>

Para enviar um resumo das últimas 24 horas:

# ./mailbareos.sh 24

O script foi feito dessa forma para que você defina o relatório que precisa. Você pode mandar um e-mail diário ou semanal, basta alterar as horas!

Perceba também que o script possui alguns elementos de HTML. Ele foi feito assim para que a formatação fique intacta quando se utiliza Gmail por exemplo, que bagunçava as tabulações quando recebia o e-mail em texto puro.

Configurando a Cron:

Esse script não será executado pelo Bareos, nós vamos chamá-lo via Cron. Então, se você quer receber um e-mail diário as 8h00, todos os dias, abra sua cron…

# crontab -e

… e adicione a seguinte linha

0 8 * * * /etc/bareos/mailbareos.sh 24

Testando a solução:

Agora espere até as 8 da manhã do dia seguinte….

…ou…

…execute seu script na mão para realizar um teste:

# /etc/bareos/mailbareos.sh 24

Resultado:

resumoemail.fw

É isso pessoal! Espero que os primeiros posts sobre Bareos possam ajudar nossa comunidade a crescer!

Abraço a todos!

SHARE! o/

Profissional com mais de 10 anos de experiência em redes, infra estrutura, ambientes Windows e Linux. Atualmente trabalha com tecnologias open source para monitoramento, backup, virtualização e segurança da informação.

Sobre o blog M2 Networks

Esse blog é mantido para ajudar profissionais de TI e clientes que querem conhecer melhor as ferramentas utilizadas pela M2 Networks.

Consulte-nos

Gostou do artigo e quer saber mais como podemos ajudar a manter a tecnologia alinhada ao seu negócio? Entre em contato e solicite a presença de um especialista.

Assine nossa newsletter

Mais artigos

Todos os posts
8 Comments
    • WESLEY MALTA
    • 30 de maio de 2017
    Responder

    Confesso que foi um dos melhores step-by-step que já ultilizei!
    Parabéns !

    • helton carlos
    • 26 de março de 2017
    Responder

    Boa tarde Marcelo , primeiramente queria da os parabéns pelo tutorial !!!’ e estou com uma duvida pretendo implantar esse servidor de backup na minha empresa onde trabalho . mais gostaria de saber quais seriam os requisitos pra montar o servidor em uma maquina local, ou se também seria viável subir em uma vm no servidor vmware esx subir o centos instalar o bareos apontar e armazenar os backups em outro servidor NAS na rede ( Servidor de Armazenamento ShareCenter D-Link DNS-320L Storage ) ?

    • Responder

      É possível sim Helton. Mas seria interessante um iSCSI ou FC, pois elimina a camada de software, que pode causar lentidão na cópia dos arquivos. Os serviços do Bareos são leves, como os do Bácula, um servidor com 8GB de ram deve rodar com sobras.

    • Everton
    • 27 de dezembro de 2016
    Responder

    Olá Marcelo, em primeiro lugar parabéns pelo belo material trazido. Só recente no linux e estou fazendo a implementação do Barros no meu trabalho. Preciso além de fazer o backup de arquivos ensinado por você, fazer também o backup de todos os bancos do MySQL. Preciso que o Barros se conecte ao MySQL e faça o backup dos bancos. Consegue me ajudar com essa conta figuração?

    • Responder

      Olá Everton,

      Para evitar configurações muito complexas, eu faço um script que faz backup em uma pasta e esse conteúdo eu copio pro Bareos. Não te interessa fazer dessa forma?

    • Robson Reis
    • 24 de outubro de 2016
    Responder

    Medeiros, Boa Tarde.
    Queria lhe parabenizar pelos excelentes tutoriais!!!

    Uma dúvida, eu segui o procedimento para implementar o envio de resumos por e-mails, mas ele esta gerando muitos erros. Ele autentica, envia, mas os e-mails chegam “Bagunçados”, não sei se ó por conta do banco de dados que estou utilizando no Bareos (MARIADB), se tiver um vídeo mostrando como faz essa configuração e se puder, me mande por gentileza. Desde já agradeço a atenção e mais uma vez parabens…!!!

    • Responder

      Oi Robson tudo bem?

      Eu tive muito problema com o e-mail bagunçado e resolvi inserindo a tag html no script, como está no artigo. Tente tirar essa tag, pode ser que seu e-mail não trabalhe com HTML, como é meu caso.

Comente