Cómo instalar la herramienta de monitorización Monit en Ubuntu 22.04

Monit es una herramienta de monitorización de código abierto que se puede utilizar para monitorizar servidores. Con Monit, puedes supervisar los procesos del servidor y diferentes servicios como Apache, Nginx, MySQL, FTP, SSH, Sendmail y muchos más. Ofrece una interfaz web sencilla y fácil de usar para supervisar todos los procesos y servicios. Monit puede iniciar cualquier servicio automáticamente en caso de fallo. También te permite supervisar los puertos TCP/IP de hosts remotos, los protocolos de servidor y hacer ping mediante una interfaz de línea de comandos.

Este tutorial te mostrará cómo instalar y configurar la herramienta de monitorización Monit en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

En primer lugar, tendrás que actualizar y actualizar todos los paquetes a la última versión. Puedes hacerlo con el siguiente comando:

apt update -y
apt upgrade -y

Una vez instalados todos los paquetes, puedes pasar al siguiente paso.

Instalar Monit en Ubuntu 22.04

Por defecto, el paquete Monit está disponible en el repositorio por defecto de Ubuntu 22.04. Puedes instalarlo utilizando el siguiente comando:

apt-get install monit -y

después de instalarlo correctamente, inicia el servicio Monit y habilítalo para que se inicie al reiniciar el sistema:

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 Mon 2022-08-01 04:28:17 UTC; 11s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 6292 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 2242)
     Memory: 2.5M
        CPU: 25ms
     CGroup: /system.slice/monit.service
             ??6298 /usr/bin/monit -c /etc/monit/monitrc

Aug 01 04:28:17 ubuntu2204 systemd[1]: Starting LSB: service and resource monitoring daemon...
Aug 01 04:28:17 ubuntu2204 monit[6292]:  * Starting daemon monitor monit
Aug 01 04:28:17 ubuntu2204 monit[6292]:    ...done.
Aug 01 04:28:17 ubuntu2204 systemd[1]: Started LSB: service and resource monitoring daemon.

También puedes comprobar la versión de Monit utilizando el siguiente comando:

monit --version

Deberías ver la siguiente salida:

This is Monit version 5.31.0
Built with ssl, with ipv6, with compression, with pam and with large files
Copyright (C) 2001-2022 Tildeslash Ltd. All Rights Reserved.

Configurar la monitorización de Monit

A continuación, editarás el archivo de configuración por defecto de Monit y establecerás la contraseña de administrador y el puerto. Puedes hacerlo con el siguiente comando:

nano /etc/monit/monitrc

Cambia las siguientes líneas:

set httpd port 2812 and
allow admin:monit # require user 'admin' with password 'monit'

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 con el siguiente comando:

ss -antpl | grep monit

Deberías ver la siguiente salida:

LISTEN 0      1024         0.0.0.0:2812       0.0.0.0:*    users:(("monit",pid=6427,fd=6))                        
LISTEN 0      1024            [::]:2812          [::]:*    users:(("monit",pid=6427,fd=7))                        

También puedes comprobar el estado del sistema utilizando el siguiente comando:

monit status

Obtendrás la siguiente salida:

Monit 5.31.0 uptime: 0m

System 'ubuntu2204'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  load average                 [0.08] [0.13] [0.13]
  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                 1.0 GB [54.0%]
  swap usage                   0 B [0.0%]
  uptime                       28m
  boot time                    Mon, 01 Aug 2022 04:02:09
  filedescriptors              1728 [0.0% of 9223372036854775807 limit]
  data collected               Mon, 01 Aug 2022 04:29:55

Añadir servicios de monitorización

A continuación, tendrás que añadir los servicios que quieras monitorizar mediante Monit. En esta sección, añadiremos los servicios Nginx y ProFTP a Monit.

Añadir el servicio de monitorización de Nginx

Por defecto, Monit proporciona una plantilla predefinida para algunos de los procesos y servicios. Todas estas plantillas se encuentran en el directorio /etc/monit/conf-available/. Por defecto, la plantilla Nginx está disponible, por lo que sólo tienes que activarla mediante 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

Añadir el servicio de monitorización ProFTP

Por defecto, la plantilla del servicio ProFTP no está disponible. Así que tendrás que crearla utilizando tu editor favorito.

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 servicio ProFTP con el siguiente comando:

ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabled

Puedes verificar si la plantilla tiene algún error de sintaxis utilizando el siguiente comando:

monit -t

Obtendrás la siguiente salida:

Control file syntax OK

A continuación, reinicia el servicio 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. Deberías ver todos tus servicios en la siguiente pantalla:

