Nagios check_procs não relata processos não gerados pelo root

Nagios check_procs não relata processos não gerados pelo root

Estou tentando configurar o Nagios para monitorar o serviço nginx em meu balanceador de carga, mas não consegui fazer com que ele mostrasse que o serviço estava ativo. O comando e a definição de serviço estão abaixo. Parece que qualquer processo que não seja gerado pelo root não será exibido como em execução. O processo nginx está sendo executado por www-data. Eu até tentei algo tão simples como verificar o processo "principal" que estava executando com um usuário diferente. O que apresentei abaixo funciona bem, desde que eu escolha um processo sendo executado pelo root. Se o processo for gerado por qualquer outro usuário, ele será considerado crítico e não funcionará. Alguma ideia?

    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
}

Responder1

Depois de tentar todas as diferentes opções incluídas no plugin check_proc e não chegar a lugar nenhum, decidi seguir um caminho diferente. Criei o seguinte script python e o incluí no diretório de plugins. O nome do script python é check_service.py. Se você der outro nome, terá que modificar os serviços e comandos abaixo de acordo.

   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)

Em seguida, adicionei o seguinte comando ao arquivo Commands.cfg. O $ARG1$ existe para uma versão futura do script em que estou trabalhando. Não é obrigatório.

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

Definiu o serviço assim

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

Então, no cliente, adicionei este comando ao arquivo nrpe.cfg

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

Espero que isso ajude alguém em algum lugar no futuro.

informação relacionada