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.

Scroll al inicio