Pesquisa de site

Como monitorar o desempenho do Ubuntu usando Netdata


Netdata é uma ferramenta gratuita e de código aberto para monitoramento e solução de problemas em tempo real para servidores em nuvem, contêineres, aplicativos e infraestrutura de TI local. Ele fornece métricas de sistema altamente granulares e em tempo real, como desempenho de CPU, utilização de RAM e disco e estatísticas de largura de banda, para mencionar alguns.

Além disso, o Netdata também fornece visualizações métricas interativas que podem ser acessadas em um navegador da web, juntamente com alarmes inteligentes que ajudam na solução de falhas do sistema.

A tecnologia de ponta e a popularidade da Netdata conquistaram-lhe um lugar na nuvem da Forbes 100 estrelas em ascensão em 2020, o que não é tarefa fácil. Na verdade, no momento em que este guia foi escrito, ele recebeu quase 50.000 estrelas no Github.

Existem duas maneiras que você pode usar para instalar o Netdata. Você pode executar imediatamente um script automatizado em um shell BASH. Isso atualiza seus sistemas e inicia a instalação do Netdata. Alternativamente, você pode clonar o repositório Git do Netdata e depois executar o script automatizado. O primeiro método é simples e direto e é nele que nos concentraremos neste guia.

Neste artigo, veremos como você pode instalar o Netdata no Ubuntu para monitorar em tempo real, o desempenho e o monitoramento da integridade de servidores e aplicativos.

Plataformas suportadas

Netdata oferece suporte às seguintes distribuições Ubuntu LTS:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Como instalar o Netdata no Ubuntu Linux

Para iniciar a instalação, execute o comando abaixo em seu terminal bash para baixar e executar o script.

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

Durante a execução do script, ocorre o seguinte:

  • O script descobre automaticamente sua distribuição Linux, atualiza a lista de pacotes e instala todos os pacotes de software necessários.
  • A árvore de origem netdata mais recente é baixada no caminho /usr/src/netdata.git.
  • O script instala netdata executando o script ./netdata-installer.sh da árvore de origem.
  • Uma atualização é feita em cron.daily para garantir que netdata seja atualizado diariamente.

À medida que o script é executado, você receberá dicas sobre como acessar o Netdata em um navegador e como gerenciá-lo como um serviço systemd.

A instalação demora um pouco, então aguarde cerca de 10 minutos e volte. Finalmente, você obterá a saída abaixo enquanto o script conclui a instalação.

Depois de instalado, inicie, ative e verifique o status do Netdata conforme mostrado.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

Por padrão, Netdata escuta na porta 19999 e isso pode ser confirmado usando o comando netstat conforme mostrado.

sudo netstat -pnltu | grep netdata

Se você tiver o UFW em execução, faça um esforço para abrir a porta 19999, pois isso será necessário ao acessar o Netdata no navegador.

sudo ufw allow 19999/tcp
sudo ufw reload

Finalmente, para acessar o Netdata, mude para o seu navegador e navegue no seguinte URL

http://server-ip:19999/

Isto é o que você recebe quando você navega no URL. Na verdade, você perceberá que não será necessário fazer login. Todas as métricas do sistema serão exibidas conforme mostrado.

Você pode percorrer vários gráficos clicando nas métricas de sua preferência na barra lateral direita do painel. Por exemplo, para verificar as estatísticas da interface de rede, clique na opção ‘Interfaces de rede’.

Protegendo Netdata com autenticação básica no Ubuntu

Até este ponto, qualquer pessoa pode acessar o painel Netdata e dar uma olhada nas diversas métricas do sistema. Isto equivale a uma violação de segurança e definitivamente queremos evitar isso.

Com isso em mente, vamos configurar a autenticação HTTP básica. Precisamos instalar o pacote apache2-utils que fornece o programa htpasswd que será usado para configurar o nome de usuário e senha do usuário. Além disso, instalaremos o servidor web Nginx que atuará como proxy reverso.

Para instalar o servidor web Nginx e o pacote apache2-utils execute o comando.


sudo apt install nginx apache2-utils

Com o Nginx e o apache2-utils instalados, vamos criar um arquivo de configuração dentro do diretório /etc/nginx/conf.d. No entanto, sinta-se à vontade para usar o diretório sites-available se estiver usando o Nginx para outros fins além do Netdata.


sudo vim /etc/nginx/conf.d/default.conf

Dentro do arquivo de configuração, primeiro instruiremos o Nginx a fazer proxy das solicitações recebidas para o painel Netdata. Depois disso, anexaremos alguns prompts de autenticação básica que concedem apenas aos usuários autorizados acesso ao painel Netdata usando autenticação de nome de usuário/senha.

Aqui está toda a configuração. Lembre-se de substituir as diretivas server_ip e example.com pelo endereço IP e pelo nome do servidor.


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

Vamos entender a configuração, seção por seção.

Seção 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

Especificamos um módulo upstream chamado netdata-backend que faz referência ao servidor web integrado do Netdata usando o endereço loopback 127.0.0.1< e porta 19999 que é a porta padrão na qual o Netdata escuta. A diretiva keepalive define o número máximo de conexões ociosas que podem permanecer abertas.

Seção 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Esta é a seção principal do bloco do servidor Nginx. A primeira linha especifica o endereço IP externo que o Nginx deve escutar quando os clientes enviam suas solicitações. A diretiva server_name especifica o nome de domínio do servidor e instrui o Nginx a executar o bloco do servidor quando os clientes invocam o nome de domínio em vez do endereço IP externo.

As duas últimas linhas indicam a autenticação HTTP simples que exige que o usuário faça login usando um nome de usuário e uma senha. O módulo auth_basic aciona o pop-up de nome de usuário/senha no navegador com “Autenticação necessária” no título, que pode posteriormente ser personalizado de acordo com sua preferência.

O módulo auth_basic_user_file aponta para o nome do arquivo que conterá o nome de usuário e senha do usuário autorizado a acessar o dashboard do Netdata – Neste caso netdata-access. Criaremos este arquivo mais tarde.

Seção 3:

A última seção é o bloco location que está contido no bloco server. Isso lida com o proxy e o encaminhamento de solicitações recebidas para o servidor web Nginx.


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

Para autenticação, criaremos um nome de usuário e senha para um usuário chamado tecmint usando o utilitário htpasswd e armazenaremos as credenciais dentro do arquivo netdata-access .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

Forneça a senha e confirme-a.

Em seguida, reinicie o servidor web Nginx para que as alterações tenham efeito.


sudo systemctl restart nginx

Para testar se a configuração deu certo, prossiga e navegue pelo endereço IP do seu servidor


http://server-ip

Um pop-up de autenticação aparecerá conforme mostrado abaixo. Forneça seu nome de usuário e senha e pressione ENTER.

Depois disso, você terá acesso ao painel Netdata.

Isso nos leva ao final do nosso tópico de hoje. Você acabou de aprender como instalar a ferramenta de monitoramento Netdata e configurar a autenticação HTTP básica no Ubuntu. Sinta-se à vontade para verificar outros gráficos sobre várias métricas do sistema.