Proporciona tu nombre de usuario, contraseña 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 el servicio Nginx. Deberías ver la información detallada sobre Nginx en la siguiente pantalla:

Monitorización de Monit a través de la línea de comandos

Monit también te permite monitorizar todos los servicios configurados a través de la interfaz de línea de comandos.

Para ver un resumen rápido de monit, ejecuta el siguiente comando:

monit summary

Deberías ver la siguiente salida:

Monit 5.31.0 uptime: 0m
????????????????????????????????????????????????????????????????????????????????
? Service Name                    ? Status                     ? Type          ?
????????????????????????????????????????????????????????????????????????????????
? ubuntu2204                      ? OK                         ? System        ?
????????????????????????????????????????????????????????????????????????????????
? proftpd                         ? OK                         ? Process       ?
????????????????????????????????????????????????????????????????????????????????
? nginx                           ? OK                         ? Process       ?
????????????????????????????????????????????????????????????????????????????????
? nginx_bin                       ? OK                         ? File          ?
????????????????????????????????????????????????????????????????????????????????
? nginx_rc                        ? OK                         ? File          ?
????????????????????????????????????????????????????????????????????????????????

También puedes ver el estado de todos los servicios con el siguiente comando:

monit status

Obtendrás información detallada de todos los servicios en la siguiente salida:

Monit 5.31.0 uptime: 0m

Process 'proftpd'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  pid                          6806
  parent pid                   1
  uid                          0
  effective uid                115
  gid                          65534
  uptime                       2m
  threads                      1
  children                     0
  cpu                          -
  cpu total                    -
  memory                       0.2% [3.4 MB]
  memory total                 0.2% [3.4 MB]
  security attribute           unconfined
  filedescriptors              5 [0.5% of 1024 limit]
  total filedescriptors        5
  read bytes                   0 B/s [2.3 kB total]
  disk read bytes              0 B/s [0 B total]
  disk read operations         0.0 reads/s [17 reads total]
  write bytes                  0 B/s [2.1 kB total]
  disk write bytes             0 B/s [4 kB total]
  disk write operations        0.0 writes/s [8 writes total]
  port response time           3.791 ms to localhost:21 type TCP/IP protocol FTP
  data collected               Mon, 01 Aug 2022 04:34:49

Process 'nginx'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  pid                          6994
  parent pid                   1
  uid                          0
  effective uid                0
  gid                          0
  uptime                       1m
  threads                      1
  children                     1
  cpu                          -
  cpu total                    -
  memory                       0.1% [1.7 MB]
  memory total                 0.4% [7.1 MB]
  security attribute           unconfined
  filedescriptors              10 [1.0% of 1024 limit]
  total filedescriptors        21
  read bytes                   0 B/s [0 B total]
  disk read bytes              0 B/s [0 B total]
  disk read operations         0.0 reads/s [0 reads total]
  write bytes                  0 B/s [0 B total]
  disk write bytes             0 B/s [0 B total]
  disk write operations        0.0 writes/s [0 writes total]
  data collected               Mon, 01 Aug 2022 04:34:49

File 'nginx_bin'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  permission                   755
  uid                          0
  gid                          0
  size                         1.2 MB
  access timestamp             Mon, 01 Aug 2022 04:17:26
  change timestamp             Mon, 01 Aug 2022 04:17:24
  modify timestamp             Wed, 27 Apr 2022 10:56:57
  checksum                     8ae236b8cfaa5ba5f471ab7fba65700d (MD5)
  data collected               Mon, 01 Aug 2022 04:34:49

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             Mon, 01 Aug 2022 04:17:24
  change timestamp             Mon, 01 Aug 2022 04:17:24
  modify timestamp             Tue, 06 Nov 2018 19:04:12
  checksum                     290f6f12a12bc8e882bc5af46c1bfe7c (MD5)
  data collected               Mon, 01 Aug 2022 04:34:49

System 'ubuntu2204'
  status                       OK
  monitoring status            Monitored
  monitoring mode              active
  on reboot                    start
  load average                 [0.02] [0.11] [0.12]
  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                 1.0 GB [54.2%]
  swap usage                   0 B [0.0%]
  uptime                       33m
  boot time                    Mon, 01 Aug 2022 04:02:09
  filedescriptors              1760 [0.0% of 9223372036854775807 limit]
  data collected               Mon, 01 Aug 2022 04:34:49

Conclusión

¡Enhorabuena! Has instalado y configurado correctamente la herramienta de monitorización Monit en Ubuntu 22.04. Ahora puedes explorar las funciones de Monit, añadir más servicios y supervisarlos mediante un navegador web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...