Monitorar servidor em tempo real com o Netdata

O Netdata é uma ferramenta opensource para monitoramento em tempo real de sistemas baseados em Unix. Ela possui uma infinidade de coletores e métricas sobre o uso dos recursos do sistema como: memória, CPU, rede, operações de escrita/leitura no disco etc.

Painel do Netdata

Não obstante, a ferramenta também disponibiliza coletores para aplicações de bancos de dados, servidores web (como o Nginx) entre outros.

A melhor parte de usar o Netdata é que os resultados são imediatos, sem muitas configurações. Você instala e já começa a visualizar os dados coletados. Com o tempo você personaliza as configurações que julgar serem importantes pro seu caso de uso.

Esse artigo não tem o objetivo de teorizar todos os recursos do Netdata, para isso, você pode consultar o site oficial e a sua vasta documentação. A intenção aqui é ser um guia rápido de instalação para que você consiga monitorar o seu servidor em tempo real.

Você pode testar a interface fornecida pelo Netdata e ver as informações padrões que ela oferece através dessa demonstração: https://london.my-netdata.io/

Amazon Web Services (AWS) - EC2 - Fundamentos
Curso de Amazon Web Services (AWS) - EC2 - Fundamentos
CONHEÇA O CURSO

Instalando o Netdata

Existem diversos métodos de instalação do Netdata, sendo o mais simples, o que usa a ferramenta oficial de instalação automática e ela suporta todas as distribuições Linux.

Basta executar no seu servidor:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

O processo pode demorar alguns minutos. Muitas das coisas serão compiladas.

É isso. Tá tudo pronto. Na pós-instalação ele inicia o agente e você pode validar isso:

sudo service netdata status

Se exibir active (running), está tudo no ponto:

Netdata service running

Caso ele não tenha sido iniciado, você pode tentar forçar essa inicialização:

sudo service netdata start

O Netdata abre a porta 19999 para acesso à sua interface web, você pode acessá-lo assim http://seuservidor.com:19999/. Mas não é uma boa coisa deixar isso público para todas as pessoas que entrarem em seu site. Vamos restringir esse acesso para localhost.

Restringindo o acesso à localhost

Isso pode ser feito editando o arquivo /etc/netdata/netdata.conf e na seção [web] remover o comentário # da linha abaixo e definir o valor dela para o IP local:

[web]
    bind to = 127.0.0.1

Depois de cada alteração nos arquivos de configuração do Netdata, é preciso reiniciá-lo

sudo service netdata restart

Estratégias para acesso à interface do Netdata

Agora que bloqueamos o acesso ao socket do Netdata apenas para localhost, temos que definir por onde vamos visualizar os dados e as métricas coletadas do servidor. Existem duas principais estratégias:

  • 1) Através do seu servidor mesmo, criando um proxy reverso no Nginx e definindo uma senha para acessá-lo na web. Por exemplo, você poderia acessar assim: www.seusite.com.br/netdata ou netdata.seusite.com.br;
  • 2) Utilizando o Netdata Cloud, que é a forma mais simples (e é grátis). O Netdata Cloud permite coletar em tempo real os dados e métricas do servidor e organizá-los em espaços e salas de uma forma descentralizada. O Netdata Cloud funciona apenas no modo leitura e toda a comunicação nas duas pontas é feita via uma conexão segura.

Depois de se cadastrar no Netdata Cloud, ele pedirá um nome para o espaço onde as salas de nós monitorados ficarão agrupadas. Você pode colocar o nome que quiser:

Criar o primeiro espaço no netdata

Na tela seguinte, ele pedirá para criar uma “War Room”, que basicamente é uma forma de agrupar nós comuns que você estará monitorando. Por exemplo, se você tem 2 ou 3 servidores EC2 para monitorar, uma possível sala (war room) poderia se chamar EC2:

Netdata Cloud - War Room

Na próxima etapa, é hora de adicionar o nó do seu servidor:

Adicionar nó no Netdata

Em “Rooms” selecione a sala que você acabou de criar. Em seguida é só copiar o comando indicado e executar no servidor onde o agente do Netdata foi instalado. Só avançar até chegar na tela principal, onde o seu nó estará listado. Um exemplo de uma sala com vários nós:

Netdata nodes

É possível adicionar N nós e N salas no Netdata Cloud. A partir desse momento, é só você entrar no nó e usufruir das informações fornecidas por ele.

O que mais posso fazer?

Não existe lugar melhor para consultar os recursos, configurações e opções que a própria documentação do Netdata. Portanto, recomendo enormemente que você dê uma atenção especial a ela.

O que mais pode ser feito no Netdata?

  • Personalização de alertas e configuração de notificações para serem enviadas no seu Telegram, Slack, E-mail, SMS etc;
  • Coletores de outros serviços e aplicações;
  • Outras features e características você pode visualizar na documentação oficial;

Em um próximo artigo veremos como configurar o Netdata para monitorar a stack PHP-FPM e Nginx.

Até a próxima!

Amazon Web Services (AWS) - Fundamentos
Curso de Amazon Web Services (AWS) - Fundamentos
CONHEÇA O CURSO
Deixe seu comentário

Head de desenvolvimento. Vasta experiência em desenvolvimento Web com foco em PHP. Graduado em Sistemas de Informação. Pós-graduando em Arquitetura de Software Distribuído pela PUC Minas. Zend Certified Engineer (ZCE) e Coffee Addicted Person (CAP). @KennedyTedesco

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200