답변:
-u를 그대로 두십시오. -u는 검색 할 경로 (페이지)를 제공하고 기본값은 "/"이며 전체 URL을 사용하지 않습니다. 내가 그것을 떠날 때의 결과는 다음과 같습니다.
$ ./check_http -H www.google.com -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.041 second response time |time=0.040579s;;;0.000000 size=5257B;;;0
$ ./check_http -H www.google.com -s "Privacyblahdibla"
HTTP CRITICAL - string not found|time=0.048169s;;;0.000000 size=5257B;;;0
특정 페이지를 얻으려면 다음과 같이 -u를 사용하십시오.
$ ./check_http -H www.google.com -u "/ig" -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.166 second response time |time=0.165896s;;;0.000000 size=87843B;;;0
또 다른 옵션은 monitoringexchange.org에서 check_curl을 사용하는 것입니다. 실제로 이것은 당신이하려고하는 일에 너무 복잡하지 않지만 웹 사이트의 데이터를 구문 분석하고 입력을 삽입하는 데 필요할 때 기능을 확장한다는 것을 알았습니다.
아래의 맞춤 변수가 아닌 check_curl의 내용은 다음과 같습니다.
#!/bin/bash
PROG=/usr/local/bin/curl
FILE=/tmp/check_curl
HALT=PRIVACY
$PROG -k -s http://www.google.com > $FILE
STATUS=`grep Error $FILE | awk '{ print $0 }'`
grep -w $HALT $FILE > /dev/null
if [ $? -eq 0 ]
then
WORKING=`grep Privacy $FILE | awk '{ print $5 }'`
echo "Works, Returns data of $WORKING"
rm $FILE
else echo "Doesn't return $WORKING"| $STATUS"
exit 2
fi
특정 문자열을 검색하기 위해 LWP 및 HTML :: Tree를 사용하여 사용자 정의 perl 스크립트를 작성했습니다. 또한 내용이 변경되지 않는 일부 페이지를 md5sum으로 요약합니다.
check_http 플러그인에 이와 같은 문제가 발생하면 일반적으로 텍스트를 찾고있는 URL을 얻은 다음 출력을 검사합니다.
당신은 이러한 웹 사이트에 로깅 또는 하나 이상의 문자열을 확인으로, check_http보다 좀 더 않는 무언가를 원하는 살펴있는 경우 WebInject를 - 그것은 좋은 플러그인입니다.
원하는 효과를 내 려면 -e
옵션에 대한 -s
옵션 을 지정해야합니다 .
$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string"
OK - HTTP/1.1 302 Found - 0.476 second response time |time=0.475776s;;;0.000000 size=17701B;;;0
$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string" -e 302
CRITICAL - string not found|time=1.633004s;;;0.000000 size=17701B;;;0
$ ./check_http -H "www.eurocarparts.com" -u / -s "0870" -e 302
HTTP OK HTTP/1.1 302 Found - 4.032 second response time |time=4.032120s;;;0.000000 size=17701B;;;0
여기 내가 사용하는 몇 가지 검사가 있습니다.
첫 번째는 텍스트 CCServerService
를 찾아서 보이지 않으면 오류를보고합니다.
define command {
command_name check_cc_v5
command_line /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -p 8080 -u /CCServer/CCServer --regex=CCServerService -w 3 -c 5 -t 10
}
두 번째는 텍스트를 확인 error
하고 오류가 있으면이를보고합니다.
define command {
command_name check_wb_pps
command_line /usr/local/nagios/libexec/check_http -S -H $HOSTADDRESS$ -u /onlinestore/booking.php --regex=error --invert-regex -w 30 -c 60 -t 90
}