Nagios check_procs не сообщает о процессах, не созданных пользователем root

Nagios check_procs не сообщает о процессах, не созданных пользователем root

Я пытаюсь настроить Nagios для мониторинга службы nginx на моем балансировщике нагрузки, но не смог заставить его показывать, что служба запущена. Команда и определение службы приведены ниже. Похоже, что любой процесс, который не был порожден пользователем root, не будет отображаться как работающий. Процесс nginx запускается пользователем www-data. Я даже попробовал сделать что-то настолько простое, как проверка «верхнего» процесса, который я запускал под другим пользователем. То, что я представил ниже, отлично работает, пока я выбираю процесс, запущенный пользователем root. Если процесс запускается любым другим пользователем, он отображается как критический и не работает. Есть какие-нибудь мысли?

    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
}

решение1

Перепробовав все возможные варианты, включенные в плагин check_proc, и не добившись ничего, я решил пойти другим путем. Я создал следующий скрипт python и включил его в каталог плагинов. Имя скрипта python — check_service.py. Если вы назовете его как-то иначе, вам придется изменить службы и команды ниже соответствующим образом.

   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)

Затем я добавил следующую команду в файл commands.cfg. $ARG1$ там для будущей версии скрипта, над которым я работаю. Это не обязательно.

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

Определил услугу следующим образом

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

Затем на клиенте я добавил эту команду в файл nrpe.cfg

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

Надеюсь, это поможет кому-нибудь в будущем.

Связанный контент