En aquest article us explicarem com instal·lar i configurar Monit en un servidor Ubuntu. Monit és un sistema de monitoratge per als nostres servidors que ens permet controlar l'ús de recursos i serveis.
Monit està recomanat per monitoritzar un servidor; si disposeu de diversos servidors, hi ha altres alternatives com Zabbix o Nagios.
Al final afegim un enllaç al web de Monit on hi ha tota la documentació sobre configuracions.
Instal·lem Monit al nostre servidor
# apt install monit
Activem la interfície web de Monit
Crearem un fitxer executant: vi /etc/monit/conf.d/web-interface contingut:
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, canvieu aquestes dades per unes més segures
Configurar el servidor SMTP per a l'enviament d'alertes
Omet aquest pas si no vols rebre avisos per correu. Crearem un fitxer executant: vi /etc/monit/conf.d/smtp-server contingut:
set mailserver mail.elmeudomini.com port 587 # canvia mail.elmeudomini.com pel teu servidor username Usuari password "Contrasenya" # canvia Usuari i Contrasenya using tls with timeout 30 seconds set alert alertes@elmeudomini.com # correu que rebrà les alertes
Configurar el format dels correus d'alerta
Omet aquest pas si no vols rebre avisos per correu. Crearem un fitxer executant: vi /etc/monit/conf.d/mail-format contingut:
set mail-format {
from: monit@elmeudomini.com # indicar remitent vàlid per evitar filtres antispam
subject: monit alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
Monit Clouding
}Monitoritzem el nostre disc
Crearem un fitxer executant: vi /etc/monit/conf.d/disc contingut:
check filesystem "root" with path /dev/sda1 if space usage > 80% for 8 cycles then alert if space usage > 99% then stop # per evitar que el servidor s'ompli if inode usage > 80% for 8 cycles then alert if inode usage > 99% then stop # per evitar que el servidor s'ompli
Monitoritzem el servidor Apache
Crearem un fitxer executant: vi /etc/monit/conf.d/apache contingut:
check process apache with pidfile /run/apache2/apache2.pid start program = "/etc/init.d/apache2 start" with timeout 60 seconds stop program = "/etc/init.d/apache2 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 unmonitor
Monitoritzem el servidor SSH
Crearem un fitxer executant: vi /etc/monit/conf.d/ssh contingut:
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 3 restarts within 5 cycles then unmonitor
Monitoritzem el servidor MariaDB/MySQL
Crearem un fitxer executant: vi /etc/monit/conf.d/mysql contingut:
check process mysqld with pidfile /run/mysqld/mysqld.pid start program = "/etc/init.d/mariadb start" stop program = "/etc/init.d/mariadb stop" if failed host 127.0.0.1 port 3306 then restart if 3 restarts within 5 cycles then unmonitor
Monitoritzem la mida d’un fitxer
Crearem un fitxer executant: vi /etc/monit/conf.d/size-log contingut:
check file error.log with path /var/log/mysql/error.log if size > 100 MB then alert
Obrir el Firewall Clouding
Per accedir a Monit via web, hem d’obrir el port TCP 2812 al tallafoc de Clouding.
Reiniciar Monit
Un cop configurats tots els serveis/recursos a monitoritzar, podem reiniciar Monit:
# monit reload
Ja podem visitar la web http://46.183.XXX.XXX:2812. Ens demanarà usuari i contrasenya, hem d’utilitzar els configurats a “Activem la interfície web de Monit”.
Aquí podeu veure l’aspecte de Monit amb una fallada d’apache simulada:
Si uses VestaCP o HestiaCP
Si uses VestaCP o HestiaCP hauràs d’accedir-hi i obrir també el port a l’apartat del tallafoc:
Altres monitoritzacions
Basant-te en els exemples anteriors, pots monitoritzar qualsevol servei. Només cal localitzar el pid corresponent, per exemple basant-nos en l’SSH per a CRON, el pid seria: /run/crond.pid
Pots consultar la documentació de Monit al seu web.