Diário de Viagens e Trabalhos do Pajé
21mai/1029

Monitorando Backup’s do Bacula no servidor Zabbix

Posted by Pajé

Mais um documento sobre o Zabbix.

Introdução

O objetivo deste trabalho é desenvolver um documento para auxiliar os colaboradores da empresa onde trabalho, na customização do Zabbix na monitoração dos backup's realizados pelo servidor Bacula. A necessidade é obter um dashboard único de monitoração contemplando todos os eventos do ambiente.

Entendendo as configurações

Esse documento parte do pressuposto que já existe em operação no ambiente os servidores Zabbix, e Bacula, que serão ajustados para realizar a nova função.

Não existe necessidade de instalação de aplicativos ou serviços adicionais.

O fluxo da monitoração se resume na configuração do servidor Bacula para enviar as mensagens do bconsole, após o backup, não só para os logs mas também para o servidor Zabbix.

Para que isso aconteça, é utilizado um script escrito em perl, que coleta essas informações e envia ao servidor Zabbix através do "zabbix trapper", onde items e triggers se encarregam de formatar os dados e exibir para os operadores.

Esse procedimento foi implementado utilizando Debian GNU/Linux lenny, Bacula 3.0.2-3 backports e Zabbix 1.8.2.

Ajustando o servidor Bacula.

Para começar, faça donwload do script zabbix_bacula.pl, extraia, permissione e mova para o diretório /usr/local/bin.

# # tar -xzvf zabbix_bacula.tar.gz
# chmod 755 zabbix_bacula.pl
# chown root:zabbix zabbix_bacula.pl
# mv zabbix_bacula.pl  /usr/local/bin/

OBS: Edite o script e veja se o caminho para o zabbix_sender está correto.

my $zabbix_sender = "/usr/local/bin/zabbix_sender";

São duas as alterações necessárias no Bacula Director. Sendo assim, edite o arquivo conforme o exemplo abaixo e configure os campos.

# vi /etc/bacula/bacula-dir.conf

Na configuração das mensagens, adicione/modifique os valores:

mailcommand = "/usr/local/bin/zabbix_bacula.pl %r %c"
mail = zabbixserver.paje.net.br = all, !skipped

As configurações do Messages, servem para dizer como e para onde serão enviadas as mensagens do bconsole no servidor Bacula após os backup's. Neste caso, o campo mailcommand configura o path do script que customizamos, bem como os parâmetros para a execução, já o campo mail configura o host do servidor Zabbix e parâmetros. Mais informações veja no manual do bacula.

Nota: Cheque se o hostname ou DNS name configurado resolve corretamente o nome. Por padrão existem dois tipos de mensagens configuradas, o Standard e Daemon. Tenha certeza que na configuração do Job no Bacula client, o campo Messages corresponda com a configuração realizada.

OBS: É necessário que o campo Name tenha o mesmo valor tanto na configuração do host no Zabbix, quanto na configuração do cliente Bacula. Reinicie o serviço Bacula Diretor e se tudo ocorrer bem, seu servidor está ajustado.

Ajustando o servidor Zabbix

Todos os ajustes do Zabbix devem ser realizados através da interface Web. Logado, siga até a tela de configuração de itens: Configuration > Hosts No combo box localizado no canto superior direito, selecione Templates e abaixo, em Group, selecione em Templates .

Figura 01: Tela de configuração dos templates

Os items e triggers que estamos adicionando foram inseridos dentro do Template Linux, sendo assim clique em itens do Template Linux e na próxima tela no botão Create Item

.

Figura 02: Botão "Create Itens"

É necessário criar 8 items e triggers. Porém será exemplificado a criação a trigger bacula.backup.result que serve como exemplo para a criação das outras.

Figura 03: Tela para criar itens

Crie agora que temos o item configurado, crie a trigger através do botão "Create Trigger" e na expressão, aponte para o item criado, no campo Function selecione last value > N e N coloque 0 (zero).

Figura 04: Tela para criar triggers

Com base no itemtrigger criados anteriormente, crie as outras 7 utilizando os parâmetros abaixo:

Nome da trigger Items e Key de monitoração Valor de retorno
Bacula backup result bacula.backup.result 0 = OK ou OK -- with warnings e 1 = Erro
Bacula FD Byteswritten bacula.fd.byteswritten 2.95 MBytes
Bacula FD Fileswritten bacula.fd.fileswritten 7 bytes
Bacula SD Byteswritten bacula.sd.byteswritten 2.95 MBytes
Bacula SD Fileswritten bacula.sd.fileswritten 7 bytes
Bacula last volume bytes bacula.lastvolumebytes 11789564846
Bacula verify filesexamined bacula.verify.filesexamined ----
Bacula verify result bacula.verify.result ----

OBS: Na criação dos itens bacula.fd.fileswritten e bacula.fd.byteswritten , configure o campo Units com o valor Bytes . Os valores das triggers bacula.verify.filesexamined e bacula.verify.result não foram testados.

Referências/Agradecimentos

Sites

http://www.zabbix.com/forum/showthread.php?t=8145

http://www.bacula.org/en/dev-manual/main/main/Messages_Resource.html


Agradecimentos

Ao amigo da comunidade Zabbix milprog, por escrever o cookbook utilizado como base neste trabalho e auxiliar nos momentos de dúvida. Thank you again...