GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Monit (Monitoreo de procesos y servicios) en Ubuntu / Debian

Monit - Monitoreo de procesos y servicios para Linux

Los servicios en cualquier servidor deben estar en funcionamiento y hacer lo que se supone que deben hacer.

La supervisión automatizada es necesaria para garantizar y maximizar el tiempo de actividad y la disponibilidad de los servicios del sistema en un servidor.

Permite a los administradores del sistema recibir notificaciones y solucionar problemas lo antes posible con una interrupción o un tiempo de inactividad mínimos.

En esta publicación, vamos a jugar con una herramienta llamada Monit que puede monitorear servicios y procesos en un servidor y enviar correos electrónicos de alerta cuando algo falla.

La herramienta en sí es bastante liviana y permite a los usuarios escribir "pruebas" utilizando un lenguaje de estilo de script muy simple.

Instalar Monit

En los sistemas basados ​​en Debian y Ubuntu, Monit está disponible en los repositorios predeterminados. Instalar usando apt-get

$ sudo apt-get install monit

Después de la instalación, monit se iniciaría como un servicio en segundo plano y se puede verificar con el siguiente comando

# service monit status
 * monit is running

Configurar Monit

Lo siguiente que debe hacer es configurar monit para monitorear cosas específicas. El archivo de configuración de Monit se encuentra en /etc/monit/monitrc en sistemas basados ​​en Ubuntu y Debian.

You can either add all configurations to this file - /etc/monit/monitrc, or create additional configuration files in the /etc/monit/conf.d/ directory and monit would automatically read and load all of them

Comience a editar el archivo de configuración para agregar los servicios que desea monitorear.

Monit también tiene un archivo de registro ubicado en /var/log/monit.log que contendría información valiosa si necesita arreglar algo

Después de la configuración, pruebe la nueva configuración ejecutando el siguiente comando

# sudo monit -t

Vuelva a cargar la nueva configuración sin reiniciar todo monit

# sudo monit reload

Habilitar la interfaz web

La interfaz web le permite consultar los informes de Monit desde el navegador. Esto es útil al configurar y probar monit. Más adelante, es mejor desactivarlo para mantener las cosas seguras.

Busque la línea "set httpd" en el archivo de configuración y elimínela. Si la línea no existe, simplemente cree una.

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

Ahora acceda a http://localhost:2812/ y la interfaz web de Monit debería abrirse.

Configurar alertas por correo electrónico

La idea detrás de monit es recibir alertas cada vez que ocurra algo inesperado. Monit puede enviar automáticamente correos electrónicos. Busque la línea "establecer alerta" y especifique el correo electrónico donde desea que se entreguen los informes. Especifique también el servidor de correo a utilizar.

set alert [email protected]
set mailserver localhost

Asegúrese de que haya un servidor smtp (MTA) ejecutándose en localhost y que pueda entregar correos correctamente. Use el comando de correo para verificar que el sistema esté configurado correctamente para enviar correos electrónicos.

Evite los correos electrónicos que no sean de alerta - Monit por defecto envía correos electrónicos por cada cosa que hace o todo lo que sucede. Por ejemplo, cuando se inicia monit. Sin embargo, solo queremos los correos electrónicos específicos de alerta. Modifique la configuración de la siguiente manera

set alert [email protected] not on {instance}

La configuración anterior no enviaría informes de instancias por correo electrónico que se generan al iniciar/detener el monitor. Consulte la documentación de monit sobre filtros de eventos para alertas para obtener más información.

Así es como se ve un correo de alerta de Monit. Se genera cuando se ejecuta una prueba de espacio en disco y falla en el servidor.

Resource limit matched Service server_disk 

	Date:        Thu, 11 Jun 2015 15:41:43
	Action:      alert
	Host:        localhost
	Description: space usage 61.4% matches resource limit [space usage>50.0%]

Your faithful employee,
Monit

Servicios de supervisión como Apache, Mysql, Postfix

Ahora desea monitorear su servidor web, servidor de base de datos, servidor de correo y otros demonios para asegurarse de que los servicios estén funcionando perfectamente todo el tiempo. Esto es facil.

Simplemente siga agregando instrucciones en el archivo de configuración de monit para especificar cada servicio que le gustaría monitorear y Monit comenzaría a hacerlo instantáneamente.

After changing configurations, make sure to run 'sudo monit reload' to bring them in effect.
While testing you can manually turn services on/off and check the monit report from the web interface.

Aquí hay algunos ejemplos -

1. Servicio HTTP - puerto 80

El siguiente ejemplo le dirá a Monit que verifique si el servidor http está sirviendo en el puerto 80 o no. Si no, generaría una alerta

check host http_server with address localhost
    if failed port 80 protocol http then alert

Entonces, si hay algún problema con el servidor http (apache o nginx), se generará una alerta
Del mismo modo, puede configurar monitores para otros puertos como ftp, smtp, imap, etc.

2. Supervisar el estado del sitio web

Solo monitorear el puerto 80 no es suficiente para garantizar que el sitio web esté activo y funcionando. Necesitamos asegurarnos de que obtener una página proporcione un código de respuesta http de 200. Aquí está la configuración requerida

# check that website is working proper
check host binarytides with address www.binarytides.com
    if failed
        port 80
        protocol http
        request "/"
        status = 200
    then alert

Si cualquiera de "puerto 80" o "servidor http" o "estado 200 para / url" falla, se generará una alerta. Esta es una forma eficaz de comprobar que su sitio está activo y disponible para los usuarios.

3. Servidor web Apache - Monitoreo de procesos

