Configurando o Zabbix Proxy no Raspberry Pi

Tieferson Domingos06/07/2018

Este tutorial foi escrito baseado no tutorial de Adail Spinola disponível em: http://spinola.net.br/blog/2013/05/11/tutorial-instalando-zabbix-em-raspberry/

Ensinamos aqui a configurar o Raspberry Pi como proxy Ativo do Zabbix, ou seja, ele envia os dados coletados na rede local para um Zabbix Server na nuvem.

A imagem abaixo ilustra o nosso cenário.

Primeiro vamos atualizar nosso sistema

sudo apt-get update
sudo apt-get upgrade

Instale as dependências

sudo apt-get -y install build-essential snmp libiksemel-dev libcurl4-gnutls-dev vim libssh2-1-dev libssh2-1 libopenipmi-dev libsnmp-dev wget curl fping snmp-mibs-downloader libldap2-dev libldap2-dev iotop ntp libsqlite3-dev sqlite3 libgnutls28-dev libssl1.1 libssl-dev libpcre3-dev

Crie o usuário zabbix

sudo useradd zabbix -s /bin/false

Crie uma pasta para armazenar os arquivos de instalação

mkdir ~/install
cd ~/install

Faça o download dos fontes do Zabbix, em nosso caso estamos utilizando a versão 3.4.11.

https://www.zabbix.com/download_sources

wget https://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.11/zabbix-3.4.11.tar.gz

tar -zxvf zabbix-3.4.11.tar.gz
cd zabbix-3.4.11

Compilando e instalando o pacote

sudo ./configure --prefix=/usr --enable-proxy --enable-agent --with-net-snmp --with-sqlite3 --with-ssh2 --with-gnutls --with-libcurl
sudo make install

 

Configurando o Banco de Dados. Para o Zabbix Proxy apenas o arquivo schema.sql deve sem importado.


sudo mkdir /var/lib/sqlite/
sudo sqlite3 /var/lib/sqlite/zabbix.db < database/sqlite3/schema.sql
sudo chown -R zabbix:zabbix /var/lib/sqlite/

sudo cp -v misc/init.d/debian/zabbix-* /etc/init.d/
sudo mv /etc/init.d/zabbix-server /etc/init.d/zabbix-proxy

Editar o arquivo /etc/init.d/zabbix-proxy e remover a referência à pasta local e adicionar os parâmetros de inicialização:

sudo nano /etc/init.d/zabbix-proxy


### BEGIN INIT INFO
# Provides:          zabbix_proxy
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Zabbix proxy
# Description:       Zabbix proxy daemon
### END INIT INFO

NAME=zabbix_proxy
DAEMON=/usr/sbin/${NAME}
DESC="Zabbix proxy daemon"

Editar o arquivo /etc/init.d/zabbix-agent e remover a referência à pasta local e adicionar os parâmetros de inicialização:

sudo nano /etc/init.d/zabbix-agent


### BEGIN INIT INFO
# Provides:          zabbix_agent
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Zabbix agent
# Description:       Zabbix agent daemon
### END INIT INFO

NAME=zabbix_agentd
DAEMON=/usr/sbin/${NAME}

Agora vamos gerar uma chave para conexão com o zabbix Server.

hexdump -n 16 -e '4/4 "%08X" 1 "\n"' /dev/random | sudo tee /usr/local/etc/zabbix-proxy.psk

Este processo pode demorar alguns segundos

A chave gerada, por exemplo 237D9A2C525285505751A0E11A74980B, deve ser inserida na configuração do proxy no Zabbix Server. (Será mostrado mais à frente)

Editando o arquivo /usr/etc/zabbix_proxy.conf

sudo nano /usr/etc/zabbix_proxy.conf

ProxyMode=0
Server=177.234.123.3
Informe aqui o IP ou FQDN do Zabbix Sever. Lembre-se que se estiver usando NAT a porta 10051 deve estar direcionada.

# Hostname=zabbix-proxy #Este parâmetro pode ficar comentado
HostnameItem=system.hostname
DBName=/var/lib/sqlite/zabbix.db
#DBUser=zabbix #Manter comentado
HeartbeatFrequency=60 #Intervalo de tempo para verificar a comunicação entre Proxy e Servidor
ConfigFrequency=120 #Intervalo de tempo para baixar as configurações do Servidor (De acordo com suas necessidades)
DataSenderFrequency=30 #Intervalo de tempo para envio das informações coletadas para o servidor
FpingLocation=/usr/bin/fping

Agora as configurações para criptografia dos dados enviados entre o Proxy e o Servidor

TLSConnect=psk
TLSPSKIdentity=zabbix-proxy-exemplo
TLSPSKFile=/usr/local/etc/zabbix-proxy.psk

Configure o sistema para iniciar automaticamente o Proxy e o Agente

sudo update-rc.d -f zabbix-proxy defaults
sudo update-rc.d -f zabbix-agent defaults

Agora vá até o seu Zabbix Server, clique em Administration > Proxies

Clique em Create Proxy

O nome informado em Proxy name é o mesmo nome do host no raspberry, nesse caso está com o hostname padrão (raspberrypi). Para alterar o hostname do raspberry utilize o comando hostname no Linux. Configure conforme as imagens abaixo.

Clicando em Add você terá a lista de proxies. Seu parâmentro para verificação é a coluna Last Seen, neste caso Never, ou seja, o proxy nunca conectou-se (até agora)

Volte para o raspberry inicie o serviço zabbix-proxy.

sudo service zabbix-proxy start

No server a coluna Last seen deverá ser atualizada com o tempo da última conexão do proxy e assim você saberá que a configuração funcionou.

Para identificar erros acompanhe o arquivo /tmp/zabbix_proxy.log

tail -f /tmp/zabbix_proxy.log

Agora basta criar os Hosts através de seu Zabbix Server.

Lembre-se que o IP  address do host monitorado deve ser o IP configurado na rede local onde o host está instalado (Óbvio).

E selecione o proxy que você configurou na opçao Monitored by proxy

Assim que os dados forem recebidos pelo Zabbix Server  a flag ZBX ficará verde conforme a imagem abaixo.

É sempre bom configurar o Zabbix Agente no proxy também, assim você pode monitorá-lo junto com os outros dispositivos da rede.

Caso tenham dúvidas ou encontrem algum erro no post comentem abaixo para podermos melhorá-lo.

Forte abraço!