웹 사이트에서 Nagios 모니터링 텍스트


10

웹 사이트에서 텍스트를 모니터링하는 데 도움이되는지 궁금합니다. IE 텍스트 "개인 정보"에 대해 google.com을 모니터링하려면 다음 명령을 사용한다고 생각했습니다.

check_http -H google.com -u http://www.google.com -s "Privacy"

그러나 작동하지 않습니다. 내가 인용 한 내용에 관계없이 "확인"을 얻습니다. 분명히 잘못된 명령이나 잘못된 옵션을 사용하고 있습니다. 도와주세요.

답변:


7

-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

모니터하려는 실제 웹 사이트에 여전히 문제가 있습니다. ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin"-s "dsklajfdl"HTTP OK -HTTP / 1.1 302 Found-0.003 초 응답 시간 | time = 0.003486s ;;; 0.000000 size = 104B ;;; 0
IOTAMAN

또는 다른 예는 ./check_http -H mysite.myschool.edu -u "/index.html"-s "dsklajfdl"HTTP OK-HTTP / 1.1 302 Found-0.003 초 응답 시간 | time = 0.003466s ;;; 0.000000 size = 94B ;;; 0
IOTAMAN

예, 리디렉션 (301 또는 302)이 검사에서 검색 문자열을 무시하는 응답 인 경우에는 아마도 올바른 것 같습니다. 답은 리디렉션되는 정확한 URL을 찾는 것입니다. 브라우저의 페이지로 이동하여이를 수행 할 수 있어야합니다. 그래도 작동하지 않으면 텔넷을 통해 액세스하여 Locaction : 헤더 값이 무엇인지 확인하십시오.
palehorse

1

또 다른 옵션은 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


0

특정 문자열을 검색하기 위해 LWP 및 HTML :: Tree를 사용하여 사용자 정의 perl 스크립트를 작성했습니다. 또한 내용이 변경되지 않는 일부 페이지를 md5sum으로 요약합니다.


1
나는 check_http에 만족하지만이 방법을 해결책으로 제안하고 있다면 아마도 perl 스크립트를 제공 할 것입니까?
Pricey

0

check_http 플러그인에 이와 같은 문제가 발생하면 일반적으로 텍스트를 찾고있는 URL을 얻은 다음 출력을 검사합니다.

당신은 이러한 웹 사이트에 로깅 또는 하나 이상의 문자열을 확인으로, check_http보다 좀 더 않는 무언가를 원하는 살펴있는 경우 WebInject를 - 그것은 좋은 플러그인입니다.


0

원하는 효과를 내 려면 -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

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
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.