Cómo configurar NRPE para el monitoreo del lado del cliente

Cómo configurar NRPE para el monitoreo del lado del cliente

NRPE, o ejecutor de complementos remotos de Nagios, es el servicio del lado del cliente de una configuración de monitoreo. El servidor de monitoreo enviará comandos al cliente, que escucha pasivamente cuando no tiene trabajo que hacer. Sobre el comando entrante, el NRPE Comprueba su configuración local y ejecuta el complemento configurado con el comando, luego envía los resultados al servidor para procesar. Puede leer más sobre la instalación del lado del servidor en la guía de instalación de Nagios, mientras que esta guía se centrará en el lado del cliente.

En este tutorial aprenderás:

  • Cómo instalar NRPE en distribuciones basadas en Debian/Red Hat
  • Cómo configurar NRPE para aceptar comandos del servidor
  • Cómo configurar una verificación personalizada en el lado del servidor y el cliente
NRPE - Ejecutor de complementos remotos de Nagios

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Ubuntu 18.04, Fedora 30
Software Nagios 4.3.4, NRPE 3.2.1
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instalación de NRPE en distribuciones basadas en hat de Debian/Red

Instalar el software requerido es simple. Cubriremos Ubuntu, OpenSuse, Fedora y Rhel.

Instalación de NRPE en Ubuntu

En Ubuntu, este proceso es un único. El paquete de nrpe demonio, llamado Nagios-nrpe-server, está en los repositorios predeterminados.

# apt-get install nagios-nrpe-server

En el caso de Ubuntu, el archivo de configuración principal es /etc/nagios/nrpe.CFG, El directorio que se incluye por defecto es /etc/nagios/nrpe.d/, que se puede usar para la configuración de entrega. El paquete también agrega un archivo de configuración local vacío /etc/nagios/nrpe_local.CFG por conveniencia. Este último no está incluido en rpm distribuciones basadas.



Instalación de NRPE en OpenSuse

En las versiones recientes de OpenSuse, el software NRPE también está empaquetado en los repositorios predeterminados. Entonces la instalación es un comando de Linux único.

# Zypper en NRPE

A diferencia de otras distribuciones, OpenSuse coloca el archivo de configuración principal en la ruta /etc/nrpe.CFG.

Instalación de NRPE en Fedora

El proyecto Fedora también empaquetan NRPE, y, por lo tanto, debe ser accesible desde los repositorios predeterminados. Simplemente usaremos DNF para instalacion.

# DNF Instalar NRPE

El archivo de configuración principal será /etc/nagios/nrpe.CFG, y el directorio incluido predeterminado es /etc/nrpe.d/.

Instalación de NRPE en Red Hat Enterprise Linux

En el caso de Rhel, el NRPE El paquete no está en los repositorios predeterminados. Deberá habilitar el repositorio EPEL para instalar paquetes desde allí.

Puede seguir los pasos descritos en la guía para habilitar el repositorio de EPEL, o importar y publicar los contenidos de los repositorios de EPEL, si tiene un entorno cerrado con distribución de software interno. De cualquier manera, después de que el repositorio está disponible para la máquina del cliente, el proceso de instalación es bastante el mismo que el anterior.

# yum instalación nrpe

Los archivos de configuración están en el mismo lugar que en el caso de Fedora.

ADVERTENCIA
Siempre realice pruebas cuidadosas antes de habilitar un nuevo repositorio para un entorno de producción. En este caso, EPEL puede contener paquetes que podrían verse como actualizaciones para los paquetes de Red Hat, lo que resulta en cambios inesperados en el software en el sistema al ejecutar una actualización completa.

Configuración de NRPE para aceptar comandos del servidor

Para configurar el servicio al cliente, podríamos usar el archivo de configuración principal, pero recomiendo usar un archivo personalizado y colocarlo en un directorio que se incluya en el archivo de configuración principal. De esta manera actualizaciones que provienen de una actualización de paquete en NRPE.CFG se puede aplicar sin cambios en nuestra configuración personalizada.

También podemos incluir nuestros propios archivos de configuración personalizados en nuestros paquetes personalizados, lo que permite actualizar la configuración de monitoreo del cliente de manera centralizada y automatizada. Teniendo eso en cuenta, configuraremos el cliente en /etc/nrpe.d/costumbre.CFG En todas las distribuciones en los siguientes ejemplos.

