nagios에 여러 종료 상태 반환

nagios에 여러 종료 상태 반환

nagios 플러그인용 쉘 스크립트를 작성하려고 합니다. Nagios에서 중요한 경고를 트리거해야 하는 실패한 노드 목록이 있습니다.

입력하다:

#cat file
 OFFLINE
 OFFLINE
 OFFLINE
 OFFLINE

내가 원하는 것은 모든 오프라인 노드(예: 2)의 종료 상태를 보내는 것입니다. 그리고 이것은 지금까지 내 코드입니다.

암호

while read -r output;
do
  STATE=$(echo $output)

  if [ $STATE == "OFFLINE" ]; then
        echo "CRITICAL: STATE is $STATE" 
        exit 2
  else
        echo  "OK " > /dev/null
  fi
done< <( cat file )

그러나 문제는 루프가 한 번 실행되고 2로 종료되며 경고는 한 노드에 대한 것이고 나머지 노드에 대해서는 경고를 보내야 한다는 것입니다. 이것을 스크립트로 작성할 수 있는 방법이 있나요?

답변1

Nagios와 그 작업에 익숙하지 않지만 한 번에 하나의 종료 코드만 필요한 경우 스크립트를 약간 수정하고 여러 번 실행해야 합니다.

output=$(head -1 file)  # read first line
sed -i -e '1,1d' file   # delete the first line

  STATE=$(echo $output)

  if [ $STATE == "OFFLINE" ]; then
        echo "CRITICAL: STATE is $STATE" 
        exit 2
  else
        echo  "OK " > /dev/null
  fi

이 세그먼트를 여러 번 실행할 수 있으면 여러 종료 코드를 받게 됩니다.

관련 정보