En aquest apunt us explicarem com instal·lar i configurar Monit en un servidor Centos. Monit és un sistema de monitoratge per als nostres servidors que ens permet controlar l'ús de recursos i serveis.
Monit està recomanat per monitorar un servidor; si disposes de diversos servidors, hi ha altres alternatives com ara Zabbix o Nagios.
Al final de tot afegim un enllaç al web de Monit, on hi ha tota la documentació sobre configuracions.
Instal·lem Monit al nostre servidor
# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install monit
# systemctl start monit.service
# systemctl enable monit.serviceActivem la interfície web de Monit
Crearem un fitxer executant: vi /etc/monit.d/web-interface amb el contingut següent:
set httpd port 2812
use address 46.183.XXX.XXX #IP pública del nostre servidor Cloud
allow 0.0.0.0/0.0.0.0
allow 'admin':'monit' # usuari:contrasenya canvia aquestes dades per unes de més seguresConfigurem el servidor SMTP per enviar alertes
Omet aquest pas si no vols rebre avisos per correu electrònic. Crearem un fitxer executant: vi /etc/monit.d/smtp-server amb el contingut següent:
set mailserver mail.midominio.com port 587 # canvia mail.midominio.com pel teu servidor
username Usuario password "Contraseña" # canvia Usuario i Contraseña
using TLSV1 with timeout 30 seconds
set alert alertas@midominio.com #correu electrònic que rebrà alertesConfigurem el format dels correus electrònics d'alerta
Omet aquest pas si no vols rebre avisos per correu electrònic. Crearem un fitxer executant: vi /etc/monit.d/mail-format amb el contingut següent:
set mail-format {
from: monit@midominio.com #indica un remitent vàlid per evitar que els filtres antispam filtrin les alertes
filtren alertas
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
Monit Clouding
}Monitorem el nostre disc
Crearem un fitxer executant: vi /etc/monit.d/disco amb el contingut següent:
check filesystem "root" with path /dev/sda1
if space usage > 80% for 8 cycles then alert
if space usage > 99% then stop #atura el nostre servidor per evitar que s'ompli
if inode usage > 80% for 8 cycles then alert
if inode usage > 99% then stop #atura el nostre servidor per evitar que s'ompli Monitorem el servidor httpd
Crearem un fitxer executant: vi /etc/monit.d/httpd amb el contingut següent:
check process apache with pidfile /run/httpd/httpd.pid
start program = "/etc/init.d/httpd start" with timeout 60 seconds
stop program = "/etc/init.d/httpd stop"
if cpu > 60% for 2 cycles then alert
if cpu > 80% for 5 cycles then restart
if totalmem > 200.0 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 unmonitorMonitorem el servidor SSH
Crearem un fitxer executant: vi /etc/monit.d/ssh amb el contingut següent:
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 port 22 protocol ssh then restart
if 3 restarts within 5 cycles then unmonitorMonitorem el servidor MariaDB/MySQL
Crearem un fitxer executant: vi /etc/monit.d/mysql amb el contingut següent:
check process mysqld with pidfile /run/mysqld/mysqld.pid
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 3 restarts within 5 cycles then unmonitorMonitorem la mida d'un fitxer
Crearem un fitxer executant: vi /etc/monit.d/size-log amb el contingut següent:
check file error.log with path /var/log/mysql/error.log
if size > 100 MB then alertObrir el tallafoc de Clouding
Per accedir a Monit via web haurem d'obrir el port TCP 2812 al tallafoc de Clouding.
Reiniciar Monit
Un cop hem configurat tots els serveis/recursos que volem monitorar, ja podem reiniciar Monit:
# monit reloadJa podem visitar el web http://46.183.XXX.XXX:2812, que ens demanarà un nom d'usuari i una contrasenya; hem de fer servir els que hem configurat a “Activem la interfície web de Monit”
Aquí pots veure l'aspecte de Monit; hem simulat una fallada d'apache irrecuperable per veure com deixa de monitorar:
Si fas servir VestaCP
Si fas servir VestaCP, hi hauràs d'accedir i obrir també el port a l'apartat Firewall:
Altres monitoratges
Basant-te en els exemples anteriors, pots monitorar qualsevol servei; només haurem de localitzar el pid corresponent. Per exemple, ens podem basar en l'exemple de SSH per a CRON; el pid seria: /run/crond.pid
Pots consultar la documentació de Monit al seu web.