NRPE no acepta ningún comando de los demás hostil por defecto. Esto es por razones de seguridad. Para permitir la ejecución del comando desde un servidor, necesitamos establecer la dirección IP del servidor como una dirección permitida. En nuestro caso, el servidor es un servidor Nagios, con dirección IP 10.101.20.34. Agregamos lo siguiente a la configuración de nuestro cliente:

permitido_hosts = 10.101.20.34


Se pueden agregar múltiples direcciones o nombres de host, separados por comas. Tenga en cuenta que la lógica anterior requiere una dirección estática para el servidor de monitoreo. Usando DHCP En el servidor de monitoreo seguramente romperá su configuración, si usa la dirección IP aquí. Lo mismo se aplica al escenario en el que usa los nombres de host, y el cliente no puede resolver el nombre de host del servidor.

Configuración de una verificación personalizada en el lado del servidor y el cliente

Para demostrar las capacilitas de nuestra configuración de monitoreo, supongamos que nos gustaría saber si el sistema de postfix local entrega un correo en un cliente para el usuario raíz. El correo podría contener un cronjob salida, algún informe o algo que se escriba para el Stderr y se entrega como un correo por defecto. Por ejemplo, ABRT envía un informe de bloqueo a raíz Por defecto en un bloqueo de proceso. No configuramos un relé de correo, pero aún así nos gustaría saber si llega un correo. Escribamos un cheque personalizado para monitorear eso.

  1. Nuestra primera pieza del rompecabezas es el cheque en sí. Considere el siguiente script bash simple llamado check_unread_mail:
    #!/bin/bash user = root if ["$ (comando -v dedo >>/dev/null; echo $?) "-gt 0]; luego echo" desconocido: dedo de utilidad no encontrado "salida 3 fi if [" $ (id "$ user" >> /dev /null; echo $?) "-gt 0]; luego echo" desconocido: el usuario $ user no existe "salida 3 fi ## cheque por correo si [" $ (dedo -pm "$ user" | cola -n 1 | grep -ic "no correo.")" -gt 0]; Entonces echo "OK: No hay correo no leído para el usuario $ usuario" Salida 0 de lo contrario echo de echo "ADVERTENCIA: Correo no leído para el usuario $ Usuario" Salida 1 FI
    Copiar

    Este simple cheque usa el dedo Utilidad para verificar el correo no leído para el usuario raíz. Salida del dedo -pm puede variar según la versión y, por lo tanto, la distribución, por lo que pueden ser necesarios algunos ajustes.

    Por ejemplo, en Fedora 30, última línea de la salida de dedo -pm es "no hay correo.", Pero en OpenSuse Leap 15.1 sería "No hay correo."(Observe el correo de casos superiores). En este caso el Grep -i Maneja esta diferencia, pero se muestra bien que cuando se trabaja con diferentes distribuciones y versiones, es posible que se necesite un trabajo adicional.

  2. Necesitamos dedo Para que este cheque funcione. El nombre del paquete es el mismo en todas las distribuciones, por lo que podemos instalarlo con apto, zyper, DNF o beque.
  3. Necesitamos establecer el ejecutable de verificación:
    # chmod +x check_unread_mail
  4. Colocaremos el cheque en el /usr/lib64/nagios/complementos Directorio, el lugar común para las verificaciones de NRPE. Lo haremos referencia más tarde.
  5. Llamaremos a nuestro comando check_mail_root. Colocemos otra línea en nuestra configuración de cliente personalizado, donde le decimos NRPE Qué comandos aceptamos y qué hay que hacer cuando llega un comando determinado:
    comando [check_mail_root] =/usr/lib64/nagios/plugins/check_unread_mail
  6. Con esto, nuestro cliente, la configuración está completa. Podemos iniciar el servicio en el cliente con system. El nombre del servicio es Nagios-nrpe-server sobre derivados de Debian, y simplemente NRPE En otras distribuciones.
    # SystemCTL iniciar nagios-nrpe-server # systemctl status nagios-nrpe-server ● nagios-nrpe-server.Servicio-Ejecutor de complementos remotos Nagios Cargado: cargado (/lib/systemd/system/nagios-nrpe-server.servicio; activado; Vendor Preset: habilitado) Activo: Activo (en ejecución) desde martes 2019-09-10 13:03:10 CEST; 1Min 51s Docs: http: // www.Nagios.org /documentación PID principal: 3782 (NRPE) Tareas: 1 (Límite: 3549) Cgroup: /System.Slice/nagios-nrpe-server.servicio └─3782/usr/sbin/nrpe -c/etc/nagios/nrpe.CFG -F SZEPT 10 13:03:10 Test C-Client Systemd [1]: Comenzando el ejecutor de complementos remotos de Nagios. Szept 10 13:03:10 Correo-Test-Client NRPE [3782]: Inicio de Daemon Szept 10 13:03:10 Correo-Test-Client NRPE [3782]: Servidor Escuchar en 0.0.0.0 Puerto 5666. SZEPT 10 13:03:10 Correo-Test-Client NRPE [3782]: Servidor Escuchar en :: Puerto 5666. SZEPT 10 13:03:10 Correo-Test-Client NRPE [3782]: Escuchar las conexiones en el puerto 5666


  7. Ahora podemos configurar el lado del servidor. Si aún no tenemos uno, podemos definir un comando que llame a un control remoto NRPE instancia con un comando como su único argumento:
    # Este comando ejecuta un programa $ arg1 $ sin argumentos Define el comando command_name check_nrpe_1arg command_line $ user1 $/check_nrpe -h $ hostaddress $ -t 60 -c $ arg1 $ 2>/dev/null
    Copiar
  8. También definimos al cliente como anfitrión:
    Definir al host use Linux-Server Host_name Mail-Test-Client Alias-Test-Client Dirección Test-Client
    Copiar

    La dirección puede ser una dirección IP o nombre de host. En el caso posterior, debemos asegurar que el servidor de monitoreo pueda resolver.

  9. Podemos definir un servicio en el host anterior utilizando el comando Nagios Side y el comando del lado del cliente:
    Definir servicio Use el servicio genérico Host_name Mail-Test-Client Service_Description OS: Mail no leído para Root CHECK_COMMAND CHECK_NRPE_1ARG!check_mail_root
    Copiar

    Estos ajustes se pueden colocar en cualquier archivo de configuración que el servidor Nagios lea en el inicio, pero es una buena práctica mantener los archivos de configuración ordenados.

  10. Verificamos nuestra nueva configuración de Nagios:
    # nagios -v/etc/nagios/nagios.CFG

    Si "las cosas se ven bien", podemos aplicar la configuración con un servidor recargar:

    # SystemCTL Recargar Nagios

