Site icon Tosolini.info

Monitorare un server

Se avete a disposizione uno o qualche centinaio di server è sempre bene avere un sistema di monitoraggio. Perché?

In effetti Linux ha un ottimo sistema di Logging degli eventi, ben contingentato per singolo software, molto maneggiabile e malleabile, con efficienti sistemi di rotazione, esportabili eccetera.

Tutto questo però ha un piccolo problema, ovvero che non sempre si sa cosa e dove cercare. Non è infatti sempre possibile avere conteggio di situazioni, magari anche sporadiche per cui la CPU è andata in sovraccarico o qualche applicativo era in difficoltà. Magari il dato iniziale è arrivato proprio da un feedback di un utente, quindi la segnalazione è molto generica. In questo caso ci si ritrova, in base all’esperienza, a fare deduzioni su possibili cause, ma senza un monitoraggio costante è come tirare i dadi e cercare di indovinare un numero.

Un Datacenter deve avere un sistema di monitoraggio che entri nel dettaglio più in profondità che può. Maggiori sono i dati, maggiori e migliori saranno le correlazioni per identificare velocemente la causa di un problema. Sono quantità di dati che nel 99,9% delle volte non servono, ma quando entra in gioco quel 0,1% ha ripagato tutto il lavoro svolto. Tempo fa ricordo la corruzione del filesystem di un server. Ma lo stesso avendo l’applicativo in memoria non mostrava nessun problema dal punto di vista funzionale. Gli utenti non si erano accorti di nulla, ma il monitoraggio invece mi aveva avvertito della situazione. Siamo così intervenuti “in anticipo” rispetto alle normali procedure evitando perdite di dati e interruzioni di servizio.

Questo però succede nei Datacenter, dove un sistema dedicato raccoglie i dati, li aggrega e li elabora. Per una situazione dove esiste un solo server o pochi server non è economicamente conveniente adottare un sistema evoluto, in questo caso sarebbe meglio avere un software leggero, che gira direttamente sul server medesimo, senza funzionalità pro, ma che mostri la situazione e la tenga controllata regalando anche un po’ di storico.

Questo software esiste, è open source e si chiama Monitorix. Gira in perl e ha una sua interfaccia attraverso un webserver dedicato. E’ molto leggero e occupa pochissime risorse. I dati vengono raccolti a campionamento e rappresentati graficamente. Non c’è quindi un analisi di log o situazioni simili, ma si concentra sulle capacità del server stesso. Quindi viene mostrato il carico, la memoria ram, il traffico di rete, come MySQL o Apache utilizzando le risorse. I grafici possono essere raggruppati in visualizzazioni giornaliere, settimanali o mensili. Il numero e tipo di grafi è abbastanza elevato ed è possibile scegliere cosa attivare o meno, e perfino andare a modificare determinate informazioni. Ad esempio vogliamo tenere un monitoraggio sullo spazio del nostro applicativo web o altre cartelle. Sarà possibile dichiararle e tenerle controllate.

Installazione

Prendiamo ad esempio la classica Ubuntu o Debian server. Monitorix può non essere presente nei repository ufficiali, quindi dobbiamo avvalerci dell’APT di IzzySoft

# aggiungiamo la lista apt
sudo echo "deb https://apt.izzysoft.de/ubuntu generic universe" > /etc/apt/sources.list.d/monitorix.list
# aggiungiamo la chiave
curl https://apt.izzysoft.de/izzysoft.asc | apt-key add -
# scarichiamo il software
apt update && apt install monitorix

A questo punto abbiamo il software installato e dobbiamo configurarlo. Consiglio subito il backup del file /etc/monitorix/monitorix.conf poiché è in questo che andremo a configurare il necessario. Consiglio di dare un occhiata alla documentazione per capire quali moduli scegliere di attivare.

In linea di massima quello di default è abbastanza pronto, si consiglia di dare un occhio alla sezione di autenticazione via HTTP dell’applicativo stesso, e di verificare la sezione dei LOG affinché determinate informazioni siano prese dalle path corrette. Dopo di che non resta che attivare i moduli grafici, mettendo una “y” sulla voce interessata.

Per attivare l’autenticazione, non esiste di fatto un sistema raffinato, ci si affida al classico Httpasswd di Apache, per altro con il sistema di criptazione del dato nemmeno a MD5 ma ad un più blando CRYPT che prevede per altro la password di massimo 8 caratteri. Siccome i dati da difendere non sono propriamente importanti, infatti non si vede molto di utile se non appunto un possibile riscontro ad azioni esterne, può andare bene. Quindi utilizzando il tool di Apache andremo a dare il comando:

sudo httpasswd -c -d /var/lib/monitorix/htpasswd administrator

Viene richiesta una password, appunto non oltre gli 8 caratteri. A questo punto è consigliabile dare anche un po’ meno diritti al file:

sudo chmod 600 /var/lib/monitorix/htpasswd

E quindi abilitare nella sezione di monitorix l’autenticazione nella sottosezione auth. Consiglio anche di mettere un filtro su hosts_deny = all mentre mettere una classe larga per gli allow, magari quelle relative all’Italia o al vostro Internet Service Provider. In questo modo si limiteranno i tentativi di accesso.

<httpd_builtin>
	enabled = y
	host =
	port = 8080
	user = nobody
	group = nobody
	log_file = /var/log/monitorix-httpd
	hosts_deny = all
	hosts_allow = x.x.x.x/8
	<auth>
		enabled = y
		msg = Monitorix: Restricted access
		htpasswd = /var/lib/monitorix/htpasswd
	</auth>
</httpd_builtin>

Restando sul file di configurazione alcuni moduli possono essere personalizzati, ad esempio il modulo del directory usage, che ci viene utile per tenere sotto controllo particolari cartelle, ad esempio il database e il webserver.

Infine sul fondo del file di configurazione è possibile attivare uno scheduler che invia delle mail con alcuni grafici, ad esempio quelli del giorno precedente su System Load e Filesystem in modo da poter dare uno sguardo di controllo senza nemmeno necessariamente accedere all’interfaccia.

Conclusioni

Non si tratta di un sistema raffinato, ma non è nemmeno lo scopo del progetto. Infatti anche dal punto di vista grafico è tutto molto grezzo, ma appunto proprio in virtù del fatto che questo strumento deve avere il minor impatto possibile pur fornendo informazioni interessanti e dovendosi pure sobbarcare l’onere di un webserver seppur minimale. Se avete uno o un paio di server, adottare questo sistema è ottimo. Va detto che saltuariamente il webserver collassa ma i dati vengono processati, per cui è probabile che tocca rianimarlo con un riavvio del processo.

Exit mobile version