Come installare e configurare Monit

Tempo fa vi avevo parlato di Munin, un tool per il monitoraggio dei vostri server, oggi voglio parlarvi di un suo amico: Monit.

Monit è un utility open source per amministrare e monitorare processi, programmi, files, directory e filesystems su un sistema Unix/Linux. Monit è in grado di eseguire delle azioni di manutenzione e ripristino e di determinare operazioni in caso di errori.

Monit può avviare un processo se non è un esecuzione, riavviare un processo che non risponde e fermare un processo che utilizza troppe risorse. Possiamo inoltre utilizzare Monit per monitorare files, directories e filesystems se avvengono determinati cambiamenti, ad esempio cambi nei checksum dei file, cambi nelle dimensioni dei files e modifiche ai timestamp. Possiamo inoltre monitorare porte remote via TPC/IP, server protocol e ping. Monit mantiene i suoi log e ci avvisa in casi si verifichi una situazione critica o un ripristino.

1- Installare Monit

Per quanto riguarda l’installazione su sistemi RHEL/CentOS, bisogna aggiungere i repository EPEL che non tratto in questa guida (google is your friend!). Per installare Monit procediamo quindi così:

su RedHat/CentOS/Fedora/

# yum install monit

su Ubuntu/Debian/Linux Mint

# sudo apt-get install monit

2- Configurare Monit

Monit è molto semplice da configurare, infatti è tutto contenuto all’interno di un unico file di configurazione. È stato progettato per monitorare i servizi ogni 2 minuti e mantenere i file di log in “/var/log/monit“.

Il programma ha una sua interfaccia web, che si mette in ascolto sulla porta 2812. Per abilitare l’interfaccia web è necessario apportare delle modifiche ai file di configurazione. Il file principale si trova in /etc/monit.conf sotto RedHat/CentOS/Fedora/ ed in /etc/monit/monitrc se siamo su Ubuntu/Debian/Linux Mint. Editiamo il file con il nostro editor preferito, a seconda della versione:

su RedHat/CentOS/Fedora/

# nano /etc/monit.conf

su Ubuntu/Debian/Linux Mint

# nano /etc/monit/monitrc

Seccessivamente decommentiamo le righe seguenti

 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly

 Una volta salvato il file, riavviamo il servizio

su RedHat/CentOS/Fedora/
# /etc/init.d/monit start
su Ubuntu/Debian/Linux Mint
$ sudo /etc/init.d/monit start

Ora potrete accedere alla parte web del sistema collegandovi sulla porta http://X.X.X.X:2812

3- Aggiungere servizi da monitorare

Per aggiungere dei programmi da monitorare basta inserirli nel file di configurazione di cui sopra e, una volta modificato il file, riavviare il servizio.

Apache
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
Apache2
check process apache with pidfile /run/apache2.pid
start program = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program  = "/etc/init.d/apache2 stop"
Nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
MySQL
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
SSHD
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Il seguente comando vi permette di controllare la sintassi del file di configurazione

# monit -t

Quando riavviate il servizio, controllate che non ci siano errori, dovreste ottenere o una stringa del tipo “Control file syntax OK” oppure niente. Se ci sono errori fixateli.

Potete controllare che Monit stia lavorando con il comando

# tail -f /var/log/monit

Esempio di log
[BDT Apr  3 03:06:04] info     : Starting monit HTTP server at [localhost:2812]
[BDT Apr  3 03:06:04] info     : monit HTTP server started
[BDT Apr  3 03:06:04] info     : 'tecmint.com' Monit started
[BDT Apr  3 03:06:04] error    : 'nginx' process is not running
[BDT Apr  3 03:06:04] info     : 'nginx' trying to restart
[BDT Apr  3 03:06:04] info     : 'nginx' start: /etc/init.d/nginx

Vi riporto di seguito alcuni screenshot di esempio.

Divertitevi!

1

3

2

Author: Matteo Temporini

Nato nel 1979 a Udine (Italia), ho conseguito il diploma di scuola superiore come Programmatore. Ho proseguito gli studi ottenendo nel 2006 la Laurea in Informatica, presso l'università degli studi di Udine. Da sempre appassionato al mondo del Web, ho maturato un esperienza decennale come sistemista Linux e Windows presso varie aziende. Quello che state leggendo su questo sito è frutto della mia esperienza diretta, che continua a crescere grazie ad amici e colleghi.

Share This Post On

Submit a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Per postare il commento, risolvi il quesito sottostante * Time limit is exhausted. Please reload CAPTCHA.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

All original content on these pages is fingerprinted and certified by Digiprove