Conclusión

Si todo funciona, en unos minutos deberíamos ver a nuestro nuevo cliente aparecer en la página web de Nagios, con su nuevo servicio "OS: Mail Unre Root" y con el estado como un "OK" verde (es decir, si no hay ' t un correo no leído para raíz).

Los scripts anteriores informan solo advertencia si llega un nuevo correo a propósito: en el entorno de ejemplo no se considera un problema crítico, un bloqueo de la aplicación debería haber generado un error crítico antes de que llegue un correo al respecto. En segundo plano, el servidor Nagios pasa el comando "check_mail_root" al cliente, donde NRPE Ejecuta nuestro script personalizado, que proporciona la salida "OK: No hay correo no leído para la raíz del usuario", y el código de salida 0 (que es traducido por Nagios como estado "OK").

Esta configuración simple tiene como objetivo mostrar el flujo de comandos y datos en una configuración NAGIOS+NRPE, así como explicar los medios básicos para extender nuestras capacidades de monitoreo. Las verificaciones de los condados (llamados complementos) se escriben en varios idiomas para usos comunes, por ejemplo, análisis de archivos de registro, verificaciones de bases de datos, información de estado del servidor web, etc.

Muchos de ellos también se empaquetan en los repositorios mencionados anteriormente, y se pueden encontrar aún más en las páginas oficiales de Nagios. Si bien esos son un gran recurso cuando necesitamos monitorear algo nuevo, no dé por sentado que harán exactamente lo que necesita de la caja. También se necesita ajustar su configuración y pruebas cuidadosas en este caso, y si encuentra que una pequeña modificación puede agregar una excelente característica/interrupción de errores, no dude en contribuir con la comunidad de monitoreo. Esta es la forma en que se construye en primer lugar, después de todo.

Tutoriales de Linux relacionados:

  • Bucles anidados en guiones Bash
  • Optimización de rendimiento de Linux: herramientas y técnicas
  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Ubuntu 20.04 Monitoreo del sistema con widgets de Conky
  • Cómo enviar notificaciones de escritorio usando Notify-Send
  • Ubuntu 22.04 Monitoreo del sistema con widgets de Conky
  • La mejor herramienta de monitoreo de sistemas para Linux
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Linux: Configuración SSH