Monitoraggio Server · 4 min read · Oct 15, 2025

Monitoraggio del Server Con munin E monit Su Debian Etch - Pagina 2

4 Installa E Configura monit

Per installare monit, facciamo così:

apt-get install monit

Ora dobbiamo modificare /etc/monit/monitrc. Il file predefinito /etc/monit/monitrc ha molti esempi, e puoi trovare ulteriori esempi di configurazione su http://www.tildeslash.com/monit/doc/examples.php. Tuttavia, nel mio caso voglio monitorare proftpd, sshd, mysql, apache e postfix, voglio abilitare l’interfaccia web di monit sulla porta 2812, voglio un’interfaccia web https, voglio accedere all’interfaccia web con il nome utente admin e la password test, e voglio che monit invii avvisi via email a root@localhost, quindi il mio file appare così:

cp /etc/monit/monitrc /etc/monit/monitrc_orig  
cat /dev/null > /etc/monit/monitrc  
vi /etc/monit/monitrc

| set daemon 60 set logfile syslog facility log_daemon set mailserver localhost set mail-format { from: [email protected] } set alert root@localhost set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:test check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart if 5 restarts within 5 cycles then timeout check process sshd with pidfile /var/run/sshd.pid start program "/etc/init.d/ssh start" stop program "/etc/init.d/ssh stop" if failed port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout check process mysql with pidfile /var/run/mysqld/mysqld.pid group database start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout check process apache with pidfile /var/run/apache2.pid group www start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop" if failed host www.example.com port 80 protocol http and request "/monit/token" then restart if cpu is greater than 60% for 2 cycles then alert if cpu > 80% for 5 cycles then restart if totalmem > 500 MB for 5 cycles then restart if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles then stop if 3 restarts within 5 cycles then timeout check process postfix with pidfile /var/spool/postfix/pid/master.pid group mail start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp then restart if 5 restarts within 5 cycles then timeout |

(Assicurati di controllare solo i processi che esistono realmente sul tuo server - altrimenti monit non si avvierà. Ad esempio, se dici a monit di controllare Postfix, ma Postfix non è installato sul sistema, monit non si avvierà.)

Il file di configurazione è abbastanza autoesplicativo; se non sei sicuro riguardo a un’opzione, dai un’occhiata alla documentazione di monit: http://www.tildeslash.com/monit/doc/manual.php

Nella parte apache della configurazione di monit trovi questo:

| if failed host www.example.com port 80 protocol http and request "/monit/token" then restart |

che significa che monit prova a connettersi a www.example.com sulla porta 80 e cerca di accedere al file /monit/token che è /var/www/www.example.com/web/monit/token perché la radice del documento del nostro sito web è /var/www/www.example.com/web. Se monit non riesce, significa che Apache non è in esecuzione, e monit lo riavvierà. Ora dobbiamo creare il file /var/www/www.example.com/web/monit/token e scrivere una stringa casuale al suo interno:

mkdir /var/www/www.example.com/web/monit  
echo "hello" > /var/www/www.example.com/web/monit/token

Successivamente creiamo il certificato pem ( /var/certs/monit.pem) di cui abbiamo bisogno per l’interfaccia web di monit crittografata SSL:

mkdir /var/certs  
cd /var/certs

Abbiamo bisogno di un file di configurazione OpenSSL per creare il nostro certificato. Può apparire così:

vi /var/certs/monit.cnf

| # crea certificati RSA - Server RANDFILE = ./openssl.rnd [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type [ req_dn ] countryName = Nome del Paese (codice di 2 lettere) countryName_default = MO stateOrProvinceName = Nome dello Stato o della Provincia (nome completo) stateOrProvinceName_default = Monitoria localityName = Nome della Località (ad es., città) localityName_default = Monittown organizationName = Nome dell'Organizzazione (ad es., azienda) organizationName_default = Monit Inc. organizationalUnitName = Nome dell'Unità Organizzativa (ad es., sezione) organizationalUnitName_default = Dip. delle Tecnologie di Monitoraggio commonName = Nome Comune (FQDN del tuo server) commonName_default = server.monit.mo emailAddress = Indirizzo Email emailAddress_default = [email protected] [ cert_type ] nsCertType = server |

Ora creiamo il certificato in questo modo:

openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512 >> /var/certs/monit.pem
openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

Dopo di che modifichiamo /etc/default/monit per abilitare il demone monit. Cambia startup in 1 e imposta CHECK_INTERVALS all’intervallo in secondi che desideri che monit controlli il tuo sistema. Ho scelto 60 (secondi) quindi il mio file appare così:

vi /etc/default/monit

| # Defaults per lo script di avvio di monit # sorgente da /etc/init.d/monit # installato in /etc/default/monit dagli script di manutenzione # Fredrik Steen <[email protected]> # Devi impostare questa variabile affinché monit si avvii startup=1 # Per cambiare gli intervalli in cui monit dovrebbe eseguire, decommenta # e modifica questa variabile. CHECK_INTERVALS=60 |

Infine, possiamo avviare monit:

/etc/init.d/monit start

Ora punta il tuo browser su https://www.example.com:2812/ (assicurati che la porta 2812 non sia bloccata dal tuo firewall), accedi con admin e test, e dovresti vedere l’interfaccia web di monit. Dovrebbe apparire così:

(Schermata Principale)

(Pagina di Stato di Apache)

A seconda della tua configurazione in /etc/monit/monitrc, monit riavvierà i tuoi servizi se falliscono e invierà email di notifica se gli ID processo dei servizi cambiano, ecc.

Divertiti!

5 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.