Por: @eduardoh Publicado em: 2022-06-30
Monitoramento Zabbix para o ambiente de desenvolvimento
Objetivo
Apresentar informações do ambiente de monitoramento e também procedimento de instalação de agentes nos servidores.
A estrutura
A stack
de monitoramento foi desenvolvida e hospedada no formato de microserviços utilizando Docker.
Topologia

O cenário anterior mostra a disposição dos containers no host monit-itflex (192.168.50.11).
Network
- Duas redes separando o tráfego externo com o tráfego interno, assim o banco de dados está acessível somente entre os containers e não para a LAN, consequentemente para a Internet.
zb-net-internal
: network criada no Docker destinada ao tráfegointerno
. Utiliza o range 192.168.130.0/25zb-net-external
: network criada no Docker destiada ao tráfegoexterno
. Utiliza o range 192.168.130.128/25
Containers
- A divisão dos containers foi seguida de acordo com a documentação oficial da Zabbix CIA e boas práticas.
zb-con-database
: container responsável apenas pelo serviço MySQL na versão 8.zb-con-server
: container responsável pelo tratamento entre o Zabbix Agent e o processamento do monitoramento. Trabalha na porta padrão 10051.zb-con-frontend
: container responsável pela hospedagem da página web do Zabbix, acessado diretamente pela porta 80.zb-con-grafana
: container responsável pelas dashboards do serviço Grafana.zb-con-agent
: container responsável pelo monitoramento dos containers locais.
Volumes
- Foi utilizada a estratégia de volumes persistentes, assim caso necessário mover a aplicação de máquina, basta um backup dos volumes, principalmente do banco de dados.
zb-vol-database
: volume responsável por armazenar o banco de dados do Zabbix (/stor/volumes/zb-vol-database).zb-vol-zabbix
: volume responsável por armazenar o conteúdo do Zabbix Server (/stor/volumes/zb-vol-zabbix).zb-vol-grafana
: volume responsável por armazenar o conteúdo do Grafana (/stor/volumes/zb-vol-grafana).
Acesso
- Para acessar os serviços, basta utilizar o IP do servidor (192.168.50.11).
- Porta 10051 está aberta para o funcionamento do Zabbix Server.
- Porta 80 está aberta para o funcionamento do Zabbix Frontend.
- Porta 3000 está aberta para o funcionamento do Grafana.
Arquivos
- Para o provisionamento, foram desenvolvidos alguns arquivos disponíveis no mesmo servidor no diretório
/stor/
/stor/docker
: arquivos referente ao pre-setup (criação de pastas, artefatos do Docker), containers e suas variáveis./stor/volumes
: diretório destinado aos volumes persistentes de dados dos containers./stor/notifications
: diretório contendo instruções de instalação do plugin de notificação via Google Chat.
Instalando Agentes
Instalando Zabbix-Agent
Em algumas distribuições, como AlmaLinux, o pacote logrotate
não vem instalado por padrão, logo é necessário efetuar a instalação do mesmo.
yum install logrotate
Efetuar a importação do repositório onde está contido o pacote do agent Zabbix. Lembre-se, valide qual a versão do servidor e qual a arquitetura do servidor que o agent será instalado, pois pode variar.
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-agent-6.0.6-1.el8.x86_64.rpm
yum clean all
yum install zabbix-agent
Por tratar-se de um ambiente de rede local e controlado, não vamos fazer uso do pacote itflex-zabbix-agent
como é de costume utilizar em nossos clientes. Vamos inclusive utilizar o padrão de configuração já existente no pacote oficial.
Altere os seguintes campos do arquivo /etc/zabbix/zabbix_agentd.conf
utilizando informações do seu ambiente respectivamente:
Server=192.168.50.11
Hostname=monit-itflex
Reinicie e habilite o serviço na reinicialização
systemctl restart zabbix-agent
systemctl enable zabbix-agent
Valide os logs no arquivo /var/log/zabbix/zabbix_agentd.log
:
Instalando Zabbix-Agent2
Para entender as diferenças, clique aqui para visualizar um comparativo.
Efetuar a importação do repositório onde está contido o pacote do agent2 Zabbix. Lembre-se, valide qual a versão do servidor e qual a arquitetura do servidor que o agent2 será instalado, pois pode variar.
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.6-1.el7.x86_64.rpm
yum clean all
yum install zabbix-agent
Altere os seguintes campos do arquivo /etc/zabbix/zabbix_agent2.conf
utilizando informações do seu ambiente respectivamente:
Server=192.168.50.11
Hostname=monit-itflex
Reinicie e habilite o serviço na reinicialização
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
Valide os logs no arquivo /var/log/zabbix/zabbix_agentd2.log
: