여러 웹 사이트의 공유 서버를 운영하면서 Nagios를 사용하는 호스트뿐만 아니라 실제 URL을 모니터링하려고하는데 기본 HTTP 서비스를 모니터링하는 것만으로는 충분하지 않습니다 (나는이 질문의 맨 아래에 내가 계획하고있는 것에 대한 작은 설명을 포함시키고있다.)Nagios가있는 URL 모니터링
(사이드 노트 : Nagios가 CentOS 시스템의 chroot 안에 설치되어 실행되고 있음을주의하십시오. 소스에서 nagios를 빌드하고 yum을 사용하여이 루트에 필요한 모든 종속성 등을 설치했습니다.)
은 내가 먼저 check_url를 찾았지만,로를 설치 한 후에는/usr/lib 디렉토리/Nagios는/libexec 디렉토리, 나는 오류 "255의 리턴 코드가 범위 외에있는 '지고 있었다. 그 때 나는이 질문을 쓰기 시작했다. (잠깐! 내가 먼저 시도하기로 결정한 또 다른 플러그인이있다.)
This Question을 검토 한 결과, check_url과 거의 동일한 문제가 있었지만, 나는 이 질문에 대한 새로운 질문이 있기 때문에 a) 나는이 체크와 함께 NRPE를 사용하지 않습니다. b) 이전에 링크 된 질문에 대한 제안을 시도했지만 어느 것도 작동하지 않았습니다. 예를 들어 ... 그때 debug_check_url라는 임시 파일을 생성하고 다음 사항을 넣어 Nagios Support의 디버깅 지침을 따랐
(했다 성공적으로 수표를 나타냅니다)
./check_url some-domain.com | echo $0
반환 "0" (다음 내 명령 정의에 의해 호출되는) :
#!/bin/sh
echo `date` >> /tmp/debug_check_url_plugin
echo $* /tmp/debug_check_url_plugin
/usr/local/nagios/libexec/check_url $*
내가 "디버깅 모드"아니에요 가정하면, (command.cfg 내부)는 다음과 같이 check_url를 실행하는 내 명령 정의는 다음과 같습니다
'check_url' command definition
define command{
command_name check_url
command_line $USER1$/check_url $url$
}
이 질문을 게시하기 전에
(덧붙여, 당신은이 질문의 맨 아래에 내 서비스 설정 파일에 사용 된 것을 볼 수 있습니다) 그러나, 나는 1 더 기회를 주기로 결정 해결책을 찾아내는 데. check_url_status 플러그인을 발견하고 그 중 하나를 제공하기로 결정했습니다. 이를 위해, 여기에 내가 무슨 짓을했는지 :
- 에서 mkdir은/usr/lib 디렉토리/Nagios는/libexec 디렉토리/check_url_status /를 check_url_status 플러그인에 check_url_status 및 utils.pm 모두
- 사용자 의견/리뷰 당 다운로드
- 페이지에서 "lib"를/usr/lib/nagios/libexec /의 적절한 디렉토리로 변경했습니다.
다음을 실행하십시오.
./check_user_status -U some-domain.com.난 포기하고 몇 가지 질문이,이 시점에서 그래서
bash-4.1# ./check_url_status -U mydomain.com Can't locate utils.pm in @INC (@INC contains: /usr/lib/nagios/libexec/ /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5) at ./check_url_status line 34. BEGIN failed--compilation aborted at ./check_url_status line 34.
:
- 을 나는 위의 명령을 실행하면 , 나는 다음과 같은 오류가 계속 두 가지 플러그인 중 어떤 것을 추천 하시겠습니까? check_url 또는 check_url_status? (check_url_status에 대한 설명을 읽은 후,이 것이 더 나은 선택 일 수 있다고 생각합니다.)
- 추천 한 플러그인으로 내 문제를 어떻게 해결할 수 있습니까? 이 질문의 시작 부분에서
다음은 check_url을 사용하여 작성한 서비스 정의 파일의 스 니펫입니다 (그 당시에는 모든 것이 작동한다고 생각했기 때문에). 모니터링 할 각 URL에 대한 서비스를 작성하겠습니다.
###
# Monitoring Individual URLs...
#
###
define service{
host_name {my-shared-web-server}
service_description URL: somedomain.com
check_command check_url!somedomain.com
max_check_attempts 5
check_interval 3
retry_interval 1
check_period 24x7
notification_interval 30
notification_period workhours
}