Novità
Icona risorsa

Guida Verificata Monitorare un server Linux, un'infrastruttura o un datacenter con Netdata

Una guida verificata è stata controllata dallo staff punto per punto e se ne attesta la sua validità.

94492596-72a86b00-019f-11eb-91ab-224e6ac9ea21.png

Introduzione​

Se possedete un server, piccolo o grande che sia, vi sarete chiesti almeno una volta come monitorarne l'andamento, il carico, i servizi e perché no, valutare se la potenza è o meno sufficiente per il suo caso d'uso specifico, magari in vista di un upgrade o un downgrade.
Molti provider di hosting, specie con le VPS, forniscono spesso un sistema di monitoring proprio, talvolta a pagamento, talvolta fornito gratuitamente, che però quasi mai è in grado di darvi una panoramica completa, limitandosi a visualizzare il carico approssimativo sulla CPU e sulla Ram.

Ma se volessimo sapere di più? Ad esempio quanto un particolare programma sta incidendo sulla CPU? O analizzare il traffico ipv4 e ipv6?

In rete si trovano molti software specifici, usati sia a livello professionale che privato. Molto dipende dal sistema operativo installato sul server (o l'infrastruttura) in questione.

Fra questi, non possiamo non citarne alcuni, come Sematext Monitoring, l'usatissima combo Prometheus e Grafana, Nagios, Pingdom Synthetic Monitoring, Zabbix, Netdata e molti altri!

In questa guida ci concentreremo su Netdata, ovvero un sistema di monitoring open-source, web-based. Questo software può essere installato praticamente su qualsiasi distro Linux, in qualsiasi ambiente, che sia un server, multi-server, docker o il proprio computer domestico. Con una granularità al secondo, un esiguo uso delle risorse e un livello di dettaglio elevatissimo, è uno strumento ottimo e soprattutto la sua installazione è semplicissima!

Indice
  • Preparazione
  • Installazione
  • Come proteggere l'interfaccia web di Netdata

Preparazione​

Prima di continuare, suggerisco una lettura della guida: Guida Verificata - [Server] Come proteggere il tuo server Linux

Questa guida può essere utilizzata su qualsiasi distro con i dovuti accorgimenti. Per comodità, seguiremo la sintassi del sistema debian.

Netdata dispone di molti tutorial ufficiali su come installarlo e configurarlo, è presente su github e gli sviluppatori rispondono spesso a dubbi o domande degli utenti (
Accedi o Registrati per vedere questo link.
)

IMPORTANTE: Netdata può essere consultato sia direttamente, connettendosi a http://il-tuo-ip:19999, sia tramite Netdata Cloud, che raccoglie i dati in streaming trasmessi dalla tua installazione ai server di Netdata. L'agente può essere disattivato sia in fase di installazione che post-installazione, in questo caso sarete in grado di monitorare il server solo connettendovi direttamente. In questa guida installeremo normalmente netdata e poi disabiliteremo l'agente post-installazione. Per maggiori informazioni:
Accedi o Registrati per vedere questo link.


Installazione​

Come suggerito nella
Accedi o Registrati per vedere questo link.
, per installare Netdata è sufficiente lanciare il comando
Bash:
Accedi o Registrati per vedere questo contenuto.
Consiglio una rapida lettura della guida ufficiale, in quanto presenta comandi opzionali che posso fare al caso vostro per un'installazione personalizzata.

Inoltre è presente nelle repository ufficiali di mostre distribuzioni, ad esempio su Debian possiamo installarlo anche con
Bash:
Accedi o Registrati per vedere questo contenuto.

Una volta installato, verifichiamo se il servizio è già attivo con sudo systemctl status netdata.
Nel caso non lo fosse, lanciamolo noi
Bash:
Accedi o Registrati per vedere questo contenuto.
e poi facciamo partire automaticamente il servizio ad ogni riavvio della macchina
Bash:
Accedi o Registrati per vedere questo contenuto.

Il servizio è disponibile sulla porta 19999, quindi se usate un firewall dovrete aprire questa porta. Assumendo di avere ufw, eseguite
Bash:
Accedi o Registrati per vedere questo contenuto.
e poi
Bash:
Accedi o Registrati per vedere questo contenuto.

Se Netdata è stato installato localmente, non dovete fare altro, altrimenti è necessario indicare il proprio IP. Per farlo, apriamo con un editor di testo il file di configurazione principale
Bash:
Accedi o Registrati per vedere questo contenuto.
e cambiamo la voce bind socket to IP indicando il nostro ip pubblico (se non lo conoscete, lanciate ip addr)

Se volete disattivare l'agente che permette di connette il vostro server (nodo) a Netdata Cloud, modifichiamo il file /var/lib/netdata/cloud.d/cloud.conf in questo modo
Codice:
Accedi o Registrati per vedere questo contenuto.
Nel caso il file cloud.conf non esistesse, dobbiamo crearlo manualmente. Per farlo, rechiamoci nella cartella
Bash:
Accedi o Registrati per vedere questo contenuto.
e poi usiamo il comando cat, in questo modo entreremo nel prompt CAT
Bash:
Accedi o Registrati per vedere questo contenuto.
Inseriamo il codice sotto, premendo INVIO dopo ogni linea. Alla linea finale EOF, usciremo automaticamente dal prompt una volta premuto INVIO
Codice:
Accedi o Registrati per vedere questo contenuto.
Ed il file è creato, adesso impostiamo i permessi (supponendo che "netdata" sia l'utente corretto, come da installazione predefinita)
Bash:
Accedi o Registrati per vedere questo contenuto.
E per concludere riavviamo il servizio con sudo systemctl restart netdata

Netdata raccoglie anonimamente alcune informazioni statistiche per aiutare a migliorare il servizio. Nel caso volessimo negare questo consenso, basta creare un file nella directory /etc/netdata.
Bash:
Accedi o Registrati per vedere questo contenuto.

FINE! Il servizio è già attivo e per consultarlo basterà connettervi su http://il-tuo-ip:19999.

MA, c'è sempre un ma.. netdata permette di fare molto altro, come inviare una mail (o addirittura un sms, messaggio su discord, telegram e molto altro) nel caso qualcosa non torna, come ad esempio un livello di CPU elevato. Molti avvisi sono preconfigurati e basta semplicemente indicare COME essere avvisati. Poiché questo dipende esclusivamente da voi e le differenti esigenze portano a molte configurazioni diverse, vi invito ad affidarvi alla guida ufficiale per quanto riguarda la gestione degli avvisi:
Accedi o Registrati per vedere questo link.


Inoltre, anche se l'interfaccia web è sicura, nel senso che l'accesso è in sola lettura, espone comunque importanti informazioni sulla macchina in uso (nel caso il servizio giri su ip pubblico).

Come proteggere l'interfaccia web di Netdata​

Disattivare l'interfaccia Web
Ci sono diversi modi per proteggere l'accesso all'interfaccia web di netdata, il più semplice è disabilitare interamente l'interfaccia e monitorare il tutto SOLO attraverso Netdata Cloud. Naturalmente questo metodo funziona solo se avete scelto di collegare l'agent a Netdata Cloud.
Per disattivare l'interfaccia, apriamo il file di configurazione
Bash:
Accedi o Registrati per vedere questo contenuto.
cerchiamo la voce mode sotto web e modifichiamola così
Codice:
Accedi o Registrati per vedere questo contenuto.

Limitare l'accesso all'interfaccia Web
Possiamo decidere di consentire l'accesso SOLO a determinati indirizzi IP o FQDN, seguendo la guida ufficiale, riportiamo gli esempi che sfruttano il comando allow connections from.
Codice:
Accedi o Registrati per vedere questo contenuto.

ATTENZIONE: Questa seconda parte della guida è indicata a utenti con una conoscenza media della rete. Inoltre molto dipenderà dalla configurazione della vostra macchina.

Usare un reverse proxy
Essendo questa tecnica molto specifica, la procedura cambia in base al server web che state usando (apache, nginx etc..). Quanto segue prende come esempio l'uso di Apache e un dominio da voi posseduto.

Il nostro obiettivo è rendere disponibile Netdata su un host virtuale e proteggere il tutto con un sistema di autenticazione.

Devono essere installati i pacchetti mod_proxy e mod_proxy_http, solitamente presenti all'interno del pacchetto apache2.

Intanto, rendiamo disponibile Netdata solo in locale, quindi nel file di configurazione, alla voce bind socket to IP lasciamo pure localhost o 127.0.0.1

Usando Apache, possiamo sfruttare il funzionamento del file .htpasswd, quindi dobbiamo creare il file e specificare user e password da utilizzare per connettersi all'interfaccia.
Per prima cosa installiamo il pacchetto che ci permetterà di generare il file
Bash:
Accedi o Registrati per vedere questo contenuto.

Il file va creato in una directory privata, come esempio scegliamo la directory di apache2, quindi lanciamo
Bash:
Accedi o Registrati per vedere questo contenuto.
ci verrà chiesto di inserire una password per l'utente nomeuser.

In alternativa, possiamo generare con un
Accedi o Registrati per vedere questo link.
il contenuto da inserire nel file .htpasswd, che a quel punto dovremmo creare manualmente nella directory da noi scelta.

Ora, dobbiamo creare un sottodominio per la nostra interfaccia web, ad esempio netdata.domain.tld. Quindi creiamo un A Record che punta all'IP della nostra macchina. Naturalmente questo passaggio va fatto attraverso il vostro provider DNS.

Creiamo l'host virtuale aggiungendo un nuovo sito
Bash:
Accedi o Registrati per vedere questo contenuto.
Inseriamo questo contenuto all'interno
Codice:
Accedi o Registrati per vedere questo contenuto.
Dove abbiamo specificato il nome del sottodominio e la directory dove risiede il file .htpasswd.

In aggiunta, per prevenire il rischio di sovraccarichi o attacchi DDoS, possiamo utilizzare il modulo mod_evasive se è già nel sistema. Per farlo, inseriamo al codice sopra questa linea, prima del tag di chiusura </VirtualHost>
Codice:
Accedi o Registrati per vedere questo contenuto.
Salviamo il file, poi abilitiamo l'host virtuale digitando
Bash:
Accedi o Registrati per vedere questo contenuto.
Ora collegandoci su netdata.domain.tld ci verrà chiesto user e password, poi potremmo vedere la nostra interfaccia web.

Nel caso usassimo un pannello tipo Plesk, il contenuto dell'host virtuale può essere aggiunto manualmente come direttiva apache, stando attenti a non sovrascrivere il contenuto già presente.

Siamo giunti alla fine, spero questa guida vi sia stata utile e magari vi abbia fatto risparmiare qualche soldo in costosi strumenti di monitoraggio.

Fatemi sapere cosa ne pensate!
Autore
Anyma
Visite
591
Primo rilascio
Ultimo aggiornamento
Valutazione
0.00 stella(e) 0 valutazioni

Più risorse di Anyma

Ultimi aggiornamenti

  1. Aggiornamenti minori

    aggiunta la procedura per effettuare l'opt-out dalla raccolta anonima dei dati statistici da...
Indietro
Alto