GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Monit en CentOS 8 / RHEL 8

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. Cada vez que el servicio/proceso deja de funcionar, realiza automáticamente el mantenimiento y la reparación del proceso en particular y se asegura de que vuelva a estar en línea.

Monit también se puede usar para administrar y monitorear programas, archivos, directorios, sistemas de archivos, verificaciones de red TCP/IP, verificaciones de protocolo y puede utilizar SSL para tales verificaciones.

Se registra en su archivo de registro y notifica al usuario a través de mensajes personalizables.

Esta guía lo ayudará a configurar Monit en CentOS 8 / RHEL 8.

Instalar Monit

Instale las herramientas de compilación necesarias, ya que Monit aún no se ha empaquetado como rpm para CentOS 8/RHEL 8.

dnf install -y git gcc glibc make glibc-devel kernel-headers autoconf automake libtool bison flex libzip-devel pam-devel openssl openssl-devel

Clona el código fuente de Monit para compilarlo.

git clone https://bitbucket.org/tildeslash/monit.git

Compila Monit con una serie de los siguientes comandos.

cd monit

./bootstrap

./configure

make

make install

Configurar Monit

Funcionalidad

Copie el archivo monitrc de la fuente descargada al directorio /etc.

cp monitrc /etc/

Realizaremos algunos cambios en el archivo de configuración de Monit para satisfacer nuestros requisitos.

vi /etc/monitrc

De forma predeterminada, Monit está configurado para verificar los servicios en un intervalo de 30 segundos. Este intervalo se puede modificar cambiando la línea de abajo.

set daemon 30

Puede configurar un servidor de correo electrónico para recibir alertas en su bandeja de entrada.

set mailserver mx.itzgeek.local port 25
Las alertas por correo electrónico se pueden personalizar utilizando plantillas integradas que se encuentran en el propio archivo de configuración. Consulte las alertas por correo con Monit al final de este artículo para obtener más información.

La configuración de registros se puede cambiar utilizando el siguiente archivo.

set log /var/log/monit.log

Asegúrese de descomentar la siguiente línea. Colocaremos archivos de monitoreo de servicio aquí.

