Monit es una herramienta de monitoreo de procesos de código abierto para el sistema operativo Linux que lo ayuda a monitorear el proceso del sistema utilizando el navegador web y también, cuando sea necesario, automáticamente realiza el mantenimiento o la reparación del proceso en particular de tal manera que pueda volver a estar en línea. /P>
Monit también se puede usar para administrar y monitorear programas, archivos, directorios y dispositivos para cambios de marcas de tiempo, cambios de suma de verificación o cambios de tamaño; no se limita a realizar varias comprobaciones de red TCP/IP, comprobaciones de protocolo y puede utilizar SSL para dichas comprobaciones.
Se registra en su archivo de registro y notifica al usuario a través de mensajes personalizables.
Esta guía lo ayudará a instalar Monit en CentOS 7 / RHEL 7.
Instalar Monit
Habilite el repositorio EPEL para descargar la última versión de Monit.
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Instale Monit usando el comando YUM.
yum -y install monit
Inicie monit usando el siguiente comando.
monit
Salida:
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
Verifique el estado del monitor.
monit status
Salida:
Monit 5.25.1 uptime: 0m System 'server.itzgeek.local' status OK monitoring status Monitored monitoring mode active on reboot start load average [0.01] [0.05] [0.04] cpu 0.0%us 0.0%sy 0.0%wa memory usage 170.2 MB [29.0%] swap usage 0 B [0.0%] uptime 4m boot time Sun, 09 Feb 2020 04:55:42 data collected Sun, 09 Feb 2020 05:00:00
Configurar Monit
El archivo de configuración principal de Monit es /etc/monitrc. Realizaremos algunos cambios en el archivo de configuración de Monit para satisfacer nuestros requisitos.
vi /etc/monitrc
De manera predeterminada, monit está configurado para verificar los servicios en un intervalo de 30 segundos. Esta configuración se puede modificar cambiando la línea de abajo.
set daemon 30
Las alertas pueden ser configuradas por.
set mailserver mx.itzgeek.local port 25
Las plantillas de alerta se pueden encontrar en el propio archivo de configuración. Consulte los extras al final de este artículo.
La configuración de registros se puede cambiar utilizando el siguiente archivo.
set log /var/log/monit
Habilitar la interfaz web de Monit
Monit también proporciona una interfaz web para monitorear y administrar los servicios configurados. De manera predeterminada, monit escucha en el puerto 2812, pero debe configurarse.
Edite el archivo de configuración de monit.
vi /etc/monitrc
Busque el puerto httpd 2812, modifique las siguientes entradas.
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' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
PARA:
set httpd port 2812 and use address 0.0.0.0 # only accept connection from localhost allow 0.0.0.0/0 # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' #with ssl { # enable SSL/TLS and set path to server certificate # pemfile: /etc/ssl/certs/monit.pem #}
Desde la configuración anterior, monit escuchará en 2812 y el usuario administrador podrá acceder a la interfaz web desde cualquier red.
Recargar monitor.
systemctl restart monit
Monit de inicio automático al inicio.
systemctl enable monit
Configure el firewall para permitir el acceso a la interfaz web de Monit, ejecutándose en el puerto 2812.
firewall-cmd --permanent --add-port=2812/tcp firewall-cmd --reload
Acceder a la interfaz web de Monit
Abra su navegador web y vaya a la siguiente URL.
http://su.ip.dirección.ess:2812O
http://su.fq.dn:2812Utilice el nombre de usuario y la contraseña mencionados en el paso anterior.
La página de inicio de Monit se verá como se muestra a continuación.
Configurar servicios para monitorear con Monit
Una vez que la interfaz web está activa, podemos comenzar a configurar los servicios que queremos monitorear.
Puede colocar los archivos de configuración de supervisión del servicio en el directorio /etc/monit.d/.
Configurar para el servicio SSH.
vi /etc/monit.d/sshdmonitor
Utilice la siguiente información.
check process sshd with pidfile /var/run/sshd.pid start program "/usr/bin/systemctl start sshd.service" stop program "/usr/bin/systemctl stop sshd.service" if failed port 22 protocol ssh then restart
Configurar servicio para syslog.
vi /etc/monit.d/syslogmonitor
Utilice la siguiente información.
check process syslogd with pidfile /var/run/syslogd.pid start program = "/usr/bin/systemctl start rsyslog.service" stop program = "/usr/bin/systemctl stop rsyslog.service"
Servicio de configuración para HTTP.
vi /etc/monit.d/httpdmonitor
Utilice la siguiente información.
check process httpd with pidfile /var/run/httpd/httpd.pid start program "/usr/bin/systemctl start httpd.service" stop program "/usr/bin/systemctl stop httpd.service" if failed port 80 protocol http then restart
Una vez configurado, pruebe la sintaxis de monit
monit -t
Salida:
Control file syntax OK
Vuelva a cargarlo para que se apliquen los cambios.
monit reload
Acceda a la interfaz web. Debería ver los nuevos servicios que configuramos hace un momento.
Al hacer clic en los servicios, obtendrá más información sobre el servicio en particular. Aquí, puede realizar acciones como iniciar, detener y reiniciar el servicio, y también deshabilitar el monitoreo.
Monitoreo de prueba
Ahora detenga el servicio HTTP para nuestras pruebas.
systemctl stop httpd
Espere 30 segundos, monit iniciará el syslog automáticamente. Puede encontrarlo en el registro de monitoreo.
cat /var/log/monit.log
Salida:
[UTC Feb 9 05:18:00] error : 'httpd' process is not running [UTC Feb 9 05:18:00] info : 'httpd' trying to restart [UTC Feb 9 05:18:00] info : 'httpd' start: '/usr/bin/systemctl start httpd.service' [UTC Feb 9 05:18:31] info : 'httpd' process is running with pid 1959
Alerta por correo con Monit
Hay plantillas de alerta predefinidas disponibles en Monit para alertar a los administradores del sistema cuando falla un servicio en particular.
Edite el archivo de configuración.
vi /etc/monitrc
Puede actualizar la siguiente plantilla de alerta según sus requisitos.
set mail-format { from: Monit <monit@$HOST> subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION Your faithful employee, Monit @ ITzGeek }
Establezca aquí la dirección del destinatario. Nota:Recibirás alertas sobre todo tipo de acciones
set alert root@localhost
Si no desea recibir alertas sobre el reinicio del servicio iniciado por el usuario, agregue la siguiente configuración.
set alert root@localhost not on { instance, action }
Finalmente, configure la configuración del servidor de correo para que pueda recibir correos. Aquí, estoy usando el relé local para que podamos leer la alerta de correo a través de la terminal para verificar la prueba.
set mailserver localhost
Vuelva a cargar el servicio.
monit reload
Alerta de ejemplo
Monit ha enviado correos electrónicos al usuario raíz sobre el proceso HTTP.
cat /var/spool/mail/root
Correo:
From [email protected] Sun Feb 9 05:22:48 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id 670E21082B34 for <root@localhost>; Sun, 9 Feb 2020 05:22:48 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Does not exist httpd Date: Sun, 09 Feb 2020 05:22:48 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Does not exist Service httpd Date: Sun, 09 Feb 2020 05:22:48 Action: restart Host: server.itzgeek.local Description: process is not running Your faithful employee, Monit @ ITzGeek From [email protected] Sun Feb 9 05:23:18 2020 Return-Path: <[email protected]> X-Original-To: root@localhost Delivered-To: [email protected] Received: from server.itzgeek.local (localhost [IPv6:::1]) by server.itzgeek.local (Postfix) with ESMTP id B22AF1082B37 for <root@localhost>; Sun, 9 Feb 2020 05:23:18 +0000 (UTC) From: "Monit" <[email protected]> To: [email protected] Subject: monit alert -- Exists httpd Date: Sun, 09 Feb 2020 05:23:18 GMT X-Mailer: Monit 5.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-Id: <[email protected]> Exists Service httpd Date: Sun, 09 Feb 2020 05:23:18 Action: alert Host: server.itzgeek.local Description: process is running with pid 2139 Your faithful employee, Monit @ ITzGeek
O
Utilice el cliente de correo electrónico Mutt (yum install -y mutt).
Conclusión
Eso es todo. Hemos configurado correctamente Monit en CentOS 7/RHEL 7.