![원격 스크립트 실행이 완료될 때까지 check_nrpe를 기다리게 하려면 어떻게 해야 합니까?](https://rvso.com/image/567618/%EC%9B%90%EA%B2%A9%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%8B%A4%ED%96%89%EC%9D%B4%20%EC%99%84%EB%A3%8C%EB%90%A0%20%EB%95%8C%EA%B9%8C%EC%A7%80%20check_nrpe%EB%A5%BC%20%EA%B8%B0%EB%8B%A4%EB%A6%AC%EA%B2%8C%20%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
NRPE용 플러그인으로 사용되는 Python 스크립트가 있습니다. 이 스크립트는 "ps ax | grep process"가 연결된 SSH one-liner를 수행하여 프로세스가 가상 머신에서 실행되고 있는지 확인합니다. 스크립트를 수동으로 실행하면 예상대로 작동하고 NRPE에 대한 단일 출력 줄과 프로세스 실행 여부에 따른 상태를 반환합니다.
Nagios 서버에서 이 스크립트를 실행하기 위해 setup 명령을 실행하려고 하면곧"NRPE: 출력을 읽을 수 없습니다"라는 출력을 얻습니다. 그러나 스크립트를 수동으로 실행하면 출력이 반환되기까지 약 1초 정도 걸립니다. 다른 명령은 잘 실행되므로 NRPE는 즉시 실패하지 않고 출력을 위해 1~2초 정도 기다려야 하는 것처럼 보이지만 이를 수행할 방법을 찾을 수 없습니다. 어떤 팁이 있나요?
추신: 가상 머신은 호스트 머신 이외의 다른 곳에서는 액세스할 수 없으므로 프로세스를 확인하기 위해 호스트에서 VM으로 SSH를 통해 연결하는 nrpe 플러그인이 필요합니다.
답변1
답변2
왜 사용하지 않습니까?check_proc플러그인?
가상 머신에서 다음 위치에 서비스에 대한 명령을 정의합니다 /etc/nagios/nrpe.cfg
.
command[check_<service_name>]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C <service_name>
Nagios 서버에서:
define service{
use critical-service
host_name xx
service_description <service_name>
check_command check_nrpe!check_<service_name>
event_handler autostart_<service_name>!xx
process_perf_data 0
contact_groups admin
}
샘플 결과:
# su - nagios -s /bin/bash
-bash-3.2$ /usr/local/nagios/libexec/check_nrpe -H xx -c check_<service_name>
PROCS OK: 1 process with command name '<service_name>'
답변3
기본 시간 제한은 약 10초인 것 같은데, 아마도 그렇지 않을 것입니다.
검사를 실행하기 위해 ssh를 사용하는 경우 nrpe는 설치 옵션에 따라 "nagios" 사용자로 실행 중일 수 있다는 점을 기억하세요. 해당 사용자에게 올바른 키와 SSH 옵션이 있습니까?