Monit: una eina per gestionar i supervisar sistemes Linux


Monit és una eina gratuïta de codi obert i molt útil que supervisa i gestiona automàticament processos, fitxers, directoris, sumes de comprovació, permisos, sistemes de fitxers i serveis com Apache, Nginx, MySQL, FTP, SSH, SMTP, etc. en UNIX/Linux. sistemes basats i proporciona una funcionalitat de supervisió excel·lent i útil als administradors del sistema.

El monit té una interfície web fàcil d'utilitzar on podeu veure directament l'estat del sistema i configurar els processos mitjançant un servidor web HTTP(S) natiu o mitjançant la interfície de línia d'ordres. Això vol dir que heu de tenir un servidor web com Apache o Nginx instal·lat al vostre sistema per accedir i veure la interfície web de monit.

[També us pot agradar: 20 eines de línia d'ordres per supervisar el rendiment de Linux]

Monit té la capacitat d'iniciar un procés si no s'està executant, reiniciar un procés si no respon i aturar un procés si utilitza recursos elevats. A més, també podeu utilitzar Monit per supervisar fitxers, directoris i sistemes de fitxers per detectar canvis, canvis de suma de verificació, canvis de mida dels fitxers o canvis de marca de temps.

Amb Monit, podeu controlar el port TCP/IP dels hosts remots, els protocols del servidor i el ping. Monit manté el seu propi fitxer de registre i avisa sobre qualsevol condició d'error crític i estat de recuperació.

Aquest article està escrit per descriure una guia senzilla sobre la instal·lació i configuració de Monit a les distribucions Linux basades en Debian.

Pas 1: instal·lar Monit a Linux

De manera predeterminada, el programa de monitorització de Monit no està disponible als dipòsits base del sistema predeterminat, cal afegir i habilitar un dipòsit epel de tercers per instal·lar el paquet monit a distribucions basades en RHEL com CentOS, Rocky Linux i AlmaLinux.

--------- On RHEL 9 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm 

--------- On RHEL 8 based Systems --------- 
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

--------- On RHEL 7 based Systems ---------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Un cop hàgiu afegit el dipòsit epel, instal·leu el paquet Monit executant la següent comanda yum.

# yum install monit
OR
# dnf install monit  [On Fedora Linux]

Per a Ubuntu/Debian/Linux, els usuaris de Mint es poden instal·lar fàcilment mitjançant l'ordre apt tal com es mostra.

$ sudo apt install monit

Pas 2: Configuració de Monit a Linux

Monit és molt fàcil de configurar, de fet, els fitxers de configuració estan creats per ser molt llegibles i facilitar-los la comprensió dels usuaris. Està dissenyat per supervisar els serveis en execució cada 2 minuts i manté els registres a /var/log/monit.

Monit té una interfície web que s'executa al port 2812 mitjançant un servidor web. Per habilitar la interfície web, heu de fer canvis al fitxer de configuració de monit.

El fitxer de configuració principal de monit es troba a /etc/monit.conf a (RedHat/CentOS/Fedora) i el fitxer /etc/monit/monitrc per a (Ubuntu/Debian/Linux Mint).

Obriu aquest fitxer amb l'editor que trieu.

# vi /etc/monitrc
Or
$ sudo nano /etc/monit/monitrc

A continuació, descomenteu la secció següent i afegiu l'adreça IP o el nom de domini del vostre servidor, permeteu que qualsevol es connecti i canviï l'usuari i la contrasenya del monitor o podeu utilitzar-ne els predeterminats.

set httpd port 2812 and
     use address 0.0.0.0  # only accept connections from localhost
     allow 0.0.0.0/0        # 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

Un cop l'hagueu configurat, heu d'iniciar, habilitar i verificar el servei de monit per tornar a carregar la nova configuració.

# systemctl start monit
# systemctl enable monit
# systemctl status monit

Ara, podreu accedir a la interfície web de monit navegant als URL següents.

http://localhost:2812
OR
http://ip-address:2812
Or
http://example.com:2812

A continuació, introduïu el nom d'usuari com a administrador i la contrasenya com a monit. Hauríeu d'obtenir una pantalla semblant a la següent.

Pas 3: Afegeix els serveis de Linux a la monitorització de Monit

Un cop les interfícies web de monit estiguin configurades correctament, comenceu a afegir els programes que voleu supervisar al fitxer /etc/monitrc a (RedHat/CentOS/Fedora) i /etc/monit/monitrc per a (Ubuntu/Debian/Linux Mint) a la part inferior.

A continuació es mostren alguns exemples de configuració útils per a monit, que poden ser molt útils per veure com s'executa un servei, on guarda el seu perfil, com iniciar i aturar un servei, etc.

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/usr/bin/systemctl httpd start"
stop program = "/usr/bin/systemctl httpd stop"
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
check process apache with pidfile /run/apache2.pid
start program = "/usr/bin/systemctl apache2 start" with timeout 60 seconds
stop program  = "/usr/bin/systemctl apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl nginx start"
stop program = "/usr/bin/systemctl nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/usr/bin/systemctl mysqld start"
stop program = "/usr/bin/systemctl mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/bin/systemctl sshd start"
stop program "/usr/bin/systemctl sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Un cop hàgiu configurat tots els programes per al seguiment, comproveu la sintaxi de monit per si hi ha errors. Si es troben errors, solucionen-los, no és tan difícil esbrinar què ha fallat. Quan rebeu un missatge com Controlar la sintaxi del fitxer d'acord, o si no veieu cap error, podeu continuar endavant.

# monit -t
Or
$ sudo monit -t

Després de corregir tots els errors possibles, podeu escriure l'ordre següent per iniciar el servei monit.

# systemctl monit restart
OR
$ sudo systemctl monit restart

Així es veu el monitor després d'afegir tots els serveis de Linux per a la supervisió.