Cómo instalar y configurar Monit en Debian
Monit es una herramienta de supervisión gratuita y de código abierto que supervisa procesos y servicios de servidor como Apache, Nginx, Rsyslog, FTP y SSH en sistemas Linux. Monit proporciona una interfaz basada en web, así como un cliente de línea de comandos para supervisar los distintos servicios. Tiene la capacidad de iniciar un proceso automáticamente cuando no se está ejecutando. También te permite supervisar el puerto TCP de máquinas remotas, el protocolo del servidor y hacer ping.
Este tutorial explicará cómo instalar y utilizar la herramienta de monitorización Monit en Debian 11.
Requisitos previos
- Un servidor que ejecute Debian 11.
- Una contraseña de root configurada en tu servidor.
Instalar Monit en Debian 11
Por defecto, el paquete Monit está disponible en el repositorio por defecto de Debian 11. Puedes instalarlo ejecutando el siguiente comando:
apt-get install monit -y
Una vez completada la instalación, puedes iniciar el servicio Monit y habilitarlo para que se inicie al reiniciar el sistema mediante el siguiente comando:
systemctl start monit systemctl enable monit
También puedes comprobar el estado de Monit utilizando el siguiente comando:
systemctl status monit
Obtendrás la siguiente salida:
? monit.service - LSB: service and resource monitoring daemon Loaded: loaded (/etc/init.d/monit; generated) Active: active (running) since Sat 2022-01-01 07:38:44 UTC; 10s ago Docs: man:systemd-sysv-generator(8) Process: 1005 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 2341) Memory: 1.7M CPU: 20ms CGroup: /system.slice/monit.service ??1010 /usr/bin/monit -c /etc/monit/monitrc Jan 01 07:38:44 debian11 systemd[1]: Starting LSB: service and resource monitoring daemon... Jan 01 07:38:44 debian11 monit[1005]: Starting daemon monitor: monit. Jan 01 07:38:44 debian11 systemd[1]: Started LSB: service and resource monitoring daemon.
Cuando hayas terminado, puedes pasar al siguiente paso.
Habilitar la interfaz web de Monit
Monit también proporciona una interfaz web para gestionar y supervisar diferentes servicios. Por defecto, está desactivada. Así que tendrás que activarla y establecer una contraseña de administrador. Puedes hacerlo editando el archivo de configuración de Monit:
nano /etc/monit/monitrc
Descomenta y cambia las siguientes líneas:
set httpd port 2812 and allow admin:monitpassword
Guarda y cierra el archivo y reinicia el servicio Monit para aplicar los cambios:
systemctl restart monit
Por defecto, Monit escucha en el puerto 2812. Puedes comprobarlo utilizando el siguiente comando:
ss -antpl | grep :2812
Obtendrás la siguiente salida:
LISTEN 0 1024 0.0.0.0:2812 0.0.0.0:* users:(("monit",pid=1322,fd=6)) LISTEN 0 1024 [::]:2812 [::]:* users:(("monit",pid=1322,fd=7))
Configurar Monit para Nginx
Monit te permite monitorizar diferentes servicios. En primer lugar, comprueba el estado de tu sistema operativo utilizando el siguiente comando:
monit status
Obtendrás la siguiente salida:
Monit 5.27.2 uptime: 0m System 'debian11' status OK monitoring status Monitored monitoring mode active on reboot start load average [0.14] [0.06] [0.02] cpu 0.0%usr 0.0%sys 0.0%nice 0.0%iowait 0.0%hardirq 0.0%softirq 0.0%steal 0.0%guest 0.0%guestnice memory usage 192.2 MB [9.7%] swap usage 0 B [0.0%] uptime 2m boot time Sat, 01 Jan 2022 07:37:55 filedescriptors 512 [0.0% of 9223372036854775807 limit] data collected Sat, 01 Jan 2022 07:39:34
Por defecto, Monit proporciona un archivo de configuración del servicio Nginx, pero está desactivado por defecto. Así que tendrás que habilitarlo para poder monitorizarlo. Puedes habilitarlo ejecutando el siguiente comando:
ln -s /etc/monit/conf-available/nginx /etc/monit/conf-enabled/
A continuación, reinicia el servicio Monit para aplicar los cambios:
systemctl restart monit
Configurar Monit para ProFTPD
Monit no proporciona un archivo de configuración del servicio para ProFTPD. Así que tendrás que crear un archivo de configuración del servicio ProFTPD. Puedes crearlo con el siguiente comando:
nano /etc/monit/conf-available/proftpd
Añade las siguientes líneas:
check process proftpd with pidfile /var/run/proftpd.pid start program = "/etc/init.d/proftpd start" stop program = "/etc/init.d/proftpd stop" if failed port 21 protocol ftp then restart
Guarda y cierra el archivo y, a continuación, activa el archivo de configuración del servicio ProFTPD con el siguiente comando:
ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabled
A continuación, comprueba el error de sintaxis en el archivo de configuración utilizando el siguiente comando:
monit -t
Si todo va bien, deberías ver la siguiente salida:
Control file syntax OK
Por último, reinicia Monit para aplicar los cambios.
systemctl restart monit
Accede a la interfaz web de Monit
Ahora, abre tu navegador web y accede a la interfaz web de Monit utilizando la URL http://your-server-ip:2812. Se te redirigirá a la página de inicio de sesión de Monit:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de Monit en la siguiente pantalla:
Haz clic en debian11 para comprobar el estado de tu sistema operativo. Deberías ver la siguiente pantalla:
Haz clic en Nginx para comprobar el estado del servicio Nginx. Deberías ver la siguiente pantalla:
Monitorizar servicios a través de la línea de comandos
También puedes supervisar el estado de cualquier servicio utilizando la interfaz de línea de comandos.
Para obtener el resumen de todos los servicios, ejecuta el siguiente comando:
monit summary
Obtendrás la siguiente salida:
Monit 5.27.2 uptime: 0m ???????????????????????????????????????????????????????????????????????????????? ? Service Name ? Status ? Type ? ???????????????????????????????????????????????????????????????????????????????? ? debian11 ? OK ? System ? ???????????????????????????????????????????????????????????????????????????????? ? proftpd ? OK ? Process ? ???????????????????????????????????????????????????????????????????????????????? ? nginx ? OK ? Process ? ???????????????????????????????????????????????????????????????????????????????? ? nginx_bin ? OK ? File ? ???????????????????????????????????????????????????????????????????????????????? ? nginx_rc ? OK ? File ? ????????????????????????????????????????????????????????????????????????????????
Para comprobar el estado de todos los servicios, ejecuta el siguiente comando:
monit status
Obtendrás el siguiente resultado:
Monit 5.27.2 uptime: 0m Process 'proftpd' status OK monitoring status Monitored monitoring mode active on reboot start pid 2596 parent pid 1 uid 0 effective uid 107 gid 65534 uptime 16m threads 1 children 0 cpu - cpu total - memory 0.1% [2.9 MB] memory total 0.1% [2.9 MB] security attribute unconfined filedescriptors 5 [0.5% of 1024 limit] total filedescriptors 5 read bytes 0 B/s [32 B total] disk read bytes 0 B/s [0 B total] disk read operations 0.0 reads/s [34 reads total] write bytes 0 B/s [178 B total] disk write bytes 0 B/s [4 kB total] disk write operations 0.0 writes/s [3 writes total] port response time 2.495 ms to localhost:21 type TCP/IP protocol FTP data collected Sat, 01 Jan 2022 08:00:43 Process 'nginx' status OK monitoring status Monitored monitoring mode active on reboot start pid 2078 parent pid 1 uid 0 effective uid 0 gid 0 uptime 20m threads 1 children 1 cpu - cpu total - memory 0.6% [11.5 MB] memory total 0.8% [16.6 MB] security attribute unconfined filedescriptors 9 [0.9% of 1024 limit] total filedescriptors 19 read bytes 0 B/s [62.0 kB total] disk read bytes 0 B/s [3.4 MB total] disk read operations 0.0 reads/s [73 reads total] write bytes 0 B/s [81 B total] disk write bytes 0 B/s [4 kB total] disk write operations 0.0 writes/s [2 writes total] data collected Sat, 01 Jan 2022 08:00:43 File 'nginx_bin' status OK monitoring status Monitored monitoring mode active on reboot start permission 755 uid 0 gid 0 size 1.1 MB access timestamp Sat, 01 Jan 2022 07:39:44 change timestamp Sat, 01 Jan 2022 07:39:47 modify timestamp Sat, 29 May 2021 14:21:37 checksum 12a1c0be9962768c055158782d1d564a (MD5) data collected Sat, 01 Jan 2022 08:00:43 File 'nginx_rc' status OK monitoring status Monitored monitoring mode active on reboot start permission 755 uid 0 gid 0 size 4.5 kB access timestamp Sat, 01 Jan 2022 07:39:44 change timestamp Sat, 01 Jan 2022 07:39:47 modify timestamp Sat, 29 May 2021 14:21:37 checksum 290f6f12a12bc8e882bc5af46c1bfe7c (MD5) data collected Sat, 01 Jan 2022 08:00:43 System 'debian11' status OK monitoring status Monitored monitoring mode active on reboot start load average [0.00] [0.00] [0.00] cpu 0.0%usr 0.0%sys 0.0%nice 0.0%iowait 0.0%hardirq 0.0%softirq 0.0%steal 0.0%guest 0.0%guestnice memory usage 199.5 MB [10.1%] swap usage 0 B [0.0%] uptime 23m boot time Sat, 01 Jan 2022 07:37:55 filedescriptors 640 [0.0% of 9223372036854775807 limit] data collected Sat, 01 Jan 2022 08:00:43
Para comprobar el estado del servicio ProFTPD, ejecuta el siguiente comando:
monit status proftpd
Obtendrás el siguiente resultado:
Monit 5.27.2 uptime: 0m Process 'proftpd' status OK monitoring status Monitored monitoring mode active on reboot start pid 2596 parent pid 1 uid 0 effective uid 107 gid 65534 uptime 16m threads 1 children 0 cpu - cpu total - memory 0.1% [2.9 MB] memory total 0.1% [2.9 MB] security attribute unconfined filedescriptors 5 [0.5% of 1024 limit] total filedescriptors 5 read bytes 0 B/s [32 B total] disk read bytes 0 B/s [0 B total] disk read operations 0.0 reads/s [34 reads total] write bytes 0 B/s [178 B total] disk write bytes 0 B/s [4 kB total] disk write operations 0.0 writes/s [3 writes total] port response time 2.495 ms to localhost:21 type TCP/IP protocol FTP data collected Sat, 01 Jan 2022 08:00:43
Conclusión
Enhorabuena! has instalado correctamente Monit en Debian 11. Ahora puedes empezar a añadir hosts remotos y monitorizarlos desde el navegador web. No dudes en preguntarme si tienes alguna duda.