sexta-feira, 27 de abril de 2012

Configurando Monitoramento Distribuído com o Zabbix

    Introdução

     Quando precisamos monitorar vários locais remotamente, podemos ter lentidão ou perda de dados se todas as informações de monitoria forem enviadas á um único servidor. Para solucionar esse problema, podemos utilizar proxies para melhorar a "monitoria remota". Porém em alguns casos é necessário que a localidade remota tenha acesso ao seu monitoramento(o que não é possível com o proxy), ou então o volume de dados á trafegar é muito grande. Nesses casos, pode-se utilizar o Monitoramento Distribuído, o qual irei demonstrar abaixo.

Nota: A configuração/manutenção do monitoramento remoto por Proxy é muito mais simples do que o Monitoramento Distribuído. Opte por ele somente se de forma nenhuma o Proxy puder te atender.
 
    Visão Geral

    O Monitoramento Distribuído permite que cada nó funcione como um servidor Zabbix normal e envie informações para um nó mestre, que por sua vez pode também enviar para outro nó. Assim, em uma configuração distribuída podemos ter uma arvore hierárquica de informações. Principais características do Monitoramento Distribuído:
  • Cada nó é responsável pelo monitoramento da sua posição, ou seja, pode fazer configurações mesmo em modo "off-line", onde não há conectividade com o nó-mestre.
  • O nó-mestre mantem uma cópia de configuração de cada nó-filho. 
  • Configurações no nó-filho pode ser feita tanto na interface web do próprio nó como na interface web do nó-mestre.
  • Suporte de até 1000 (mil) nós.
  • Todos funcionam independentemente da comunicação; Caso a mesma seja interrompida, os dados são armazenados e depois, opcionalmente, sincronizados novamente.
   Mais informações podem ser obtidas aqui.

   Instalação

Aviso: Recomenda-se que a implantação do Monitoramento Distribuído seja feita em um ambiente onde não possua o zabbix implantado. Caso precise implanta-lo em um ambiente já existente, faça um (bom)backup do banco de dados atual antes de prosseguir. Isso porquê o processo é irreversível, ou seja, um vez configurado com um NodeID é praticamente impossível voltar para o modo convencional.

     Neste tutorial irei simular um cenário simples de duas pontas, sendo da seguinte forma:
 - Localidade 1 Matriz, IP: 192.168.0.49, NodeID 1
 - Localidade 2 Filial, IP: 192.168.0.149 , NodeID 2
 - A filial será o nó-filho e a matriz o nó-mestre.

Passo 1 - Instalação do Zabbix
 
   Faça a instalação padrão do Zabbix tanto na matriz quanto na filial. Para não deixar o tutorial muito longo, não irei abortar a instalação padrão aqui. Você pode ver como faze-lá clicando aqui.

Passo 2 - Configuração do nó-mestre (Matriz)

Alterar o NodeID no arquivo zabbix_server
# vi /etc/zabbix/zabbix_server.conf
   NodeID=1

ATENÇÃO: O processo abaixo é IRREVERSÍVEL. Caso esteja usando uma instalação existente, tenha certeza do que está fazendo.

Converter as tabelas do banco de dados:
# /usr/local/sbin/zabbix_server -n1 -c /etc/zabbix/zabbix_server.conf

Acesse a interface web e vá em Administration-DM e clique em Local Node


Altere o nome para o nome desejado do nó e clique em save.
Obs: JAMAIS altere o ID do nó na interface web. Isso fará com que não seja mais possível entrar nela e configura-lá.


Agora clique em "New Node" e preencha os campos de acordo com as informações do Nó-filho, lembrando de indicar no campo "Master node" o nó-mestre. Depois clique em "save"


Com isso, o nó-mestre já está configurado:


Passo 3 - Configuração do nó-filho (filial)

Alterar o NodeID no arquivo zabbix_server
# vi /etc/zabbix/zabbix_server.conf
   NodeID=2

Converter as tabelas do banco de dados:
# /usr/local/sbin/zabbix_server -n2 -c /etc/zabbix/zabbix_server.conf

Acesse a interface web do nó-filho e vá em Administration-DM e clique em Local Node


     Altere o nome do nó e clique em "save".  

    
     Clique em "New node" e preencha os campos de acordo com as informações do nó-mestre, colocando no campo "Type" Mestre. Clique em "save".


     Agora basta reiniciar o serviço zabbix_server nos servidores (ou aguardar), e verificar no nó-mestre a recepção dos dados:

# tail /tmp/zabbix_server.log
 2006:20120427:115814.665 NODE 1: Received configuration changes from slave node 2 for node 2 datalen 4439252 


   Dashboard do nó-mestre


Referências: