Monitoramento com Netdata, Prometheus e Grafana
Monitorar disponibilidade (o site está no ar?) é o primeiro passo. O segundo é monitorar métricas: CPU, memória, disco, rede, banco de dados, servidor web. Com histórico, você entende tendências, antecipa problemas e dimensiona o servidor com dados.
Netdata: monitoramento instantâneo
O Netdata instala com um comando e já coleta milhares de métricas por segundo, com detecção automática de serviços (Nginx, MySQL, Redis, Docker e outros).
Instalação
Use o script oficial indicado na documentação do Netdata (ele detecta a distribuição e instala a versão estável). Depois:
sudo systemctl status netdata
A interface fica na porta 19999. Não a exponha publicamente. Opções:
- Acessar por túnel SSH:
ssh -L 19999:localhost:19999 usuario@SEU_IP
# depois, no navegador: http://localhost:19999
- Ou colocar atrás de um proxy reverso com autenticação.
Pontos fortes: zero configuração, granularidade de 1 segundo, alertas prontos.
Pontos de atenção: consome alguns recursos; retenção local limitada por padrão (configurável).
Prometheus + Grafana: o padrão da indústria
- Prometheus coleta e armazena métricas em séries temporais, buscando-as de "exporters";
- Grafana cria dashboards e alertas a partir dessas métricas.
Arquitetura
node_exporter (métricas do servidor) ┐
mysqld_exporter / nginx exporter ├→ Prometheus → Grafana (dashboards, alertas)
cAdvisor (containers) ┘
Subindo com Docker Compose
prometheus.yml:
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ["node-exporter:9100"]
compose.yaml:
services:
prometheus:
image: prom/prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prom_data:/prometheus
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=30d
node-exporter:
image: prom/node-exporter
restart: unless-stopped
pid: host
volumes:
- /:/host:ro,rslave
command:
- --path.rootfs=/host
grafana:
image: grafana/grafana
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
volumes:
- grafana_data:/var/lib/grafana
volumes:
prom_data:
grafana_data:
docker compose up -d
Acesse o Grafana (via proxy reverso com HTTPS ou túnel SSH), troque a senha padrão, adicione o Prometheus como fonte de dados (http://prometheus:9090) e importe um dashboard pronto para o Node Exporter da biblioteca de dashboards do Grafana.
Pontos fortes: flexível, escalável, enorme ecossistema, ideal para vários servidores.
Pontos de atenção: mais configuração inicial.
O que acompanhar
| Métrica | Sinal de alerta |
|---|---|
| CPU (uso e load) | Uso alto sustentado; load acima do número de vCPUs |
| CPU steal | Valores altos e constantes |
| Memória disponível | Baixa + uso de swap |
| Disco (espaço) | Acima de 80–85% |
| Disco (latência, %util) | Latência crescente, %util próximo de 100% |
| Rede | Picos inesperados de saída |
| Servidor web | Aumento de erros 5xx, tempo de resposta |
| Banco de dados | Conexões, consultas lentas, buffer pool |
Onde rodar o monitoramento
Para um único VPS, rodar no próprio servidor é aceitável. Para vários servidores, centralize o Prometheus/Grafana em um VPS separado — assim o monitoramento continua funcionando se um servidor cair.
Conclusão
Com métricas e histórico, você deixa de "achar" e passa a saber o que acontece no servidor. Monte seu monitoramento em um VPS-NVME-BR da VittHost, com NVMe e servidores no Brasil.Use o cupom SP-VITT20 e ganhe 20% de desconto na primeira fatura enquanto a promoção estiver ativa.