include /etc/monit.d/*

Interfaz web

Monit también proporciona una interfaz web para monitorear y administrar los servicios configurados. De forma predeterminada, Monit escucha en el puerto 2812, pero debe configurarse.

Edite el archivo de configuración de Monit /etc/monitrc.

vi /etc/monitrc

Busque el puerto httpd 2812, modifique las siguientes entradas.

DE:

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 (drop if you use M/Monit)
    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 el puerto 2812 en todas las interfaces. El usuario administrador podrá acceder a la interfaz web desde cualquier red.

Configuración del sistema

Ahora crearemos un archivo systemd para iniciar automáticamente Monit al iniciar el sistema.

vi /lib/systemd/system/monit.service

Utilice la siguiente configuración.

 # This file is systemd template for monit service. To
 # register monit with systemd, place the monit.service file
 # to the /lib/systemd/system/ directory and then start it
 # using systemctl (see below).
 #
 # Enable monit to start on boot:
 #         systemctl enable monit.service
 #
 # Start monit immediately:
 #         systemctl start monit.service
 #
 # Stop monit:
 #         systemctl stop monit.service
 #
 # Status:
 #         systemctl status monit.service

 [Unit]
 Description=Pro-active monitoring utility for unix systems
 After=network.target
 Documentation=man:monit(1) https://mmonit.com/wiki/Monit/HowTo

 [Service]
 Type=simple
 KillMode=process
 ExecStart=/usr/local/bin/monit -I
 ExecStop=/usr/local/bin/monit quit
 ExecReload=/usr/local/bin/monit reload
 Restart = on-abnormal
 StandardOutput=null

 [Install]
 WantedBy=multi-user.target                        

Vuelva a cargar el demonio systemd.

systemctl daemon-reload

Inicie el servicio Monit.

systemctl start monit

Monit de inicio automático al inicio.

systemctl enable monit

Cortafuegos

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:2812

O

http://su.fq.dn:2812

Utilice el nombre de usuario y la contraseña mencionados en el paso anterior.

La página de inicio de Monit se verá así:

Configurar servicios para monitorear con Monit

Una vez que la interfaz web esté activa, podemos comenzar a configurar otros servicios que desee monitorear.

mkdir /etc/monit.d/

Puede colocar los archivos de configuración en el directorio /etc/monit.d/.

Configurar servicio para syslog.

vi /etc/monit.d/syslogmonitor

Utilice la siguiente información.

check process SysLog with pidfile /var/run/rsyslogd.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 cargar Monit para aplicar los cambios.

systemctl reload monit

Acceda a la interfaz web. Debería ver los nuevos servicios que configuramos hace un momento.

Al hacer clic en un servicio, 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.

Pruebe el monitoreo

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 Monit.

cat /var/log/monit.log

Salida:

[EST Jan 27 20:37:03] error    : 'HTTPD' process is not running
[EST Jan 27 20:37:03] info     : 'HTTPD' trying to restart
[EST Jan 27 20:37:03] info     : 'HTTPD' start: '/usr/bin/systemctl start httpd.service'
[EST Jan 27 20:37:38] info     : 'HTTPD' process is running with pid 25270

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. Para esta demostración, utilizaremos el relé local (servidor de correo electrónico) para alertar al usuario root.

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
}

Establezca aquí la dirección del destinatario para recibir alertas sobre todo tipo de acciones

set alert root@localhost

Establezca aquí la dirección del destinatario para no alertar sobre los reinicios del servicio iniciados por el usuario.

set alert root@localhost not on { instance, action }

Finalmente, establezca la configuración del servidor de correo para que pueda recibir correos.

set mailserver localhost

Aquí, estoy usando el relé local dnf install -y sendmail &&systemctl start sendmail para que podamos leer las alertas por correo electrónico en la terminal para confirmar el mecanismo de alerta.

Vuelva a cargar el servicio.

systemctl reload monit

Ver Alerta

Monit ha enviado correos electrónicos al usuario raíz sobre el proceso HTTP.

cat /var/spool/mail/root

Salida:

To: [email protected]
Subject: monit alert --  Does not exist HTTPD
Date: Tue, 28 Jan 2020 01:44:05 GMT
X-Mailer: Monit 5.27.0
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:        Mon, 27 Jan 2020 20:44:05
                Action:      restart
                Host:        centos8.itzgeek.local
                Description: process is not running

           Your faithful employee,
           Monit @ ITzGeek

From [email protected]  Mon Jan 27 20:44:47 2020
Return-Path: <[email protected]>
Received: from centos8.itzgeek.local (localhost [127.0.0.1])
        by centos8.itzgeek.local (8.15.2/8.15.2) with ESMTP id 00S1ilKL026285
        for <root@localhost>; Mon, 27 Jan 2020 20:44:47 -0500
From: "Monit" <[email protected]>
To: [email protected]
Subject: monit alert --  Exists HTTPD
Date: Tue, 28 Jan 2020 01:44:47 GMT
X-Mailer: Monit 5.27.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <[email protected]>

Exists Service HTTPD
                Date:        Mon, 27 Jan 2020 20:44:47
                Action:      alert
                Host:        centos8.itzgeek.local
                Description: process is running with pid 26069

           Your faithful employee,
           Monit @ ITzGeek

O

Utilice mutt dnf install -y mutt, un cliente de correo electrónico para ver alertas.

Conclusión

Eso es todo. Hemos configurado correctamente Monit en CentOS 8/RHEL 8.


Cent OS
  1. Cómo instalar phpMyAdmin en RHEL 8 / CentOS 8

  2. Cómo instalar P7Zip en RHEL 8 / CentOS 8

  3. Cómo instalar ntfs-3g en RHEL 8 / CentOS 8

  4. Cómo instalar Icinga 2 en CentOS 8 / RHEL 8

  5. Cómo instalar Monit en CentOS 6

Cómo instalar cpan en RHEL 8 / CentOS 8

Cómo instalar ruby ​​en RHEL 8 / CentOS 8

Cómo instalar Docker CE en RHEL 8 / CentOS 8

Cómo instalar VirtualBox 6.0 en CentOS 8 / RHEL 8

Cómo instalar PHP 7.4 en CentOS 8 / RHEL 8

Cómo instalar Monit en CentOS 7 / RHEL 7