Nagios check_procs가 루트에 의해 생성되지 않은 프로세스를 보고하지 않습니다.

Nagios check_procs가 루트에 의해 생성되지 않은 프로세스를 보고하지 않습니다.

내 로드 밸런서에서 nginx 서비스를 모니터링하기 위해 Nagios를 설정하려고 하는데 서비스 실행을 표시하는 데 실패했습니다. 명령과 서비스 정의는 다음과 같습니다. 루트에 의해 생성되지 않은 프로세스는 실행 중인 것으로 표시되지 않는 것 같습니다. nginx 프로세스는 www-data에 의해 실행됩니다. 나는 다른 사용자로 실행 중인 "최상위" 프로세스를 확인하는 것과 같은 간단한 작업도 시도했습니다. 아래에 제시된 내용은 루트에서 실행되는 프로세스를 선택하는 한 잘 작동합니다. 프로세스가 다른 사용자에 의해 생성되면 중요한 것으로 표시되고 작동하지 않습니다. 이견있는 사람?

    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

이것이 길 어딘가에 누군가에게 도움이 되기를 바랍니다.

관련 정보