Zabbix: Proxi com PFSENSE



Introdução:

Muitas vezes precisamos monitorar ambientes remotos, onde podemos ter vários dispositivos que precisam ser monitorados. Se esses dispositivos forem monitorados diretamente, pode ocasionar perda de dados, visto o volume de informações enviadas, atrasos nas leituras, perda de informação por indisponibilidade do link, etc. Com isso, é comum que o Zabbix apresente 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:



Pré-Requisitos:

Apache (httpd)
Php (php php-common)
Módulos Php:
MySQL (php-mysql)
GD (php-gd)
BC Math (php-bcmath)
Multibyte String (php-mbstring)
XML (php-xml)
MySQL (mysql mysql-server mysql-devel)
Net-Snmp (net-snmp net-snmp-devel net-snmp-utils net-snmp-libs)
GCC (gcc gcc-devel)
cURL (curl curl-devel)

Suprir as Dependências:

Antes de iniciarmos a instalação do Zabbix precisamos suprir as dependências.

# yum -y install httpd php php-common php-mysql php-gd php-bcmath php-mbstring php-xml mysql mysql-server mysql-devel net-snmp net-snmp-devel net-snmp-utils net-snmp-libs gcc gcc-devel gcc-devel curl curl-devel

Realizar o Download dos Fontes:

Por questões de organização eu sempre crio um diretório "/install" e dentro dele vou criando os sub-diretórios com o nome dos softwares que preciso instalar.
No caso do Agente observe a Versão do seu Kernel e a Arquitetura do seu Processador antes de baixar o pacote. No exemplo abaixo, baixei um pacote compatível com Kernel 2.6 e Arquitetura i386.

# mkdir /install
# cd /install/
# mkdir zabbix
# cd zabbix/
# wget http://prdownloads.sourceforge.net/zabbix/zabbix-*.tar.gz?download (external link)
# wget http://www.zabbix.com/downloads/*/zabbix_agents_*.linux2_6.i386.tar.gz (external link)

Observação:
Substitua o "*" pela versão do Zabbix.

Criar a Conta do Usuário Zabbix:

# adduser zabbix -s /bin/false

Descompactar os Fontes:

# tar xzvf zabbix-*.tar.gz

Criar a Base de Dados do Zabbix:

# service mysqld start
# mysql -u root

mysql> create database zabbix;
mysql> quit;

# cd zabbix-*/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

Configurar e Compilar os Códigos Fontes (Sources):

# cd ../..
# ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --enable-agent --enable-proxy

Realizar a Instalação:

# make install

Configurar o "/etc/services":

Edite o arquivo e acrescente ao final do mesmo as informações abaixo
# 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

Descompactar o Agente:

# mkdir /etc/zabbix
# cp /install/zabbix/zabbix_agents_*.linux2_6.i386.tar.gz /etc/zabbix/
# cd /etc/zabbix/
# tar xzvf zabbix_agents_*.linux2_6.i386.tar.gz
# mv bin/* .
# mv sbin/* .
# rm -rf zabbix_agents_*.linux2_6.i386.tar.gz
# rm -rf bin/
# rm -rf sbin/

Copiar os arquivos de configuração e acertar as permissões do diretório "/etc/zabbix":

# cp /install/zabbix/zabbix-*/misc/conf/zabbix_server.conf .
# cp /install/zabbix/zabbix-*/misc/conf/zabbix_agentd.conf .
# cp /install/zabbix/zabbix-*/misc/conf/zabbix_proxy.conf .
# chown -R zabbix:zabbix /etc/zabbix/

Configurar o "/etc/zabbix/zabbix_server.conf":

# vi /etc/zabbix/zabbix_server.conf

Se a sua base de dados possuir senha altere o parâmetro:
DBPassword=zabbix

Observação:
Neste caso a senha da base de dados é "zabbix".

Configurar o "/etc/zabbix/zabbix_agentd.conf":

# vi zabbix_agentd.conf

Conteúdo Mínimo do Arquivo:
Server=IP do Servidor do Zabbix

Hostname=Nome da máquina Cliente

StartAgents=3

DebugLevel=3

PidFile=/var/tmp/zabbix_agentd.pid

LogFile=/tmp/zabbix_agentd.log

Timeout=3

Configurar o "/etc/zabbix/zabbix_proxy.conf":

# vi zabbix_proxy.conf

Conteúdo Mínimo do Arquivo:

Server=IP do Servidor do Zabbix

Hostname=Nome do proxy

LinstenPort=10052

Observação:
Os arquivos de configuração possuem outros parâmetros, todos com comentários sobre seu uso, este é o conteúdo mínimo dos arquivos, mas você deve verificar todas as opções disponíveis e decidir quais habilitar.

Iniciar o Zabbix:

# /usr/local/sbin/zabbix_server
# /usr/local/sbin/zabbix_agentd
# /usr/local/sbin/zabbix_proxy

Verificar a execução dos processos:

# ps -aux | grep zabbix

Configurar o Proxy no Servidor Zabbix:

A primeira alteração que deve ser feita, caso não tenha sido feita no momento da instalação, é habilitar o suporte a proxy no Servidor Zabbix.

Configurar e Compilar os Códigos Fontes (Sources):

# cd /install/zabbix/zabbix-*
# ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --enable-agent --enable-proxy

Realizar a Instalação:

# make install

Parar o Zabbix:

# killall zabbix_server
# killall zabbix_agentd
# killall zabbix_proxy

Iniciar o Zabbix:

# /usr/local/sbin/zabbix_server
# /usr/local/sbin/zabbix_agentd
# /usr/local/sbin/zabbix_proxy

Realizar as Configurações via Interface Gráfica:

Abra o browser e aponte para o endereço do servidor Zabbix.

http://IP/zabbix/ (external link)

Administration // DM
Em "CONFIGURATIO OF PROXIES" Altere de Nodes para Proxies.
Clique em Create Proxy.


Proxy name: Digite o nome do Proxy
Proxy mode: Active
Hosts: Zabbix server
Clique em “Save”


Configuration // Hosts // Create Host


Name: Nome do Host
Deve ser o mesmo que consta no arquivo /etc/zabbix/zabbix_agentd do host.
Groups: Grupo do Host
IP address: IP do Proxy
Monitored by proxy: Zabbix proxy
Status: Monitored
Linked templates: Template_Linux
Clique em “Save”


Exemplo de uma máquina Windows:

Name: Nome do Host
Deve ser o mesmo que consta no arquivo /etc/zabbix/zabbix_agentd do host.
Groups: Grupo do Host
IP address: IP do Proxy
Monitored by proxy: Zabbix proxy
Status: Monitored
Linked templates: Template_Windows
Clique em “Save”


Exemplo de Gráfico Gerado pelo Proxy:



Observações:

Se o monitoramento não inciar em alguns minutos, reiniciar os serviços zabbix_server, zabbix_agentd e zabbix_proxy no Zabbix Proxy.
Nesse tutorial não foram abordadas as liberações no Firewall. Certifique-se que todas as portas utilizadas estão liberadas em seu Firewall.

Referencias:

Wiki Zabbix Brasil
Livro Zabbix 1.8 Network Monitoring - Rihards Olups (external link)
Close Menu