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étodo | Comando |
|---|
| Kickstart universal | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| Variante curl | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Pacote Debian/Ubuntu | sudo apt install netdata |
| Pacote Fedora/RHEL | sudo dnf install netdata |
| Docker | docker 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
| Comando | Descrição |
|---|
sudo systemctl start netdata | Inicia o agente |
sudo systemctl enable netdata | Inicia no boot |
sudo systemctl restart netdata | Reinicia (aplica mudanças de configuração) |
sudo systemctl status netdata | Verifica status |
sudo journalctl -u netdata -f | Exibe logs do agente |
netdatacli reload-health | Recarrega alarmes sem reiniciar completamente |
netdatacli reload-labels | Recarrega labels de host |
netdatacli shutdown-agent | Para 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 = 1 | Intervalo de coleta em segundos |
[global] history / dbengine | Tamanhos de retenção / camadas de banco de dados em disco |
[web] bind to = * | Interfaces de rede que o dashboard ouve |
[web] default port = 19999 | Porta do dashboard |
[plugins] | Ativa/desativa grupos de plugins inteiros |
Coletores (Plugins)
| Tarefa | Como |
|---|
| Lista arquivos de configuração por coletor | cd /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 Go | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Módulos comuns auto-detectados | nginx, 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
| Comando | Descrição |
|---|
curl http://localhost:19999/api/v1/alarms?all | Lista todos os alarmes e estado atual (JSON) |
curl http://localhost:19999/api/v1/info | Info do agente, versão, coletores |
Edita health_alarm_notify.conf | Conecta email, Slack, PagerDuty, Discord, etc. |
Endpoints da API Úteis
| Endpoint | Retorna |
|---|
/api/v1/charts | Todos os gráficos disponíveis no nó |
/api/v1/data?chart=system.cpu | Dados de série temporal para um gráfico |
/api/v1/allmetrics?format=prometheus | Alvo de scrape para Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Badge 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
| Aspecto | Netdata | Prometheus + Grafana |
|---|
| Setup | Minutos, auto-detecta | Exportadores + dashboards manuais |
| Granularidade | Por segundo por padrão | Tipicamente scrape de 15s |
| Armazenamento | Banco de dados local em camadas (dbengine) | TSDB central |
| Melhor para | Profundidade de nó único, triagem rápida | Grandes frotas, consultas de longo prazo |
| Interoperabilidade | Exporta formato Prometheus | Pode fazer scrape de Netdata |
Recursos