Introduzione
Monit è una applicazione utile a monitorare lo stato di file, directory, processi e periferiche. È in grado di intraprendere particolari misure di manutenzione nel caso in cui riscontri particolari anomalie.
Installazione
Il programma è presente nel componente universe dei repository ufficiali. Una volta abilitato tale componente è sufficiente installare il pacchetto monit.
Configurazione
Per configurare l'applicazione è sufficiente modificare con un editor di testo con i privilegi di amministrazione il file di configurazione /etc/monit/monitrc.
Prima di tutto è necessario specificare quali server di posta verranno utilizzati per l'invio dei messaggi di notifica. È possibile aggiungere diversi server di posta con le relative porte. Supponendo di voler utilizzare per l'invio della posta i server mx1.example.com con porta standard 25 e mx2.example.com, con porta 10025, occorre aggiungere al file di configurazione la seguente direttiva:
set mailserver mx1.example.com, mx2.example.com port 10025
Specificare poi l'indirizzo mittente da cui l'applicazione invierà la posta, ad esempio monit@example.com:
set mail-format { from: monit@example.com }
Specificare l'indirizzo a cui le mail di notifica dovranno essere consegnate (es. sysadmin@example.com)
set alert sysadmin@example.com
Abilitare il server web interno per accedere all'interfaccia di amministrazione. È possibile specificare a quali indirizzi consentire l'accesso (es. localhost) e quali utenti, con le relative password. Nell'esempio che segue verrà configurato un singolo accesso di amministrazione per l'utente «admin» con password «monit»:
set httpd port 2812 and use address localhost # accetta connessioni solo da localhost allow localhost # permette la visualizzazione solo se la richiesta proviene da localhost allow admin:monit # utente admin con password monit
Una configurazione più sicura prevede l'utilizzo di SSL. Per far ciò è necessario generare un certificato x509 valido. Supponendo che questo sia contenuto, insieme alla relativa chiave privata, nel file /var/certs/monit.pem occorre aggiungere una direttiva del seguente tipo:
set httpd port 2812 and SSL ENABLE PEMFILE /var/certs/monit.pem allow admin:monit
Qualora si vogliano monitorare le risorse utilizzate dal sistema, è possibile aggiungere una regola che avvisi l'amministratore nel caso in cui alcune soglie vengano superate. Quello che segue è un esempio generico:
check system server.example.com if loadavg (1min) > 4 then alert if loadavg (5min) > 2 then alert if memory usage > 75% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 30% then alert if cpu usage (wait) > 20% then alert
Se si desidera invece monitare i permessi e il proprietario di una particolare cartella di sistema è utile aggiungere una regola simile alla seguente:
check directory bin with path /bin if failed permission 755 then unmonitor if failed uid 0 then unmonitor if failed gid 0 then unmonitor
Per monitare un servizio di sismtema è utile aggiungere una direttiva simile alla seguente:
check process slapd with pidfile /var/run/slapd/slapd.pid start program = "/etc/init.d/slapd start" stop program = "/etc/init.d/slapd stop" if failed host 192.168.1.1 port 389 protocol ldap3 then restart if 5 restarts within 5 cycles then timeout
Nella configurazione dell'esempio sopra citato, qualora il server ldap risultasse non disponibile, monit provvederà a riavviarlo.
Per monitare un PC remoto su cui gira una istanza di MySql, è utile aggiungere una direttiva simile alla seguente:
check host myserver with address 192.168.1.1 if failed icmp type echo count 3 with timeout 3 seconds then alert if failed port 3306 protocol mysql with timeout 15 seconds then alert
Le diciture «myserver» e «192.168.1.1» vanno sostituite con gli indirizzi adatti ai propri scopi.
Avvio del servizio
Aprire il file /etc/defautl/monit con un editor di testo con i privilegi di amministrazione, dunque modificare la variabile «startup» come nell'esempio seguente:
startup=1
Infine avviare il servizio con il seguente comando in una finestra di terminale:
sudo /etc/init.d/monit start
L'interfaccia amministrativa di monit sarà raggiungibile all'indirizzo http://localhost:2812.