Gestionar Linux puede ser una tareas tediosa y compleja si el usuario no tiene un conocimiento medio de los diversos comandos de la consola pero una de las ventajas de Linux es que al ser un software de código abierto podemos hacer uso de múltiples herramientas para administrar el sistema y una de estas es Monit.
Monit se ha creado como una utilidad con al cual es posible administrar y monitorear diversos aspectos del sistema Linux como lo son procesos, programas, archivos, directorios y muchas opciones mas en un entorno simple pero a la vez integral y esto gracias a que es posible gestionar y administrar los directorios y sistemas de archivos en busca de algún cambio que afecte su operación o ponga en riesgo la integridad del sistema y esto abarca servicios como Apache, Nginx, MySQL, FTP, SSH, SMTP y más.
Es posible monitorear todos estos procesos en el localhost y nos da la oportunidad de monitorear la suma de verificación md5 o sha1 de un archivo para detectar cualquier cambio, dentro de sus características encontramos:
- Es posible monitorear las conexiones de red de múltiples servidores
- Es compatible con los sockets de dominio TCP, UDP y Unix
- Las prueba de red pueden ser ejecutadas a nivel de protocolo
- Podemos monitorear los recursos del sistema en localhost tales como el uso de CPU, memoria o la carga del sistema
- Monit está en capacidad de monitorear las características de un proceso como la cantidad de memoria o ciclos de CPU usados
- Es posible monitorear procesos daemon o programas similares ejecutados en el localhost
Ahora Solvetic te enseñará cómo instalar Monit en Linux (Ubuntu como referencia) y así tener una opción de administración y monitoreo centralizado.
Cómo instalar Monit en Linux
Abrimos la terminal e instalamos Monit con el comando:
sudo apt install monit
Para otras versiones de Linux podemos ejecutar los siguientes comandos:
Para RHEL 9:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpmPara RHEL 8:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmEn Debian o Linux Mint:
sudo apt install monitAccedemos al archivo de configuración con algún editor:
sudo nano /etc/monit/monitrc
El comportamiento de Monit se gestiona a través de opciones de línea de comandos las cuales están alojadas en este archivo de control de ejecución.
Veremos lo siguiente al acceder:
Ubicamos la línea "set httpd port 2812 and":
Descomentamos esa línea y descomentamos las líneas:
- allow localhost
- allow admin:monit
Con esto estamos permitiendo tener el acceso al localhost y se accederá con el usuario admin y la contraseña monit.
Guardamos los cambios con Ctrl + O y salimos del editor con Ctrl + X.
Iniciamos el servicio:
sudo systemctl start monit
Habilitamos el servicio:
sudo systemctl enable monit
Validamos el estado del servicio:
sudo systemctl status monit
Validamos la configuración de Monit para comprobar que todo está correcto:
sudo monit -t
sudo ufw allow tcp/2018 sudo ufw reload
Para ver su funcionamiento abrimos un navegador e ingresamos la siguiente sintaxis:
http://localhost:2812Ingresamos el usuario y contraseña asignado:
Iniciamos sesión para ver lo siguiente:
En primer lugar veremos:
- el nombre del equipo
- estado actual
- tiempo de carga
- uso de CPU
- Uso de memoria
- Uso de memoria de intercambio SWAP
Damos clic sobre el equipo para acceder a las opciones de monitoreo:
Allí vemos detalles más completos sobre el monitoreo de Linux.
Como un punto extra es posible que deseemos añadir más servicios para monitorear, para ello debemos abrir el archivo /etc/monit/monitrc y agregar lo siguiente según sea el caso:
check process httpd with pidfile /var/run/httpd.pid group apache start program = "/usr/bin/systemctl httpd start" stop program = "/usr/bin/systemctl httpd stop" if failed host 127.0.0.1 port 80 protocol http then restart if 5 restarts within 5 cycles then timeout
check process apache with pidfile /run/apache2.pid start program = "/usr/bin/systemctl apache2 start" with timeout 60 seconds stop program = "/usr/bin/systemctl apache2 stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid group mysql start program = "/usr/bin/systemctl mysqld start" stop program = "/usr/bin/systemctl mysqld stop" if failed host 127.0.0.1 port 3306 then restart if 5 restarts within 5 cycles then timeout
check process nginx with pidfile /var/run/nginx.pid start program = "/usr/bin/systemctl nginx start" stop program = "/usr/bin/systemctl nginx stop"
check process sshd with pidfile /var/run/sshd.pid start program "/usr/bin/systemctl sshd start" stop program "/usr/bin/systemctl sshd stop" if failed host 127.0.0.1 port 22 protocol ssh then restart if 5 restarts within 5 cycles then timeout
Guardamos los cambios y reiniciamos el servicio:
systemctl monit restartEn la consola ya será posible supervisar estos servicios.
- -c archivo: permite usar el archivo de control
- -d n: ejecuta Monit como un demonio una vez cada n segundos
- -G Nombre: permite establecer un nombre del grupo para inicio, detener, reiniciar el servicio
- -l archivo: imprime información de registro en el archivo
- -s statefile: escribe información de estado en el archivo
- -t: ejecuta una verificación de sintaxis para el archivo de control
- -v: usa el modo detallado
Con estos pasos hemos visto cómo usar Monit en Linux y monitorear los servicios globales de Linux.