Cómo instalar y configurar el programa Monit (supervisión de servicios y procesos de Linux)


Monit es una herramienta gratuita de código abierto y muy útil que monitorea y administra automáticamente el proceso del servidor, archivos, directorios, sumas de verificación, permisos, sistemas de archivos y servicios como Apache, Nginx, MySQL, FTP, SSH, Sendmail, etc.en un sistema basado en UNIX/Linux. sistemas y proporciona una excelente y útil funcionalidad de supervisión a los administradores del sistema.

El monit tiene una interfaz web fácil de usar donde puede ver directamente el estado del sistema y configurar los procesos mediante el servidor web HTTP (S) nativo o mediante la interfaz de línea de comandos. Esto significa que debe tener un servidor web como Apache o Nginx instalado en su sistema para acceder y ver la interfaz web de monit.

Monit tiene la capacidad de iniciar un proceso si no se está ejecutando, reiniciar un proceso si no responde y detener un proceso si utiliza muchos recursos. Además, también puede usar Monit para monitorear archivos, directorios y sistemas de archivos para cambios, cambios de suma de verificación, cambios de tamaño de archivo o cambios de marca de tiempo. Con Monit puede monitorear el puerto TCP/IP de los hosts remotos, los protocolos del servidor y el ping. Monit mantiene su propio archivo de registro y alerta sobre cualquier condición de error crítico y estado de recuperación.

Este artículo está escrito para describir una guía simple sobre la instalación y configuración de Monit en sistemas operativos RHEL, CentOS, Fedora, Ubuntu, Linux Mint y Debian Linux, pero también debería ser fácilmente compatible con Scientific Linux.

Paso 1: Instalar Monit

De forma predeterminada, la herramienta Monit no está disponible en los repositorios base del sistema, debe agregar y habilitar el repositorio epel de terceros para instalar el paquete monit en sus sistemas RHEL/CentOS. Una vez que haya agregado el repositorio de epel, instale el paquete ejecutando el siguiente comando yum. Para Ubuntu/Debian/Linux Mint, los usuarios pueden instalar fácilmente usando el comando apt-get como se muestra.

# yum install monit
$ sudo apt-get install monit

Paso 2: configurar Monit

Monit es muy fácil de configurar, de hecho, los archivos de configuración se crean para ser muy fáciles de leer y para que los usuarios los entiendan más fácilmente. Está diseñado para monitorear los servicios en ejecución cada 2 minutos y mantiene los registros en "/ var/log/monit".

Monit tiene su interfaz web que se ejecuta en el puerto 2812 mediante el servidor web. Para habilitar la interfaz web, debe realizar cambios en el archivo de configuración de monit. El archivo de configuración principal de monit ubicado en /etc/monit.conf en (RedHat/CentOS/Fedora) y el archivo/etc/monit/monitrc para (Ubuntu/Debian/Linux Mint). Abra este archivo con el editor de su elección.

# vi /etc/monit.conf
$ sudo vi /etc/monit/monitrc

A continuación, descomente la siguiente sección y agregue la dirección IP o el nombre de dominio de su servidor, permita que cualquiera se conecte y cambie el usuario y la contraseña de monit o puede usar los predeterminados.

 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'
     allow @monit           # allow users of group 'monit' to connect (rw)
     allow @users readonly  # allow users of group 'users' to connect readonly

Una vez que lo haya configurado, debe iniciar el servicio monit para volver a cargar los nuevos ajustes de configuración.

# /etc/init.d/monit start
$ sudo /etc/init.d/monit start

Ahora, podrá acceder a la interfaz web de monit navegando a "http:// localhost: 2812" o "http://example.com:2812". Luego ingrese el nombre de usuario como "admin" y la contraseña como "monit". Debería obtener una pantalla similar a la siguiente.

Paso 3: agregar servicios de monitoreo

Una vez que la interfaz web de monit esté configurada correctamente, comience a agregar los programas que desea monitorear en el archivo /etc/monit.conf en (RedHat/CentOS/Fedora) y/etc/monit/monitrc para (Ubuntu/Debian/Linux Mint) en El fondo.

A continuación se muestran algunos ejemplos de configuración útiles para monit, que pueden ser muy útiles para ver cómo se está ejecutando un servicio, dónde guarda su archivo pid y cómo iniciar y detener un servicio, etc.

check process httpd with pidfile /var/run/httpd.pid
group apache
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/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 = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program  = "/etc/init.d/apache2 stop"
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
check process sshd with pidfile /var/run/sshd.pid
start program "/etc/init.d/sshd start"
stop program "/etc/init.d/sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout

Una vez que haya configurado todos los programas para el monitoreo, verifique la sintaxis de monit en busca de errores. Si encuentra algún error, corríjalo, no es tan difícil averiguar qué salió mal. Cuando reciba un mensaje como "Sintaxis del archivo de control OK", o si no ve ningún error, puede continuar.

# monit -t
$ sudo monit -t

Después de corregir todos los errores posibles, puede escribir el siguiente comando para iniciar el servicio monit.

# /etc/init.d/monit restart
$ sudo /etc/init.d/monit restart

Puede verificar que el servicio monit se haya iniciado verificando el archivo de registro.

# tail -f /var/log/monit
$ sudo tail -f /var/log/monit.log
[BDT Apr  3 03:06:04] info     : Starting monit HTTP server at [localhost:2812]
[BDT Apr  3 03:06:04] info     : monit HTTP server started
[BDT Apr  3 03:06:04] info     : 'tecmint.com' Monit started
[BDT Apr  3 03:06:04] error    : 'nginx' process is not running
[BDT Apr  3 03:06:04] info     : 'nginx' trying to restart
[BDT Apr  3 03:06:04] info     : 'nginx' start: /etc/init.d/nginx

Así es como se ve monit después de agregar todos los procesos de monitoreo.

Enlaces de referencia

  1. Monitorear la página de inicio
  2. Monitorear la documentación
  3. Monitorear ejemplos de configuración