Pular para o conteúdo

Netdata - Monitoramento de Desempenho em Tempo Real

Netdata - Monitoramento de Desempenho em Tempo Real

Netdata é um agente de monitoramento de código aberto que coleta milhares de métricas por segundo com configuração praticamente nula e as visualiza em um dashboard web ao vivo (porta padrão 19999). Ele auto-detecta serviços (bancos de dados, servidores web, contêineres, Kubernetes) através de mais de 800 coletores e vem com detecção de anomalias e um mecanismo de alertas integrado.

Instalação

MétodoComando
Kickstart universalwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
Variante curlcurl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Pacote Debian/Ubuntusudo apt install netdata
Pacote Fedora/RHELsudo dnf install netdata
Dockerdocker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata
Helm (Kubernetes)helm install netdata netdata/netdata

Após instalar, abra http://localhost:19999 (ou o IP do servidor).

Gerenciamento de Serviço

ComandoDescrição
sudo systemctl start netdataInicia o agente
sudo systemctl enable netdataInicia no boot
sudo systemctl restart netdataReinicia (aplica mudanças de configuração)
sudo systemctl status netdataVerifica status
sudo journalctl -u netdata -fExibe logs do agente
netdatacli reload-healthRecarrega alarmes sem reiniciar completamente
netdatacli reload-labelsRecarrega labels de host
netdatacli shutdown-agentPara o agente graciosamente

Configuração

Sempre edite a configuração com o wrapper edit-config — ele copia o arquivo padrão de /usr/lib/netdata/conf.d para /etc/netdata para que atualizações não o sobrescrevam.

cd /etc/netdata
sudo ./edit-config netdata.conf          # configuração principal do agente
sudo ./edit-config health_alarm_notify.conf   # notificações
sudo ./edit-config go.d.conf             # habilita/desabilita coletores Go
Configuração (em netdata.conf)Propósito
[global] update every = 1Intervalo de coleta em segundos
[global] history / dbengineTamanhos de retenção / camadas de banco de dados em disco
[web] bind to = *Interfaces de rede que o dashboard ouve
[web] default port = 19999Porta do dashboard
[plugins]Ativa/desativa grupos de plugins inteiros

Coletores (Plugins)

TarefaComo
Lista arquivos de configuração por coletorcd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf
Habilita um módulo (ex: nginx)sudo ./edit-config go.d/nginx.conf e depois aponte para a URL de status
Depura um coletor Gosudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
Módulos comuns auto-detectadosnginx, apache, mysql, postgres, redis, docker, unidades systemd, discos, rede, sensores

Saúde & Alarmes

Definições de alarme vivem em /etc/netdata/health.d/*.conf.

cd /etc/netdata
sudo ./edit-config health.d/cpu.conf     # ajusta um alarme integrado
netdatacli reload-health                  # aplica
ComandoDescrição
curl http://localhost:19999/api/v1/alarms?allLista todos os alarmes e estado atual (JSON)
curl http://localhost:19999/api/v1/infoInfo do agente, versão, coletores
Edita health_alarm_notify.confConecta email, Slack, PagerDuty, Discord, etc.

Endpoints da API Úteis

EndpointRetorna
/api/v1/chartsTodos os gráficos disponíveis no nó
/api/v1/data?chart=system.cpuDados de série temporal para um gráfico
/api/v1/allmetrics?format=prometheusAlvo de scrape para Prometheus
/api/v1/badge.svg?chart=system.cpu&value_color=greenBadge de status incorporável

Netdata Cloud (Opcional)

# Conecta (reclama) um nó na Netdata Cloud para dashboards multi-nó
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud

O agente funciona completamente de forma independente se você nunca o reclamar — Cloud apenas adiciona visualizações entre nós e alertas centralizados.

Fluxos de Trabalho Comuns

# Verificação rápida de saúde do shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'

# Expõe métricas para uma stack Prometheus existente
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head

# Reduz pegada de CPU/disco em uma VM pequena (netdata.conf)
#   [global] update every = 2
#   [db] mode = ram         # mantém métricas apenas em memória

# Reduz retenção mas mantém granularidade por segundo, depois recarrega
sudo systemctl restart netdata

Netdata vs Prometheus + Grafana

AspectoNetdataPrometheus + Grafana
SetupMinutos, auto-detectaExportadores + dashboards manuais
GranularidadePor segundo por padrãoTipicamente scrape de 15s
ArmazenamentoBanco de dados local em camadas (dbengine)TSDB central
Melhor paraProfundidade de nó único, triagem rápidaGrandes frotas, consultas de longo prazo
InteroperabilidadeExporta formato PrometheusPode fazer scrape de Netdata

Recursos