Nagios 코어에서 Nagios 종료 상태를 읽을 수 없습니다.

Nagios 코어에서 Nagios 종료 상태를 읽을 수 없습니다.

내 로그 파일 중 하나의 오류 수가 특정 제한을 초과하는 경우 특정 종료 상태를 발생시키는 명령을 사용하고 있습니다. 명령은 다음과 같습니다.

cd /home/serveradmin/logs/ | ls -trc | grep gateway | tail -1 | xargs cat | grep error | wc -l | awk '{if($1 >= "35000"){print "Critical: ",$1;exit 2} else if ($1 >= "25000") {print "Warning: ",$1;exit 1} else {exit 0} }'

명령을 실행한 후 다음 명령을 사용하여 종료 상태를 확인했습니다(내 파일의 오류 개수가 25000보다 컸기 때문에 내 명령이 종료 코드 1을 반환했습니다).

echo $?

위 명령은 출력으로 1을 반환합니다.

내 nrpe.cfg 파일에서 다음과 같은 동일한 명령을 정의했습니다.

command[Error_Count]=cd /home/serveradmin/logs/ | ls -trc | grep gateway | tail -1 | xargs cat | grep error | wc -l | awk '{if($1 >= "35000"){exit 2} else if ($1 >= "25000") {exit 1} else {exit 0} }'

Nagios Core에서 서비스를 다음과 같이 정의했습니다.

define service {
        host_name               test_vm
        service_description     Error_Count
        check_command           check_nrpe!Error_Count
        use generic-service
        check_interval          1
}

서비스를 정의한 후 nagios 코어는 클라이언트의 nrpe.cfg 파일에 정의된 명령에서 종료 상태를 읽을 수 없습니다.

내 Nagios 대시보드의 오류가 알 수 없는 상태를 반환합니다.여기에 이미지 설명을 입력하세요.

답변1

~처럼NRPE » 문제 해결 » FAQ - 출력을 읽을 수 없습니다설명하다:

이 오류는 NRPE가 문자 출력을 반환하지 않았음을 의미합니다.

명령은 다양한 상태 코드(2, 1 또는 0)로 종료되지만 실제 출력은 내보내지 않습니다.

~에서https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/pluginapi.html, "플러그인 출력 사양"은 다음과 같이 말합니다.

플러그인은 최소한 하나 이상의 텍스트 출력을 반환해야 합니다.

원하는 "텍스트 출력"을 나타내는 빨간색 강조 표시를 확인하세요.

awk다양한 조건에서 일종의 출력을 내보내도록 코드를 조정합니다 .

awk '{
  if($1 >= "35000")
    { print "Greater than or equal to 35000"; exit 2} 
  else if ($1 >= "25000") 
    { print "Greater than or equal to 25000"; exit 1} 
  else 
    { print "Less than 25000"; exit 0} 
  }'

관련 정보