Zabbix: Instalando o proxy

1. Introdução

Zabbix é uma solução de código aberto para monitoramento de dispositivos e aplicações, sendo capaz de monitorar parâmetros utilizando agentes em diversas plataformas de sistemas operacionais, além de protocolos como SNMP, IPMI, JMX, entre outros.

É uma plataforma bastante difundida e não está limitada a ativos de TIC, apenas. Pode ser utilizado em diversas áreas, pois o seu método de coleta é flexível e permitindo personalizá-lo de acordo com necessidades de monitoramento do ambiente.

2. Ferramentas utilizadas

Os softwares utilizados na produção deste tutorial é apresentado a seguir:

  • CentOS 7
  • Zabbix 3.4.1
  • SQLite3

O ambiente utilizado é apresentado a seguir:

  • Uma MV, com o sistema operacional CentOS 7, destinada ao servidor proxy do Zabbix

A instalação do CentOS 7 utilizada para validar esse tutorial foi a Minimal-1611. A ISO dessa versão pode ser baixada através deste link.

3. Configurando o serviço

Todos os comandos executados nesse tutorial foram executados com o usuário root.

Passos preparatórios

3.1. Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:

yum update

3.2. Habilite o modo permissivo do SELinux, com os comandos abaixo:

sed s/SELINUX=enforcing/SELINUX=permissive/g -i /etc/selinux/config
setenforce 0

3.3. Adicione o repositório do Zabbix e MariaDB:

URL='https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm'
rpm -ivh "$URL" # Adiciona o repositório do zabbix

3.4. Instalar o agente do Zabbix

yum install zabbix-agent zabbix-get # Instala o agente do zabbix
systemctl enable zabbix-agent # Configura o systemd para iniciar o agente do zabbix após o boot

 

Instalando o banco de dados

3.5. Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:

yum install sqlite -y

 

Instalando o proxy do Zabbix

3.6. Após a instalação do CentOS, execute o comando abaixo para atualizar os pacotes presentes no sistema:

yum install zabbix-proxy-sqlite zabbix-get zabbix-agent  -y

3.7. Vamos criar os diretórios a serem utilizados pelo proxy:

mkdir /etc/zabbix/{default,zabbix_proxy.conf.d}
chown zabbix:root -P /etc/zabbix/
touch /var/log/zabbix/snmptrap.log
chown zabbix:zabbix /var/log/zabbix/snmptrap.log

3.8. configurar a base de dados do Zabbix  e importar os schemas:

mkdir -p /app/zabbix
cd /usr/share/doc/zabbix-proxy-sqlite3-3*
zcat schema.sql.gz | sqlite3 /app/zabbix/proxy.db

3.9. alterar os parâmetros do banco de dados no arquivo de configuração /etc/zabbix/zabbix_server.conf:

cd /etc/zabbix
cp *.conf default/
sed s/'# ProxyMode=0'/'ProxyMode=0'/g -i zabbix_proxy.conf
sed s/'LogFileSize=0'/'LogFileSize=128'/g -i zabbix_proxy.conf
sed s/'# StartPollers=5'/'StartPollers=35'/g -i zabbix_proxy.conf
sed s/'Server=127.0.0.1'/'Server=SERVIDOR_ZABBIX'/g -i zabbix_proxy.conf
sed s/'DBName=zabbix_proxy'/'DBName=\/app\/zabbix\/proxy.db'/g -i zabbix_proxy.conf
sed s/'# StartPollersUnreachable=1'/'StartPollersUnreachable=70'/g -i zabbix_proxy.conf
sed s/'Hostname=Zabbix proxy'/Hostname=$(hostname)/g -i zabbix_proxy.conf
sed s/'# StartIPMIPollers=0'/'StartIPMIPollers=5'/g -i zabbix_proxy.conf
sed s/'# ProxyLocalBuffer=0'/'ProxyLocalBuffer=360'/g -i zabbix_proxy.conf
sed s/'# ConfigFrequency=3600'/'ConfigFrequency=60'/g -i zabbix_proxy.conf
sed s/'# StartHTTPPollers=1'/'StartHTTPPollers=10'/g -i zabbix_proxy.conf
sed s/'# ProxyOfflineBuffer=1'/'ProxyOfflineBuffer=720'/g -i zabbix_proxy.conf
sed s/'# HeartbeatFrequency=60'/'HeartbeatFrequency=30'/g -i zabbix_proxy.conf
sed s/'# DataSenderFrequency=1'/'DataSenderFrequency=45'/g -i zabbix_proxy.conf
sed s/'# StartTrappers=5'/'StartTrappers=15'/g -i zabbix_proxy.conf
sed s/'# StartPingers=1'/'StartPingers=5'/g -i zabbix_proxy.conf
sed s/'# StartVMwareCollectors=0'/'StartVMwareCollectors=10'/g -i zabbix_proxy.conf
sed s/'# VMwareTimeout=10'/'VMwareTimeout=19'/g -i zabbix_proxy.conf
sed s/'# StartSNMPTrapper=0'/'StartSNMPTrapper=1'/g -i zabbix_proxy.conf
sed s/'# StartDBSyncers=4'/'StartDBSyncers=8'/g -i zabbix_proxy.conf
sed s/'# CacheSize=8M'/'CacheSize=32M'/g -i zabbix_proxy.conf
sed s/'# HistoryIndexCacheSize=4M'/'HistoryIndexCacheSize=16M'/g -i zabbix_proxy.conf
sed s/'# HistoryCacheSize=16M'/'HistoryCacheSize=64M'/g -i zabbix_proxy.conf
sed s/'\/var\/log\/snmptrap\/snmptrap.log'/'\/var\/log\/zabbix\/snmptrap.log'/g -i zabbix_proxy.conf
sed s/'Timeout=4'/'Timeout=19'/g -i zabbix_proxy.conf
sed s/'ExternalScripts=\/usr\/lib\/zabbix\/externalscripts'/'ExternalScripts=\/app\/zabbix\/externalscripts'/g -i zabbix_proxy.conf
sed s/'# Include=\/usr\/local\/etc\/zabbix_proxy.conf.d\/*.conf'/'\/etc\/zabbix_proxy.conf.d\/*.conf'/g -i zabbix_proxy.conf

Substitua “SERVIDOR_ZABBIX” pelo IP ou FQDN do servidor do zabbix configurado anteriormente.

3.10. Permita os serviços no Firewall

firewall-cmd --permanent --add-port=10051/tcp # configura o firewalld para permitir conexões ao proxy do zabbix
firewall-cmd --permanent --add-port=10050/tcp # configura o firewalld para permitir conexões ao agente do zabbix
firewall-cmd --reload

3.11. Configure o serviço do servidor e agente:

systemctl enable zabbix-proxy zabbix-agent # Configura o systemd para iniciar os serviços do zabbix após o boot
systemctl start zabbix-proxy zabbix-agent  # Inicia os serviços imediatamente