Desenvolvemos um container Docker com relatório do Zabbix via API, pensado para simplificar o acesso às informações de monitoramento e permitir a exportação de relatórios em PDF, de forma prática, segura e rápida. Ele conecta diretamente à API do Zabbix, coleta os dados de monitoramento e apresenta relatórios práticos por meio de uma interface web:


A solução foi criada para atender times de infraestrutura, NOC, MSPs e profissionais de TI que precisam gerar relatórios de forma simples, sem desenvolver scripts complexos ou depender de integrações externas.
Neste artigo, você vai conhecer a solução, aprender como subir o container em poucos minutos e assistir a um vídeo passo a passo explicando todo o processo.
Principais objetivos da solução:
- Facilitar a geração de relatórios do Zabbix
- Centralizar informações em uma interface web
- Permitir exportação em PDF
- Simplificar a implantação usando Docker
Funcionalidades do container
Entre os principais recursos do projeto, destacam-se:
- Relatório prático do Zabbix via API
- Exportação de relatórios em PDF
- Autenticação via usuário e senha da aplicação
- Implantação simples usando Docker Compose
- Configuração flexível via variáveis de ambiente
1. Como subir o Relatório Zabbix com Docker?
No seu servidor, crie um diretório e adicione o arquivo docker-compose.yml:
services:
relatorio-zabbix:
image: ghcr.io/serviceticst/relatorio-api-zabbix:1.0.0
container_name: relatorio-zabbix
ports:
- "8000:80"
environment:
# Login da aplicação
APP_USER: "${APP_USER}"
APP_PASS: "${APP_PASS}"
# Zabbix
ZABBIX_URL: "${ZABBIX_URL}"
ZABBIX_TOKEN: "${ZABBIX_TOKEN}"
ZABBIX_TIMEOUT: "${ZABBIX_TIMEOUT}"
# Logs da aplicação (PHP)
LOG_LEVEL: "${LOG_LEVEL}"
LOG_TO_STDOUT: "${LOG_TO_STDOUT}"
LOG_FILE: "${LOG_FILE}"
# Logs do Nginx
NGINX_ERROR_LOG_LEVEL: "${NGINX_ERROR_LOG_LEVEL}"
NGINX_ACCESS_LOG: "${NGINX_ACCESS_LOG}"
NGINX_ERROR_LOG: "${NGINX_ERROR_LOG}"
volumes:
- ./logs:/var/log/app
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost/healthz || exit 1"]
interval: 10s
timeout: 3s
retries: 5 Dica: você pode alterar a porta 8000 conforme a necessidade do seu ambiente.
2. Crie no mesmo diretório o arquivo .env e ajuste as variáveis abaixo conforme o seu ambiente:
############################################
# Login da aplicação
############################################
APP_USER=SEU_USUÁRIO
APP_PASS=SUA_SENHA
############################################
# Zabbix (API)
# Dica: pode ser a base (https://...),
# o backend completa com /api_jsonrpc.php automaticamente
############################################
ZABBIX_URL=https://ENDERECO_ZABBIX_AQUI
ZABBIX_TOKEN=COLE_SEU_TOKEN_AQUI
# Timeout (segundos) para chamadas ao Zabbix via proxy
ZABBIX_TIMEOUT=15
############################################
# LOGS DA APLICAÇÃO (PHP)
#
# LOG_LEVEL: controla a "verbosidade" do log do app
# Opções: debug | info | warn | error
# - debug: tudo (usar só para troubleshooting)
# - info : normal (recomendado em produção)
# - warn : somente alertas/erros (mais silencioso)
# - error: somente erros graves
############################################
LOG_LEVEL=info
# LOG_TO_STDOUT: manda logs para stdout/stderr (docker logs)
# Opções: 1 (sim) | 0 (não)
# Recomendado: 1
LOG_TO_STDOUT=1
# LOG_FILE: grava logs em arquivo dentro do container.
# Opções:
# - vazio (desliga log em arquivo): LOG_FILE=
# - caminho (ex.: /var/log/app/app.log)
# Observação: para persistir, monte volume ./logs:/var/log/app
LOG_FILE=/var/log/app/app.log
############################################
# LOGS DO NGINX (servidor web)
#
# NGINX_ERROR_LOG_LEVEL:
# Opções comuns: debug | info | notice | warn | error | crit | alert | emerg
# Recomendado: warn
# - debug: MUITO verboso (usar temporariamente)
# - warn : bom para produção
# - error: mais silencioso
############################################
NGINX_ERROR_LOG_LEVEL=warn
# NGINX_ACCESS_LOG:
# Opções:
# - /dev/stdout (recomendado: aparece em docker logs)
# - off (desliga access log)
# - /var/log/nginx/access.log (em arquivo, se você montar volume)
NGINX_ACCESS_LOG=/dev/stdout
# NGINX_ERROR_LOG:
# Opções:
# - /dev/stderr (recomendado: aparece em docker logs)
# - /var/log/nginx/error.log (em arquivo, se montar volume)
NGINX_ERROR_LOG=/dev/stderr
Atenção: Altere as variaveis abaixo:
APP_USER=seu_usuario
APP_PASS=sua_senha
ZABBIX_URL=https://zabbix.exemplo.com
ZABBIX_TOKEN=seu_token_aqui
3. Para gerar um token, acesse a interface web do zabbix e siga o passo a passo abaixo:




⚠️ Observação: Salve esse token antes de fechar a tela.
4. Dentro do diretório, suba o contêiner com o comando abaixo:
docker compose up -d
5. Acesse pelo navegador
- http://IP_DO_SERVIDOR:8000
- Logue com o usuário e senha definido nas variáveis APP_USER e APP_PASS
6. Confira o passo a passo em vídeo que disponibilizamos para você:
Se você precisa de apoio para implantar ou ajustar o Zabbix na sua empresa e obter um nível de maturidade maior com a ferramenta, não deixe de entrar em contato conosco, estaremos sua total disposição.
Aguardamos o seu contato e até o próximo artigo.
Forte abraço.
Contatos:
Telefone: (41) 3500-7254 (WhatsApp)
E-mail: contato@servicetic.com.br
