Cómo crear su propio complemento Nagios usando el script de shell bash

Cómo crear su propio complemento Nagios usando el script de shell bash

Nagios es un sistema de monitoreo de código abierto popular que se puede utilizar para monitorear la disponibilidad y el rendimiento de varios recursos, como servidores, redes y servicios. Una forma de extender las capacidades de Nagios es crear complementos personalizados utilizando scripts bash. Aquí hay un esquema general de los pasos involucrados en la creación de un complemento Nagios utilizando un script bash:

Es importante tener en cuenta que un complemento Nagios debe diseñarse para ejecutarse de manera rápida y eficiente, ya que se ejecutará a intervalos regulares. Esto significa que el complemento debe evitar realizar tareas innecesarias o que consumen mucho tiempo, y debe devolver la salida lo más rápido posible.

Hay algunas mejores prácticas a tener en cuenta al crear un complemento Nagios:

  • Utilice la salida clara y concisa: La salida del complemento debe ser fácil de entender y proporcionar información clara sobre el estado del recurso que se está monitoreando. Evite usar un lenguaje complejo o lleno de jerga e intente mantener la salida lo más corta posible.
  • Devolver los códigos de estado apropiados: El complemento debe devolver el código de estado correcto en función del estado del recurso que se está monitoreando. Por ejemplo, si el recurso funciona correctamente, el complemento debe devolver un código de estado de 0 (éxito). Si hay un problema con el recurso, el complemento debe devolver un código de estado de 1 (advertencia) o 2 (crítico) dependiendo de la gravedad del problema.
  • Datos de rendimiento de retorno: Si es relevante, el complemento debe devolver los datos de rendimiento en forma de nombre = valor [uom]; [advertir]; [crit]; [min]; [máximo]. Esto le permite a Nagios rastrear el rendimiento del recurso con el tiempo y alertar al usuario si queda fuera de los umbrales aceptables.
  • Use check_nrpe cuando sea posible: Si el complemento se ejecutará en un servidor remoto, generalmente es más eficiente usar la utilidad check_nrpe para ejecutar el complemento en lugar de ejecutarlo directamente a través de SSH. Esto evita la sobrecarga de establecer una conexión SSH para cada ejecución del complemento.

Siguiendo estas mejores prácticas, puede crear complementos Nagios eficientes y efectivos que lo ayudarán a monitorear los recursos que son importantes para su organización.

Paso 1: Determine el propósito del complemento

El primer paso para crear un complemento Nagios es determinar para qué se utilizará el complemento. ¿Se utilizará para verificar el estado de un servicio, monitorear el rendimiento de un servidor o realizar alguna otra tarea?? Esto lo ayudará a diseñar el complemento y escribir el código necesario.

Paso 2: Escribe un script de shell

Una vez que sepa para qué se utilizará el complemento, puede comenzar a escribir el script bash. El script debe incluir la lógica necesaria para realizar la tarea que el complemento está diseñado para hacer. También debe incluir la salida en el formato esperado por Nagios, que consiste en un código de estado (E.gramo., 0 para el éxito, 1 para advertencia, 2 para crítica), un mensaje y datos de rendimiento opcionales.

sudo vim check_disk_uses.mierda  

Agregue el siguiente script.

#!/usr/bin/env Bash ### =========================================== ================================ ### ### Un complemento Nagios para verificar los usos de disco para un disco o montura determinado punto ### ### usa: ./check_disk_uses.sh / ### ### ./check_disk_uses.sh /mnt ### ### ./check_disk_uses.sh /dev /sda1 ### ### ========================================== ================================= ### ### ============= ==================================================== ========== ### ### Funciones ### ### ============================== ============================================= ### Calculate_disk_uses () # Calcular el disco usa usse_disk_space = "df -h $ Mount_point | Grep -V Files System | AWK" imprima $ 5 '| sed 's/%// g "if (($ used_disk_space> = 0 && $ used_disk_space = 81 && $ used_disk_space = 91 && $ used_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ### ### SCRIPT EXECUTION STARTS HERE ### ### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3 else MOUNT_POINT=$1 fi calculate_disk_uses ### ======================================================================= ### ### END OF SCRIPT ### ### ======================================================================= ###
12345678910111213141516171819202122232425262728293031323334353637383940414243444444444888#!/usr/bin/env Bash ### =========================================== =============================== ###### Un complemento Nagios para verificar los usos de disco para un disco o montura determinado punto ###### usa: ./check_disk_uses.sh / ###### ./check_disk_uses.sh /mnt ###### ./check_disk_uses.sh /dev /sda1 ###### ========================================== ================================= ### ### ============= ==================================================== ========= ###### Funciones ###### ============================== ============================================= ### Calculate_disk_uses () # Calcular el disco usa used_disk_space = 'df -h $ Mount_point | GREP -V FILESYSTEM | Awk 'imprimir $ 5' | sed 's/%// g' 'if (($ used_disk_space> = 0 && $ used_disk_space<=80)); then echo "OK - $USED_DISK_SPACE% of disk space used." exit 0 elif (($USED_DISK_SPACE>= 81 && $ used_disk_space<=90)); then echo "WARNING - $USED_DISK_SPACE% of disk space used." exit 1 elif (($USED_DISK_SPACE>= 91 && $ used_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ###### SCRIPT EXECUTION STARTS HERE ###### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3else MOUNT_POINT=$1fi calculate_disk_uses ### ======================================================================= ###### END OF SCRIPT ###### ======================================================================= ###

Guardar su script y verificarlo ejecutándolo manualmente

Paso 3: Prueba el script

Antes de usar el script como un complemento Nagios, es importante probarlo para asegurarse de que funcione correctamente y produce la salida esperada. Puede probar el script ejecutándolo desde la línea de comando y verificando que produce la salida correcta.

bash check_disk_uses.sh /  

Esto debería funcionar correctamente, antes de configurarlo con el servidor Nagios.

Paso 4: Instale el complemento

NRPE es la ejecución de complementos remotos de Nagios que se ejecuta en máquinas cliente, acepta solicitudes del servidor NAGIOS, procesa que solicitan y envía el resultado al servidor NAGIOS.

  1. Si no tiene NRPE instalado en su sistema. Use los siguientes comandos para instalar el cliente NRPE en sus sistemas basados ​​en Debian.
    Actualización de sudo apto  sudo apto install nagios-nrpe-server  

    Los comandos anteriores son para sistemas basados ​​en Debian. Para instalar NRPE en el sistema basado en Redhat, visite este tutorial.

  2. Una vez que el script se prueba y funciona correctamente, puede instalarlo como un complemento Nagios copiándolo al "/Usr/local/nagios/libexec" Directorio en el servidor Nagios.
    sudo mv check_disk_uses.sh/usr/lib/nagios/plugins/check_disk_uses.mierda  sudo chmod +x/usr/lib/nagios/plugins/check_disk_uses.mierda  
  3. Luego, edite el archivo de configuración de NRPE "/Etc/nagios/nrpe.CFG " y agregue su comando para monitorear algunos discos de su sistema. comando [check_disk_uses] =/usr/lib/nagios/plugins/check_disk_uses.sh /dev /sda1
    1comando [check_disk_uses] =/usr/lib/nagios/plugins/check_disk_uses.sh /dev /sda1

Puedes llamar al 'check_disk_uses' comando desde el servidor Nagios utilizando el 'check_nrpe' comandar y recuperar los resultados.

Paso 5: Prueba con check_nrpe Dominio

Ahora, ejecute el siguiente comando desde su servidor Nagios, donde 192.168.10.100 es la IP del sistema de clientes NRPE.

./check_nrpe -h 192.168.10.100 -C check_disk_uses  OK - 22% del espacio en disco utilizado. 

Paso 6: Configure Nagios para usar este complemento

Después de instalar el complemento, deberá configurar Nagios para usarlo. Esto implica crear una definición de comando en el archivo de configuración de Nagios (E.gramo., /usr/local/nagios/etc/objetos/comandos.CFG) y crear una definición de servicio para especificar cómo y cuándo se debe ejecutar el complemento.

  1. Primero edite el "/Etc/nagios/objetos/comandos.CFG " Archivo de configuración y defina el siguiente comando: define el comando command_name check_disk_uses command_line $ user1 $/check_nrpe -h $ hostaddress $ -c check_disk_uses
    1234Definir comando command_name check_disk_uses command_line $ user1 $/check_nrpe -h $ hostaddress $ -c check_disk_uses

  2. Luego cree un nuevo servicio para administrar ese servicio: Definir el servicio Use el servicio genérico Host_Name 192.168.10.100 Service_Description Service Check_Command check_disk_uses
    123456Definir el servicio Use el servicio genérico host_name 192.168.10.100 Service_Description Service Check_Command check_disk_uses

  3. Para verificar los archivos de configuración, ejecute el 'Nagios -V' comando como:
    /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.CFG  

    Si se muestra algún error, corrige eso antes de reiniciar el servicio Nagios.

  4. Finalmente reinicie el servicio Nagios para aplicar cambios.
    servicio Nagios reiniciar  

Conclusión

Este es un esquema general con un ejemplo del mundo real del proceso involucrado en la creación de un complemento Nagios utilizando un script bash. Puede haber pasos o consideraciones adicionales dependiendo de los requisitos específicos de su complemento.