Introdução
Este tutorial completo irá guiá-lo através do processo de implementação de um Zabbix Proxy com banco de dados SQLite utilizando Portainer. O Zabbix Proxy é essencial para monitoramento distribuído, permitindo coletar dados de dispositivos em redes remotas e enviá-los ao servidor Zabbix central.
Pré-requisitos
- Portainer instalado e configurado
- Acesso ao servidor Docker via Portainer
- Conhecimento básico de Zabbix e Docker
Passo 1: Preparação dos Diretórios
Criar a Estrutura de Diretórios
Acesse o servidor Docker via SSH e execute os comandos:
# Criar diretório principal
sudo mkdir -p /srv/docker/zabbix-proxy-sqlite/{data,log,db_data}
# Ajustar permissões (usuário Zabbix typically usa UID 1000)
sudo chown -R 1000:1000 /srv/docker/zabbix-proxy-sqlite/
sudo chmod -R 755 /srv/docker/zabbix-proxy-sqlite/
Verificar as Permissões
ls -la /srv/docker/
A saída deve mostrar os diretórios com proprietário UID 1000.
Passo 2: Configuração do Arquivo de Ambiente
Criar o Arquivo stack.env
No diretório /srv/docker/zabbix-proxy-sqlite/, crie o arquivo stack.env com o conteúdo:
# Identificação do Proxy
ZBX_HOSTNAME=MG10-PROXY
ZBX_SERVER_HOST=10.100.36.5
ZBX_SERVER_PORT=10051
# Configurações de Performance
ZBX_PROXYLOCALBUFFER=0
ZBX_PROXYOFFLINEBUFFER=1
ZBX_CONFIGFREQUENCY=3600
ZBX_DATASENDERFREQUENCY=1
ZBX_STARTUPOLLFREQUENCY=600
ZBX_STARTUPOLLERS=5
ZBX_TIMEOUT=30
# Configurações de Segurança
ZBX_TLSCONNECT=unencrypted
ZBX_TLSACCEPT=unencrypted
# Logs e Debug
ZBX_DEBUGLEVEL=3
ZBX_LOG_TYPE=file
ZBX_LOG_FILE=/var/log/zabbix/zabbix_proxy.log
ZBX_LOG_FILE_SIZE=10
Passo 3: Implementação via Portainer
Acessar o Portainer
- Abra seu navegador e acesse o Portainer
- Faça login com suas credenciais
- Navegue até “Stacks” no menu lateral
Criar Nova Stack
- Clique em “Add stack”
- Nomeie a stack como “zabbix-proxy-sqlite”
- Cole o seguinte conteúdo no editor web:
version: '3.8'
services:
zabbix-proxy-sqlite:
image: zabbix/zabbix-proxy-sqlite3:alpine-6.4.17
container_name: zabbix-proxy-sqlite
user: root
restart: always
mem_limit: 512m
ports:
- "10051:10051"
env_file:
- stack.env
volumes:
- /srv/docker/zabbix-proxy-sqlite/data:/var/lib/zabbix
- /srv/docker/zabbix-proxy-sqlite/log:/var/log/zabbix
- /srv/docker/zabbix-proxy-sqlite/db_data:/var/lib/zabbix/db_data
networks:
- zabbix-net
networks:
zabbix-net:
driver: bridge
Upload do Arquivo stack.env
- Na seção “Advanced mode”, clique em “Upload environment file”
- Selecione o arquivo
stack.envcriado anteriormente - Clique em “Deploy the stack”
Passo 4: Verificação e Troubleshooting
Verificar Logs do Container
No Portainer:
- Vá para “Containers”
- Clique no container “zabbix-proxy-sqlite”
- Acesse a aba “Logs”
Comandos de Verificação Úteis
# Verificar se o container está rodando
docker ps | grep zabbix-proxy-sqlite
# Verificar logs via linha de comando
docker logs zabbix-proxy-sqlite
# Verificar se o banco de dados foi criado
ls -la /srv/docker/zabbix-proxy-sqlite/db_data/
Passo 5: Configuração no Servidor Zabbix
Para finalizar a configuração, é necessário registrar o proxy no servidor Zabbix principal:
- Acesse a interface web do Zabbix
- Navegue para Administration → Proxies
- Clique em Create proxy
- Preencha as informações:
- Proxy name:
MG10-PROXY(exatamente como no stack.env) - Proxy mode:
Active - Proxy address: Deixe em branco para proxy ativo
- Proxy name:
Passo 6: Monitoramento e Manutenção
Verificar Saúde do Proxy
No Portainer, monitore:
- Uso de CPU e memória na aba “Stats”
- Logs em tempo real na aba “Logs”
- Estado do container na visão geral
Atualização da Imagem
Para atualizar o Zabbix Proxy:
- No Portainer, vá até a stack
- Clique em “Editor”
- Atualize a versão da imagem no docker-compose.yml
- Reimplante a stack
Solução de Problemas Comuns
Erro de Permissões
# Corrigir permissões se necessário
sudo chown -R 1000:1000 /srv/docker/zabbix-proxy-sqlite/
Erro de Banco de Dados
Verifique se o diretório db_data existe e tem permissões adequadas.
Erro de Conexão com Servidor
Verifique se:
- O firewall permite comunicação na porta 10051
- O nome do proxy está registrado no servidor Zabbix
- As configurações de rede estão corretas
Conclusão
Seguindo este guia, você implementou com sucesso um Zabbix Proxy com SQLite utilizando Portainer. Esta configuração oferece uma solução leve e eficiente para monitoramento distribuído, ideal para ambientes com recursos limitados ou necessidades de implantação simplificada.
Lembre-se de monitorar regularmente os logs e o desempenho do container para garantir o funcionamento contínuo do seu sistema de monitoramento.
