Guia Completo: Deploy do Zabbix Proxy com SQLite via Portainer

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

  1. Abra seu navegador e acesse o Portainer
  2. Faça login com suas credenciais
  3. Navegue até “Stacks” no menu lateral

Criar Nova Stack

  1. Clique em “Add stack”
  2. Nomeie a stack como “zabbix-proxy-sqlite”
  3. 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

  1. Na seção “Advanced mode”, clique em “Upload environment file”
  2. Selecione o arquivo stack.env criado anteriormente
  3. Clique em “Deploy the stack”

Passo 4: Verificação e Troubleshooting

Verificar Logs do Container

No Portainer:

  1. Vá para “Containers”
  2. Clique no container “zabbix-proxy-sqlite”
  3. 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:

  1. Acesse a interface web do Zabbix
  2. Navegue para Administration → Proxies
  3. Clique em Create proxy
  4. Preencha as informações:
    • Proxy nameMG10-PROXY (exatamente como no stack.env)
    • Proxy modeActive
    • Proxy address: Deixe em branco para proxy ativo

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:

  1. No Portainer, vá até a stack
  2. Clique em “Editor”
  3. Atualize a versão da imagem no docker-compose.yml
  4. 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.

Voltar ao Blog