Netdata fornece métricas ilimitadas, em tempo real, de tudo que acontece nos sistemas que executa (incluindo servidores Web, bancos de dados, aplicativos), usando um monitoramento web altamente interativo.

Ele pode ser executado de forma autônoma (sem componentes de terceiros) ou pode ser integrado a ferramentas de monitoramento existentes, bem como: Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc.

O Netdata é um software livre, licenciado sob a GPLv3+, e de código aberto (liberado primeira vez em 2016) e atualmente roda em Linux, FreeBSD e MacOS. Inclusive, o Netdata está no escopo de projetos Cloud Native Computing Foundation (CNCF) (o mesmo da Kubernetes) e é o terceiro projeto de código aberto mais rankeado.

Por quê Netdata?

O Netdata é um agente de monitoramento web que você instala em todos os seus sistemas. Isso se traduz a:

  • um coletor de métricas – para métricas de sistema e aplicativo (incluindo servidores da Web, bancos de dados, contêineres, etc)
  • um banco de dados de séries temporais – tudo armazenado na memória (não toca nos discos durante a execução)
  • um visualizador de métricas – super rápido, interativo, moderno, otimizado para detecção de anomalias
  • um mecanismo de notificação de alarmes – um watchdog avançado para detectar problemas de desempenho e disponibilidade

E em relação a outras soluções de monitoramento o Netdata se destaca em:

  • Métricas de alta resolução (granularidade de 1s) contra Métricas de baixa resolução (granularidade de 10s na melhor das hipóteses) para outras ferramentas;
  • A interface de usuário é super rápida, otimizada para detecção de anomalias contra uma interface boa apenas para uma visualização abstrata

Em resumo, o Netdata vem para para solucionar problemas de desempenho e não somente para obter estatísticas do histórico de desempenho.

Como ele funciona?

O Netdata é eficiente e altamente modular. O resultado é um sistema eficiente e de baixa latência:

Primeiramente, logo após o agente de monitoramento instalado, ele executa a função Collect, onde vários workers independentes coletam métricas usando o protocolo ideal para cada serviço/aplicação; e as envia para o banco de dados.

Em seguida, na função Store, as métricas coletadas são armazenadas em memória RAM num banco de dados round-robin (ring buffer), usando um número de ponto flutuante personalizado.

Assim, na função Check, um processo watchdog independente está avaliando as verificações de integridade das métricas coletadas, disparando alarmes, mantendo um log de transações de saúde e enviando notificações de alarme.

A capacidade de manter as coletas das métricas coletadas em tempo real se dá na função Stream, onde transmite-as, detalhadamente, em tempo real, para servidores Netdata remotos, assim que são coletados.

IMPORTANTE

Por padrão o Netdata é uma ferramenta de monitoramento web descentralizado, ou seja, cada alvo (servidor, VM, container, etc) fica responsável pelo seu próprio monitoramento. Para um monitoramento centralizado, veja mais em Netdata Cloud.

Por fim, na função Archive, há o envio para bancos de dados de séries temporais. E, na função Query, as consultas são anexados ao um servidor da Web interno, atendendo a solicitações de API, incluindo consultas de dados.

Infográfico

Instalação

Você pode facilmente instalar o Netdata num Linux com o seguinte script (documentação oficial):


# make sure you run `bash` for your shell
bash

# install Netdata, directly from github sources
bash 

Outros métodos de instalação pode ser consultados AQUI.

Inclusive, caso prefira, pode ser feita a instalação usando Docker:


docker run -d --name=netdata \
  -p 19999:19999 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

Para mais informações sobre Netdata executando em Docker, verifique a documentação oficial.

Publicidade

Por fim, uma vez instalado, você pode acessar no browser, na porta 19999, a URL http://SEU-IP:19999 😉

Referências


Artigo publicado originalmente em 6 de junho de 2019 e modificado em 19 de junho de 2019