Tutorial Definitivo: Como Instalar o Zabbix no Docker
Monitoramento open source para servidores, redes e containers – Passo a passo completo
🔍 O que é o Zabbix e Por Que Instalá-lo no Docker?
O Zabbix é uma plataforma de monitoramento open source de nível empresarial, usada para acompanhar a saúde e o desempenho de servidores, redes, aplicações e serviços em nuvem [citation:1]. Sua arquitetura é composta por três componentes principais [citation:2]:
- Zabbix Server: Motor central que processa dados, avalia triggers e gerencia notificações.
- Banco de Dados: Armazena configurações e todo o histórico de monitoramento (MySQL/PostgreSQL).
- Zabbix Frontend: Interface web para configuração, dashboards e visualização de dados.
- Zabbix Agent (opcional): Coleta métricas locais nos sistemas monitorados [citation:3].
Instalar o Zabbix no Docker simplifica drasticamente o processo: elimina a complexidade de dependências, permite atualizações limpas e oferece um ambiente isolado e replicável [citation:2][citation:7]. Com Docker Compose, você sobe a stack completa em minutos.
📋 Pré-requisitos (Verifique Antes de Começar)
Certifique-se de que seu ambiente atende aos requisitos mínimos:
- Sistema Operacional: Linux (Ubuntu 20.04/22.04, Debian, CentOS), Windows com WSL2 ou macOS.
- CPU: Mínimo 2 cores (recomendado 4).
- RAM: Mínimo 2 GB (recomendado 4 GB ou mais para ambientes maiores) [citation:4].
- Disco: Pelo menos 10 GB livres para dados e histórico [citation:5].
- Docker Engine e Docker Compose instalados (versões mais recentes).
- Git instalado.
- Acesso root ou usuário com permissões
sudo.
🚀 Passo a Passo: Instalação do Zabbix no Docker
1. Instalar Docker e Docker Compose (Se Necessário)
No Ubuntu/Debian, execute:
sudo apt update
sudo apt install ca-certificates curl git
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Verifique:
docker --version
docker compose version
2. Criar Diretório e Obter Arquivos de Configuração
O Zabbix fornece exemplos oficiais de Docker Compose. Você pode usar um repositório com configurações prontas ou criar o seu próprio [citation:2][citation:9]. Vamos usar uma estrutura simples e funcional:
mkdir ~/zabbix-docker
cd ~/zabbix-docker
nano docker-compose.yml
Cole o conteúdo abaixo (baseado em configurações oficiais e adaptado para portas padrão) [citation:5][citation:9]:
version: '3.8'
services:
mysql-server:
image: mysql:8.0
container_name: zabbix-mysql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix_pwd
MYSQL_ROOT_PASSWORD: root_pwd
volumes:
- ./mysql-data:/var/lib/mysql
networks:
- zabbix-net
restart: unless-stopped
zabbix-server:
image: zabbix/zabbix-server-mysql:alpine-7.2-latest
container_name: zabbix-server
environment:
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix_pwd
ZBX_ENABLE_SNMP_TRAPS: true
ports:
- "10051:10051"
volumes:
- ./zabbix-scripts:/usr/lib/zabbix/alertscripts
- ./zabbix-modules:/var/lib/zabbix/modules
networks:
- zabbix-net
depends_on:
- mysql-server
restart: unless-stopped
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:alpine-7.2-latest
container_name: zabbix-web
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix_pwd
PHP_TZ: America/Sao_Paulo
ports:
- "80:8080"
- "443:8443"
networks:
- zabbix-net
depends_on:
- mysql-server
- zabbix-server
restart: unless-stopped
zabbix-agent:
image: zabbix/zabbix-agent2:alpine-7.2-latest
container_name: zabbix-agent
environment:
ZBX_HOSTNAME: "zabbix-server"
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: 10051
ports:
- "10050:10050"
networks:
- zabbix-net
depends_on:
- zabbix-server
restart: unless-stopped
networks:
zabbix-net:
driver: bridge
zabbix_pwd e root_pwd para valores fortes antes de prosseguir [citation:4].3. Ajustar Permissões e Criar Diretórios (Opcional)
mkdir -p mysql-data zabbix-scripts zabbix-modules
chmod 755 mysql-data
4. Iniciar os Containers
docker compose up -d
Aguarde o download das imagens (cerca de 1-2 GB) e a inicialização dos serviços. Acompanhe os logs:
docker compose logs -f
Quando tudo estiver pronto, você verá mensagens indicando que o Zabbix server e o frontend foram iniciados [citation:7].
5. Verificar o Status dos Serviços
docker compose ps
Todos os containers devem estar com status Up. Exemplo de saída esperada [citation:7]:
Name State Ports
zabbix-mysql Up 3306/tcp, 33060/tcp
zabbix-server Up 0.0.0.0:10051->10051/tcp
zabbix-web Up 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp
zabbix-agent Up 0.0.0.0:10050->10050/tcp
🖥️ Acessando o Zabbix Web (Frontend)
Abra o navegador e acesse o endereço do seu servidor:
http://<IP_DO_SERVIDOR>
ou http://localhost se estiver na mesma máquina.
Credenciais padrão do Zabbix [citation:3][citation:5]:
- Usuário:
Admin - Senha:
zabbix
Após o primeiro login, o sistema solicitará que você altere a senha por motivos de segurança [citation:3].
🧪 Primeiros Passos: Configurar Monitoramento
1. Adicionar um Host (ex: o próprio servidor Zabbix via agente)
O container zabbix-agent já está em execução. Para monitorá-lo [citation:9]:
- No menu, vá em Data Collection → Hosts.
- Clique em Create host.
- Preencha:
- Host name:
zabbix-server - Groups: selecione
Linux Servers - Interfaces: Adicione agente com DNS name =
zabbix-agent, porta 10050, conecte via DNS.
- Host name:
- Vá até a aba Templates e adicione o template
Linux by Zabbix agent. - Clique em Add.
Após alguns segundos, a disponibilidade do agente ficará verde [citation:6].
2. Instalar Agente em Outra Máquina Linux
No host que deseja monitorar [citation:1][citation:4]:
# Para Ubuntu/Debian
sudo apt update
sudo apt install zabbix-agent2
# Edite o arquivo de configuração
sudo nano /etc/zabbix/zabbix_agent2.conf
Altere as linhas:
Server=<IP_DO_ZABBIX_SERVER>
ServerActive=<IP_DO_ZABBIX_SERVER>
Hostname=<nome_do_host>
Reinicie o agente:
sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
Em seguida, adicione o host no frontend do Zabbix (similar ao passo anterior).
🔒 Dicas de Segurança e Boas Práticas para Produção
- Altere as senhas padrão imediatamente: usuário
Admine as senhas do banco de dados [citation:3][citation:4]. - Use HTTPS: Para produção, configure um proxy reverso (Nginx) com certificado Let‘s Encrypt ou utilize as portas SSL já expostas [citation:5].
- Backup dos volumes: Faça backup regular do diretório
mysql-datae dos arquivos de configuração [citation:5]. - Limite recursos: Adicione restrições de CPU/memória no
docker-compose.ymlpara evitar consumo excessivo. - Atualize as imagens: Periodicamente, faça
docker compose pullseguido dedocker compose up -dpara obter as versões mais recentes [citation:5]. - Habilite TLS entre componentes: Para ambientes sensíveis, configure PSK ou certificados no agente e servidor [citation:4].
🐛 Troubleshooting: Problemas Comuns e Soluções
| Problema | Possível Causa | Solução |
|---|---|---|
| Container do MySQL não inicia | Permissão no diretório mysql-data ou porta 3306 ocupada |
sudo chown -R 999:999 mysql-data ou altere a porta no host [citation:2] |
| Frontend não acessível (erro 503) | Servidor ou banco ainda iniciando | Aguarde 2-3 minutos e verifique logs: docker compose logs zabbix-server |
| Agente não aparece como ativo | Firewall bloqueando porta 10050, ou configuração incorreta do DNS/IP | Verifique sudo ufw allow 10050/tcp e se o Server no agente aponta para o IP correto [citation:3] |
| Erro de conexão com o banco | Senha incorreta no .env ou no compose |
Confira se as variáveis MYSQL_PASSWORD coincidem em todos os serviços [citation:2] |
Para depuração avançada, use docker logs <container_name> [citation:2].
❓ Perguntas Frequentes (FAQ)
✅ Conclusão
Parabéns! Você instalou com sucesso o Zabbix no Docker e já pode começar a monitorar seus servidores, redes e aplicações. Com essa stack, você tem à disposição [citation:1]:
- Dashboards personalizáveis e gráficos em tempo real.
- Alertas por e-mail, Slack ou outros canais.
- Descoberta automática de dispositivos.
- Monitoramento distribuído via proxies.
Explore a documentação oficial e comece a extrair o máximo do seu ambiente.