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
    Dica
    Netdata usa ~100-200 MB RAM em VPS típica. O padrão é manter 1 hora de dados em memória. Configure retenção maior em /etc/netdata/netdata.conf: [global] history = 7200 (2 horas). Para histórico longo: use Netdata Cloud ou exporte para Prometheus.

    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

    $ runstack deploy --plan starter

    Não quer configurar manualmente?

    Não quer configurar manualmente? Implante o VPS em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.

    Perguntas frequentes