Netdata na VPS: monitoramento em tempo real

Netdata é a ferramenta de monitoramento mais fácil de instalar, um comando e você tem dashboards em tempo real com resolução de 1 segundo para CPU, memória, disco, rede e mais de 800 métricas do sistema. Detecta anomalias automaticamente usando machine learning e tem alertas pré-configurados para os problemas mais comuns.

Instalar Netdata em um comando

O script oficial instala e configura o Netdata automaticamente:

bash
# Instalação em um comando (Ubuntu/Debian)
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --nightly-channel --no-updates

# Verificar que está rodando
systemctl status netdata
curl http://localhost:19999/api/v1/info | python3 -m json.tool | grep version

# Acessar dashboard (via tunel SSH)
# ssh -L 19999:localhost:19999 deploy@IP_DA_VPS
# Abrir: http://localhost:19999

# Ou via Docker (mais isolado):
docker run -d --name netdata \
  --pid=host --network=host \
  -v /etc/passwd:/host/etc/passwd:ro \
  -v /etc/group:/host/etc/group:ro \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /etc/os-release:/host/etc/os-release:ro \
  -v netdata_config:/etc/netdata \
  -v netdata_lib:/var/lib/netdata \
  -v netdata_cache:/var/cache/netdata \
  --cap-add SYS_PTRACE --cap-add SYS_ADMIN \
  --security-opt apparmor=unconfined \
  netdata/netdata

Configurar alertas no Netdata

Netdata vem com mais de 300 alertas pré-configurados. Personalize os mais importantes:

bash
# /etc/netdata/health.d/custom.conf
# Regras customizadas de alerta

# Alerta quando disco > 85%
alarm: disk_space_usage
    on: disk.space
    lookup: average -10m unaligned of used
    units: %
    every: 1m
    warn: $this > 80
    crit: $this > 90
    info: Disco quase cheio

# Alerta quando carga média > número de CPUs
alarm: system_load_avg
    on: system.load
    lookup: average -5m unaligned of load1
    every: 1m
    warn: $this > $ncpus * 1.5
    crit: $this > $ncpus * 2
    info: Sistema sobrecarregado

Configurar notificações por Telegram

Configure o canal de notificação para receber alertas:

bash
# /etc/netdata/health_alarm_notify.conf

# Habilitar Telegram
SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="SEU_TOKEN_BOT"
DEFAULT_RECIPIENT_TELEGRAM="SEU_CHAT_ID"

# Testar notificação
/usr/libexec/netdata/plugins.d/alarm-notify.sh test telegram

# Filtrar quais alertas notificar
# (padrão: todos os críticos e avisos)
DEFAULT_SEND_NOTIFICATION_WHEN="critical warning"

Expor métricas do Netdata para Prometheus

Use o Netdata como coletor e exporte métricas para o Prometheus existente:

yaml
# O Netdata expõe métricas no formato Prometheus nativamente
# Endpoint: http://localhost:19999/api/v1/allmetrics?format=prometheus

# Adicionar ao prometheus.yml:
scrape_configs:
  - job_name: 'netdata'
    metrics_path: '/api/v1/allmetrics'
    params:
      format: [prometheus]
    static_configs:
      - targets: ['localhost:19999']

# Verificar
curl 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head -30

# Isso expõe TODAS as métricas do Netdata no Prometheus
# (~10.000 séries temporais) — filtre com metric_relabel_configs se necessário

Otimizar o Netdata para VPS pequena

Reduza o consumo de recursos ajustando a configuração:

bash
# /etc/netdata/netdata.conf

[global]
    # Reduzir histórico em memória (padrão: 3600 segundos = 1h)
    history = 1800          # 30 minutos

    # Reduzir frequência de update (padrão: 1 segundo)
    update every = 2        # 2 segundos (suficiente para maioria)

[plugin:proc]
    # Desabilitar collectors não necessários
    /proc/diskstats = yes
    /proc/net/dev = yes
    /sys/class/power_supply = no   # irrelevante em VPS
    /proc/pagetypeinfo = no

[plugin:apps]
    # Desabilitar se não precisar de métricas por processo
    enabled = no

Não quer configurar manualmente?

Implante o VPS em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.

Perguntas frequentes

Netdata: zero configuração, tempo real (1s), anomaly detection automático, ideal para uma VPS ou debugging rápido. Prometheus: mais flexível, pull-based, melhor para múltiplos serviços e aplicações customizadas. Não é uma escolha exclusiva, use Netdata para visibilidade imediata e exporte para Prometheus para histórico e correlação com métricas de aplicação.

Não é obrigatório. Netdata funciona 100% sem conta em modo local. Netdata Cloud adiciona: acesso remoto sem túnel SSH, correlação de múltiplas VPS, ML centralizado, histórico de longo prazo. O plano Community é gratuito para uso pessoal e projetos pequenos.

Netdata usa um modelo Isolation Forest por métrica, treinado nos últimos 4 horas de dados. O score de anomalia (0-100) aparece no dashboard. Um spike repentino em CPU que não segue o padrão histórico gera score alto. É heurístico, espere falsos positivos nos primeiros dias após instalar.

Opção 1 (mais segura): túnel SSH (ssh -L 19999:localhost:19999 deploy@IP). Opção 2: Nginx com autenticação básica como proxy (proxy_pass http://localhost:19999). Opção 3: Netdata Cloud com Claim. Nunca exponha a porta 19999 diretamente na internet sem autenticação.

Para histórico em disco: habilite Database Engine em /etc/netdata/netdata.conf: [db] mode = dbengine e dbengine multihost disk space MB = 1000 (1 GB). Isso armazena meses de dados em disco com compressão automática. O acesso a dados históricos fica um pouco mais lento que dados em memória.