Nagios 자체에는 최소한 오류 없이 구성을 로드하는지 확인하기 위해 구성 파일의 유효성을 검사하는 방법이 있습니다.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
NRPE 데몬으로 동일한 작업을 수행할 수 있습니까? NRPE의 매뉴얼 페이지에는 이를 지원하지 않는다고 나와 있습니다.
Ansible의 lineinfile 모듈을 사용하여 NRPE 구성을 업데이트할 계획이므로 최소한 모니터링이 완전히 중단되지 않도록 유효성을 확인하고 싶습니다.
답변1
나는 당신의 연구 결과에 동의합니다.온라인 NRPE PDF구성 파일을 확인하거나 확인하는 방법에 대한 언급은 없습니다. 또한,nrpe.c 코드 자체의 process_arguments() 함수숨겨진 옵션이 동일한 작업을 수행한다는 의미는 아닙니다.
다음 공지사항을 참고하여NRPE 홈 페이지:
참고: 이 프로젝트는 NRPE 4.0.1부터 더 이상 사용되지 않습니다. 보안 문제를 해결하는 것 외에는 더 이상 버그 수정이나 기능이 제공되지 않습니다.
…나도 그 옵션이 나타나는 것을 원하지 않습니다.
하나 포장해가는 걸 봤는데travis-test-1
스크립트목표는 NRPE가 작동하는지 확인하는 것 같습니다. 스크립트는 예제 명령을 사용하여 구성 파일을 생성하고, 명령에 대한 지원 스크립트를 설치하고, nagios 사용자를 추가하고, 데몬 모드에서 NRPE를 시작한 다음, localhost에 대해 check_nrpe를 실행하여 예제 명령을 실행합니다. 이로 인해 환경에 원하는 것보다 더 많은 변화가 생길 수 있습니다.
이 아이디어에서 영감을 받아 다양한 방법으로 이 문제를 해결할 수 있습니다. 높은 수준에서:
- 구성 파일을 변경한 후 NRPE가 여전히 실행 중인지 확인하십시오. 변경 사항으로 인해 데몬 실행이 중지되었다고 가정할 수 있으며, 그렇다면 구성 변경 사항을 되돌립니다. 데몬이 계속 실행된다면 문제가 없는 것입니다!
- NRPE를 중지한 다음 구성 파일을 변경하십시오.일시적으로NRPE를 시작하고 계속 실행되는지 확인하세요. 그렇다면 NRPE를 정상적으로 다시 시작하고, 그렇지 않으면 변경 사항을 되돌리고 NRPE를 다시 시작하세요.
옵션 #1의 경우 간단한 외부 포트 확인이나 알려진 좋은 check_nrpe 위치를 사용할 수 있습니다. 원격 호스트에서 check_nrpe를 호출하여 check_nrpe -H 127.0.0.1 -c known-good-command
NRPE 데몬이 여전히 실행 중인지 확인할 수도 있습니다. 사용자 환경에서 장기 실행 프로세스로 시작된 경우 nrpe 프로세스의 프로세스 테이블을 쿼리할 수도 있습니다.
옵션 #2의 경우 다음을 사용할 수 있습니다.GNU 시간 초과NRPE를 일시적으로 시작하는 유틸리티입니다. 예를 들어:
timeout 3s /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -f
if [ $? -eq 124 ]
echo all good
exit 0
else
echo not good, NRPE did not start successfully
exit 1
fi
위의 코드 조각은 포그라운드 모드에서 NRPE를 시작하려고 시도합니다(모든 것이 기본 위치에 있다고 가정). NRPE가 지정된 시간(여기서는 3초) 동안 계속 실행되면 timeout
이로 인해 NRPE가 코드 124로 종료되며 변경 사항이 성공적이라고 가정할 수 있습니다. 시간 초과 유틸리티가 124가 아닌 값으로 종료되면 NRPE를 시작하는 데 문제가 있을 수 있으며 구성 변경으로 인해 문제가 발생했다고 가정할 수 있습니다.