Ricerca nel sito web

Come monitorare le prestazioni di Ubuntu utilizzando Netdata


Netdata è uno strumento gratuito e open source di monitoraggio e risoluzione dei problemi in tempo reale per server cloud, contenitori, applicazioni e infrastrutture IT on-premise. Fornisce parametri di sistema altamente granulari e in tempo reale come prestazioni della CPU, utilizzo della RAM e del disco e statistiche della larghezza di banda, per citarne alcuni.

Inoltre, Netdata fornisce anche visualizzazioni metriche interattive a cui è possibile accedere da un browser Web insieme ad allarmi intelligenti che aiutano nella risoluzione dei guasti del sistema.

La tecnologia all’avanguardia e la popolarità di Netdata gli hanno fatto guadagnare un posto tra le 100 stelle nascenti del cloud di Forbes nel 2020, il che non è un’impresa da poco. Infatti, al momento della stesura di questa guida, ha ricevuto quasi 50.000 stelle Github.

Esistono due modi per installare Netdata. Puoi immediatamente eseguire uno script automatizzato su una shell BASH. Questo aggiorna i tuoi sistemi e avvia l'installazione di Netdata. In alternativa, puoi clonare il repository Git di Netdata e successivamente eseguire lo script automatizzato. Il primo metodo è semplice e diretto ed è ciò su cui ci concentreremo in questa guida.

In questo articolo vedremo come installare Netdata su Ubuntu per monitorare in tempo reale, prestazioni e integrità di server e applicazioni.

Piattaforme supportate

Netdata supporta le seguenti distribuzioni Ubuntu LTS:

  • Ubuntu 20.04
  • Ubuntu 18.04
  • Ubuntu 16.04

Come installare Netdata su Ubuntu Linux

Per iniziare l'installazione, esegui il comando seguente sul tuo terminale bash per scaricare ed eseguire lo script.

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

Durante l'esecuzione dello script avviene quanto segue:

  • Lo script rileva automaticamente la tua distribuzione Linux, aggiorna l'elenco dei pacchetti e installa tutti i pacchetti software richiesti.
  • L'ultimo albero di origine netdata viene scaricato nel percorso /usr/src/netdata.git.
  • Lo script installa netdata eseguendo lo script ./netdata-installer.sh dall'albero dei sorgenti.
  • Viene effettuato un aggiornamento a cron.daily per garantire che i netdata vengano aggiornati quotidianamente.

Durante l'esecuzione dello script, ti verranno forniti suggerimenti su come accedere a Netdata su un browser e su come gestirlo come un servizio systemd.

L'installazione richiede un po' di tempo, quindi aspetta circa 10 minuti e torna indietro. Infine, otterrai l'output di seguito mentre lo script conclude l'installazione.

Una volta installato, avvia, abilita e verifica lo stato di Netdata come mostrato.

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

Per impostazione predefinita, Netdata è in ascolto sulla porta 19999 e questo può essere confermato utilizzando il comando netstat come mostrato.

sudo netstat -pnltu | grep netdata

Se hai UFW in esecuzione, prova ad aprire la porta 19999 poiché ciò sarà richiesto quando si accede a Netdata sul browser.

sudo ufw allow 19999/tcp
sudo ufw reload

Infine, per accedere a Netdata, passa al browser e sfoglia il seguente URL

http://server-ip:19999/

Questo è ciò che ti saluta quando navighi nell'URL. In effetti, ti renderai conto che non ti verrà richiesto di effettuare l'accesso. Tutte le metriche del sistema verranno visualizzate come mostrato.

Puoi sfogliare vari grafici facendo clic sulle tue metriche preferite nella barra laterale destra della dashboard. Ad esempio, per verificare le statistiche dell'interfaccia di rete, fai clic sull'opzione "Interfacce di rete".

Protezione dei dati netti con l'autenticazione di base su Ubuntu

Fino a questo punto, chiunque può accedere alla dashboard di Netdata e dare un'occhiata alle varie metriche del sistema. Ciò equivale a una violazione della sicurezza e vogliamo assolutamente evitarlo.

Tenendo presente questo, configureremo l'autenticazione HTTP di base. Dobbiamo installare il pacchetto apache2-utils che fornisce il programma htpasswd che verrà utilizzato per configurare nome utente e password dell'utente. Inoltre, installeremo il server web Nginx che fungerà da proxy inverso.

Per installare il server web Nginx e il pacchetto apache2-utils esegui il comando.


sudo apt install nginx apache2-utils

Con Nginx e apache2-utils installati, creeremo un file di configurazione all'interno della directory /etc/nginx/conf.d. Tuttavia, sentiti libero di utilizzare la directory sites-available se utilizzi Nginx per altri scopi oltre a Netdata.


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

All'interno del file di configurazione, daremo prima istruzioni a Nginx per proxyare le richieste in entrata per la dashboard Netdata. Successivamente aggiungeremo alcune richieste di autenticazione di base che garantiscono solo agli utenti autorizzati l'accesso al dashboard Netdata utilizzando l'autenticazione nome utente/password.

Ecco l'intera configurazione. Ricorda di sostituire le direttive server_ip e example.com con l'indirizzo IP e il nome del server del tuo server.


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;
    }
}

Capiamo la configurazione, sezione per sezione.

Sezione 1:


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

Abbiamo specificato un modulo upstream chiamato netdata-backend che fa riferimento al server web integrato di Netdata utilizzando l'indirizzo loopback 127.0.0.1< e la porta 19999 che è la porta predefinita su cui Netdata è in ascolto. La direttiva keepalive definisce il numero massimo di connessioni inattive che possono rimanere aperte.

Sezione 2:


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

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

Questa è la sezione principale dei blocchi del server Nginx. La prima riga specifica l'indirizzo IP esterno che Nginx dovrebbe ascoltare quando i client inviano le loro richieste. La direttiva server_name specifica il nome di dominio del server e indica a Nginx di eseguire il blocco del server quando i client invocano il nome di dominio anziché l'indirizzo IP esterno.

Le ultime due righe indicano la semplice autenticazione HTTP che richiede all'utente di accedere utilizzando un nome utente e una password. Il modulo auth_basic attiva il pop-up nome utente/password sul browser con "Autenticazione richiesta" nel titolo che può essere successivamente personalizzato in base alle proprie preferenze.

Il modulo auth_basic_user_file punta al nome del file che conterrà il nome utente e la password dell'utente autorizzato ad accedere alla dashboard di Netdata – In questo caso netdata-access. Creeremo questo file in seguito.

Sezione 3:

L'ultima sezione è il blocco posizione che è contenuto all'interno del blocco server. Questo gestisce l'inoltro e l'inoltro delle richieste in entrata al server 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;
    }

Per l'autenticazione, creeremo un nome utente e una password per un utente chiamato tecmint utilizzando l'utilità htpasswd e memorizzeremo le credenziali all'interno del file netdata-access .


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

Fornire la password e confermarla.

Successivamente, riavvia il server Web Nginx affinché le modifiche diventino effettive.


sudo systemctl restart nginx

Per verificare se la configurazione è andata bene, procedi e sfoglia l'indirizzo IP del tuo server


http://server-ip

Verrà visualizzato un popup di autenticazione come mostrato di seguito. Fornisci il tuo nome utente e la tua password e premi INVIO.

Successivamente, avrai accesso alla dashboard Netdata.

Questo ci porta alla fine del nostro argomento di oggi. Hai appena imparato come installare lo strumento di monitoraggio Netdata e la configurazione dell'autenticazione HTTP di base su Ubuntu. Sentiti libero di controllare altri grafici su varie metriche di sistema.