segunda-feira, 26 de março de 2012

Configurando Zabbix Proxy

     Muitas vezes precisamos monitorar ambientes remotos, onde podemos ter vários dispositivos que precisam ser monitorados. Se esses itens forem monitorados diretamente, pode ocasionar perca de dados, visto o volume de informações enviadas. Com isso, é comum termos gráficos incompletos, triggers acionadas erroneamente, entre outros problemas.
     A partir da versão 1.6 o Zabbix dispõe de monitoramento por meio de Proxy, onde apenas um Agente-Gerente envia as informações para o Servidor Zabbix, veja exemplo abaixo:


Instalando o Zabbix Proxy

Ambiente: Linux Centos 5.7 , Zabbix 1.8.7
Suprir as dependências:
# yum -y install httpd php php-mysql php-gd php-bcmath php-common php-mbstring mysql mysql-server mysql-devel net-snmp net-snmp-devel net-snmp-utils net-snmp-libs gcc curl curl-devel

Download dos pacotes Zabbix
# mkdir /install
# cd /install
# wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.7.tar.gz?download
# wget http://www.zabbix.com/downloads/1.8.5/zabbix_agents_1.8.5.linux2_6.i386.tar.gz

Descompactar os pacotes
# tar xvfz zabbix-1.8.7.tar.gz
# tar xvfz zabbix_agents_1.8.5.linux2_6.i386.tar.gz

Criar a base de dados do zabbix
# service mysqld start
# mysql -u root
mysql> create database zabbix;
mysql> quit;
# cd zabbix-1.8.7/create/schema/
# cat mysql.sql | mysql -u root zabbix
# cd ../data
# cat data.sql | mysql -u root zabbix
# cat images_mysql.sql | mysql -u root zabbix

Adicionando usuário Zabbix
# adduser –shell /bin/false zabbix

Compilando e instalando o Proxy
# cd ../..
# ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --enable-agent --enable-proxy
# make install





Editar o /etc/services
# vi /etc/services
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper

Configurar zabbix_server.conf
# mkdir /etc/zabbix
# cd /etc/zabbix
# cp /install/zabbix-1.8.7/misc/conf/zabbix_server.conf .

NOTA: Nesta instalação, não está sendo utilizado senha para o banco de dados. Caso utilize senha para o banco de dados, editar as seguintes opções no arquivo zabbix_server.conf:
DBUser=Usuário do banco de dados
DBPassword=Senha do banco de dados

No arquivo padrão existem várias outras opções comentadas, veja se alguma não se aplica ao seu cenário.

Descompactar o agente
# cp /install/zabbix_agents_1.8.5.linux2_6.i386.tar.gz .
# tar xzvf zabbix_agents_1.8.linux2_6.i386.tar.gz
# cp /install/zabbix-1.8.7/misc/conf/zabbix_agentd.conf .
# mv zabbix-1.8.5/bin/* .
# mv zabbix-1.8.5/sbin/* .
# rm -rf zabbix-1.8.5/
# rm -rf zabbix_agents_1.8.5.linux2_6.i386.tar.gz
# chown -R zabbix:zabbix /etc/zabbix/

Configurar o agente
# vim /etc/zabbix/zabbix_agentd.conf
Server=IP do Zabbix Proxy
Hostname=Nome da máquina Cliente
StartAgents=3
DebugLevel=3
PidFile=/var/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
Timeout=3

Editar /etc/zabbix/zabbix_proxy.conf
# vim /etc/zabbix/zabbix_proxy.conf
Server=IP do servidor Gerente
Hostname=Nome do proxy
LinstenPort=10052
Configurar serviços para inicialização automática
# ntsysv
Habilite: httpd e mysql
# echo “/etc/zabbix/zabbix_server -c /etc/zabbix/zabbix_server.conf” >> /etc/rc.d/rc.local
# echo “/etc/zabbix/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf” >> /etc/rc.d/rc.local
# echo “/etc/zabbix/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf” >> /etc/rc.d/rc.local
NOTA: Você pode optar por inicializar o Zabbix também pelo ntsysv, como descrito em http://zabbixbrasil.org/wiki/tiki-index.php?page=Iniciando+o+Zabbix+Compilado+automaticamente+pelo+ntsysv+no+CentOS+5.4

Configurando o Proxy no Servidor Zabbix
No Servidor Zabbix, vá em Administration-DM e altere Nodes para Proxies. 

Em seguida vá em Create Proxy. Digite o nome do Proxy e clique em “save”.


Agora basta criar os hosts remotos, lembrando o seguinte:
Name: Nome da máquina remota, deve ser o mesmo que consta no arquivo /etc/zabbix/zabbix_agentd da máquina.
IP address: É o IP que o Proxy irá acessar.
Monitored by proxy: Selecionar o proxy criado.


E pronto! Caso não incie a monitoria em alguns minutos, reinicie o serviço zabbix_agentd e zabbix_proxy no Zabbix Proxy.
Observação: Nesse tutorial não foi abordado liberações no Firewall. Certifique-se que todas as portas utilizadas estão liberadas em seu Firewall



Referencias: