Nagios check_procs no informa procesos no generados por root

Nagios check_procs no informa procesos no generados por root

Estoy intentando configurar Nagios para monitorear el servicio nginx en mi balanceador de carga, pero no logré que muestre que el servicio está activo. La definición de comando y servicio se encuentra a continuación. Parece que cualquier proceso que no sea generado por root no se mostrará como en ejecución. El proceso nginx lo ejecuta www-data. Incluso intenté algo tan simple como verificar el proceso "superior" que estaba ejecutando con un usuario diferente. Lo que he presentado a continuación funciona bien siempre que elija un proceso ejecutado por root. Si el proceso lo genera cualquier otro usuario, se muestra como crítico y no funciona. ¿Alguna idea?

    define command {
        command_name    check_nginx
        command_line    $USER1$/check_procs -c 1: -C nginx
}


define service {
   use                  local-service
   host_name            my_host
   service_description  Load Balance Service
   check_command        check_nginx
}

Respuesta1

Después de probar todas las diferentes opciones incluidas con el complemento check_proc y no llegar a ninguna parte, decidí tomar una ruta diferente. Creé el siguiente script en Python y lo incluí en el directorio de complementos. El nombre del script de Python es check_service.py. Si le asigna otro nombre, tendrá que modificar los servicios y comandos siguientes en consecuencia.

   import os

status = os.system('systemctl is-active --quiet nginx')
if status == 768:
  print('Critical, Service is not running')
  exit(2)
elif status == 0:
 print('OK, Service is Running')
 exit(0)

Luego agregué el siguiente comando al archivo commands.cfg. El $ARG1$ está ahí para una versión futura del script en el que estoy trabajando. No es requerido.

define command{
    command_name    check_service
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service $ARG1$
    }

Definido el servicio así.

define service {
    use                             local-service
    host_name                       debian
    service_description             Load Balance Service
    check_command                   check_service
    }

Luego en el cliente agregué este comando al archivo nrpe.cfg

command[check_service]=python3 /usr/lib/nagios/plugins/check_service.py

Espero que esto ayude a alguien en algún momento.

información relacionada