Los procesos se monitorean usando archivos pid específicos. Por ejemplo, en Debian, el servidor web Apache tiene un pid ubicado en /var/run/apache2/apache2.pid que se puede verificar para asegurarse de que Apache se esté ejecutando o no.

# Monitor Apache and restart if not running, also alert
check process apache with pidfile /var/run/apache2/apache2.pid
    start program = "/etc/init.d/apache2 start"
    stop program  = "/etc/init.d/apache2 stop"

Lo anterior le dice a monit que monitoree el proceso desde el archivo pid especificado. Aquí, si monit no encuentra el proceso en ejecución, intentará iniciarlo usando el comando especificado en el parámetro "iniciar programa". De forma predeterminada, monit también generará una alerta (correo electrónico) al reiniciar.

Solo monitor

Si no desea que monit reinicie apache y solo informe sobre el evento, use un tipo diferente de configuración

# Alert if apache not running
check process apache with pidfile /run/apache2/apache2.pid
    if does not exist then alert

4. Compruebe Mysql en el puerto 3306 - Supervisión de puertos

En este ejemplo, monitoreamos la base de datos mysql sin usar el pid sino directamente conectándonos al puerto de servicio que es 3306.

Para verificar solo el número de puerto con el protocolo, use la siguiente configuración -

# check just port 3306
check host localmysql with address localhost
    if failed port 3306 protocol mysql then alert

La siguiente configuración verificará el proceso mysql y se reiniciará si no se está ejecutando. También comprobaría el servicio del puerto 3306.

check process mysql_server with pidfile /var/run/mysqld/mysqld.pid
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed host 127.0.0.1 port 3306 protocol mysql then alert

5. Supervise el servidor de correo y los puertos de Postfix

Ahora configuremos una configuración para monitorear el servidor de correo postfix. La configuración es idéntica a las anteriores, solo que con un archivo pid y un número de puerto diferentes

check host localpostfix with address localhost
    if failed port 25 protocol smtp then alert

Para monitorear el proceso y reiniciar en caso de falla, use esto -

check process postfix with pidfile /var/spool/postfix/pid/master.pid
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart
And do not forget that while postfix is down, monit might not be able to send any emails (unless there are other mail servers specified). But monit would send them once the mail server is up again.

6. Alerta repetidamente

Por defecto, Monit genera una alerta solo dos veces. Una vez cuando falla una prueba y otra cuando tiene éxito.

Si desea recibir alertas repetidas para la misma prueba fallida (si es demasiado importante, por ejemplo), utilice la siguiente configuración.

set alert [email protected] with reminder on 15 cycles

La configuración anterior es una configuración global, que envía todas las alertas después de cada 15 controles/ciclos.

Para repetir alertas solo para pruebas específicas, especifique la directiva de alerta dentro de los criterios de prueba particulares como este

check filesystem datafs with path /dev/sda1
  alert [email protected] with reminder on 1 cycles
  if space usage > 80% for 5 times within 5 cycles then alert

Si desea recibir recordatorios menos veces pero repetidamente, use algo como "recordatorio en 10 ciclos".

Verificar el estado de Monit

Esto requiere que se esté ejecutando el demonio monit http.

$ sudo monit status
The Monit daemon 5.8.1 uptime: 0m
Process 'apache'
  status                            Running
  monitoring status                 Monitored
  pid                               1335
  parent pid                        1
  uid                               0
  effective uid                     0
  gid                               0
  uptime                            1h 52m
  children                          7
  memory kilobytes                  29556
  memory kilobytes total            241604
  memory percent                    0.3%
  memory percent total              2.9%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  data collected                    Fri, 05 Dec 2014 11:11:18
System 'enlightened'
  status                            Running
  monitoring status                 Monitored
  load average                      [0.05] [0.26] [0.35]
  cpu                               3.7%us 0.8%sy 0.0%wa
  memory usage                      3613152 kB [44.2%]
  swap usage                        0 kB [0.0%]
  data collected                    Fri, 05 Dec 2014 11:11:18

O consulte la interfaz web en http://localhost:2812/ para comprobar el estado de todo

Conclusión

Los ejemplos anteriores muestran solo ejemplos muy simples de configuración de tareas de monitoreo con Monit.

Monit es capaz de hacer cosas mucho más complejas como hacer ping a los hosts de la red, ejecutar scripts externos y probar la salida para un valor determinado.

Consulte la documentación completa en -
https://mmonit.com/monit/documentation/monit.html

Los ejemplos de configuración de la página wiki de Monit tienen muchos ejemplos sobre cómo configurar monitores para varios servicios -

http://mmonit.com/wiki/Monit/ConfigurationExamples

Si tiene algún comentario o pregunta, háganoslo saber en los comentarios a continuación.


Debian
  1. Cómo instalar Netflix en Kodi en Ubuntu y Debian

  2. Cómo instalar y configurar Webmin en Debian/Ubuntu

  3. Cómo instalar Python 3.7 en Ubuntu, Debian y LinuxMint

  4. Cómo instalar Suricata en Debian 11

  5. Cómo instalar y configurar Monit en Linux para el monitoreo de procesos

Cómo instalar Cacti Monitoring en Debian 9

Cómo instalar Cacti Monitoring en Debian 10

Cómo instalar Mongoku en Ubuntu 20.04 / Debian 11

¿Cómo instalar ODBC en Ubuntu 20.04 / Debian 11?

Cómo instalar Jitsi Meet en Debian y Ubuntu

Cómo instalar Grafana en Ubuntu 18.04 y Debian 8