Tutoriais

Monitoramento com Netdata, Prometheus e Grafana

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.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS