Cómo crear su propio complemento Nagios usando el script de shell bash
- 3154
- 192
- Jaime Delgadillo
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.
- 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.
- 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
- 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
1 comando [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.
- 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
1234 Definir comando command_name check_disk_uses command_line $ user1 $/check_nrpe -h $ hostaddress $ -c check_disk_uses - 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
123456 Definir el servicio Use el servicio genérico host_name 192.168.10.100 Service_Description Service Check_Command check_disk_uses - 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.
- 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.
- « Ubuntu 18.04 LTS (Bionic Beaver) lanzado
- Eliminar todos los correos electrónicos de los usuarios raíz de un shell en Linux »