Monitorando Backup’s do Bacula no servidor Zabbix
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.confNa 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 .
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
.
É 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.
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).
Com base no item e trigger 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 | ---- |
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...





