Server Monitoring · 5 min read · Oct 15, 2025

Monitoraggio del Server con Munin e Monit su Debian 8 (Jessie)

In questo articolo, descriverò come puoi monitorare il tuo server Debian 8 (Jessie) con Munin e Monit. munin produce graziose piccole grafiche su quasi ogni aspetto del tuo server (carico medio, utilizzo della memoria, utilizzo della CPU, throughput di MySQL, traffico eth0, ecc.) senza molta configurazione, mentre Monit controlla la disponibilità di servizi come Apache, MySQL, Postfix e prende le azioni appropriate come un riavvio se trova che un servizio non si comporta come previsto. La combinazione dei due ti offre un monitoraggio completo: grafica che ti consente di riconoscere problemi attuali o imminenti (come “Abbiamo bisogno di un server più grande presto, il nostro carico medio sta aumentando rapidamente.”), e un watchdog che garantisce la disponibilità dei servizi monitorati.

Sebbene Munin ti consenta di monitorare più di un server, discuteremo solo il monitoraggio del sistema in cui è installato qui.

Questo tutorial è stato scritto per Debian 8 (Jessie), ma la configurazione dovrebbe applicarsi anche ad altre distribuzioni come Ubuntu con poche modifiche.

Voglio dire prima che questo non è l’unico modo per impostare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Il nome host del nostro sistema è server1.example.com, e abbiamo un sito web www.example.com su di esso con la radice del documento /var/www/www.example.com/web.

Assicurati che il sistema sia aggiornato prima di iniziare a installare Munin, esegui:

apt-get update  
apt-get upgrade

Apache è utilizzato per mostrare le pagine di Munin, il modulo apache fcgid è necessario per la funzione di zoom dei grafici di Munin. Installa apache e il modulo fcgid con apt.

apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid

Abilita il modulo fcgid in apache.

a2enmod fcgid

2 Installa e Configura Munin

Per installare Munin su Debian Jessie, facciamo così:

apt-get install munin munin-node munin-plugins-extra 

Quando il server sta eseguendo MySQL o MariaDB, abilita alcuni plugin extra di Munin per monitorare MySQL:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/mysql_ mysql_  
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes  
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb  
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_  
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries  
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries  
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

Successivamente, dobbiamo modificare il file di configurazione di Munin /etc/munin/munin.conf. Decommenta le righe dbdir, htmldir, logdir, rundir e tmpldir (i valori predefiniti vanno bene). Vogliamo che Munin utilizzi il nome server1.example.com invece di localhost.localdomain nell’output HTML, quindi sostituiamo localhost.localdomain con server1.example.com nella sezione semplice dell’albero degli host. Senza i commenti, il file modificato appare così:

nano /etc/munin/munin.conf
# Esempio di file di configurazione per Munin, generato da 'make build'  
  
# Le prossime tre variabili specificano dove si trova il RRD  
# database, l'output HTML, i log e i file lock/pid. Devono tutti  
# essere scrivibili dall'utente che esegue munin-cron. Sono tutti  
# impostati sui valori che vedi qui.  
#  
dbdir /var/lib/munin  
htmldir /var/cache/munin/www  
logdir /var/log/munin  
rundir /var/run/munin  
  
# Dove cercare i modelli HTML  
#  
tmpldir /etc/munin/templates  
  
# Dove cercare i file statici www  
#  
#staticdir /etc/munin/static  
  
# i file cgi temporanei sono qui. nota che deve essere scrivibile da  
# l'utente cgi (di solito nobody o httpd).  
#  
# cgitmpdir /var/lib/munin/cgi-tmp

# (Esattamente uno) directory per includere tutti i file.
includedir /etc/munin/munin-conf.d
[...]  
# un semplice albero degli host  
[server1.example.com]  
 address 127.0.0.1  
 use_node_name yes
[...]  

Dovremmo trovare il file di configurazione di Apache 2.4 per Munin /etc/munin/apache24.conf - definisce un alias chiamato munin per la directory di output HTML di munin /var/cache/munin/www, il che significa che possiamo accedere a munin da tutti i siti web su questo server utilizzando il percorso relativo /munin (ad esempio, http://www.example.com/munin).

La configurazione di Apache per Munin non è abilitata per impostazione predefinita, questo è stato cambiato da DebianWheezy a Jessie. La nuova directory di configurazione è /etc/apache2/conf-enabled invece di /etc/apache2/conf.d che era utilizzata in versioni precedenti come Wheezy e Squeeze.

Esegui questi comandi per abilitare e caricare la configurazione in apache.

cd /etc/apache2/conf-enabled/  
ln -s /etc/munin/apache24.conf munin.conf  
service apache2 restart

Assicurati di commentare la riga Require local e aggiungere Require all granted e Options FollowSymLinks SymLinksIfOwnerMatch invece (altrimenti potrai accedere all’output di Munin solo da localhost):

nano /etc/munin/apache24.conf
Alias /munin /var/cache/munin/www  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Riavvia Apache:

service apache2 restart

Poi riavvia Munin:

service munin-node restart

Ora aspetta qualche minuto affinché Munin possa produrre il suo primo output, e poi vai su http://www.example.com/munin/ nel tuo browser, e vedrai le prime statistiche:

Grafici di Munin

(Questo è solo un piccolo estratto dei molti grafici che munin produce…)

3 Proteggi con Password la Directory di Output di Munin (Opzionale ma altamente raccomandato)

Ora è una buona idea proteggere con password la directory di output di munin a meno che tu non voglia che tutti possano vedere ogni piccola statistica sul tuo server.

Per fare ciò, dobbiamo creare il file di password /etc/munin/munin-htpasswd. Vogliamo accedere con il nome utente admin, quindi facciamo così:

htpasswd -c /etc/munin/munin-htpasswd admin

Inserisci una password per admin. Poi apri di nuovo /etc/munin/apache24.conf…

nano /etc/munin/apache24.conf

… commenta “Require all granted” e aggiungi le righe che ho contrassegnato in rosso:

Alias /munin /var/cache/munin/www  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Poi riavvia Apache:

service apache2 restart

4 Abilita moduli aggiuntivi in Munin

Il comando Munin “munin-node-configure –suggest” può essere utilizzato per ottenere raccomandazioni per moduli aggiuntivi di Munin che possono essere abilitati sul server. Esegui:

munin-node-configure --suggest

L’output dovrebbe essere simile a questo:

Stato della configurazione del nodo Munin.

La colonna “used” mostra se un modulo è abilitato, la colonna “Suggestions” mostra se il server esegue un servizio che può essere monitorato da questo modulo. Crea un symlink per il modulo in /etc/munin/plugins per abilitarlo.

Qui abiliterò i moduli apache_* ad esempio:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/apache_accesses  
ln -s /usr/share/munin/plugins/apache_processes  
ln -s /usr/share/munin/plugins/apache_volume

Riavvia Munin per caricare la nuova configurazione.

service munin-node restart
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.