Monit는 404 페이지로 http 상태를 모니터합니다


12

404 또는 403 페이지로 HTTP 상태를 모니터링하려고합니다. 모두 아시다시피 Monit은 해당 페이지를 연결 실패로 간주하지만 어떻게 변경할 수 있습니까? 404 또는 403 페이지가 표시되는지 모니터링하고 싶습니다.

가능한 경우이 구성으로 확인해야합니다.

이것은 내 확인 구성입니다.

check process httpd with pidfile /var/run/httpd.pid
  start program = "/etc/init.d/httpd start"
  stop program = "/etc/init.d/httpd stop"
    if failed host hostname port 80
    protocol HTTP request "/"
    then exec "/bin/bash -c '/bin/echo -e "hostname\thttpd\t3\tFAILED" | /usr/sbin/send_nsca -H nagiosserver -c /etc/send_nsca.cfg; /usr/bin/monit restart nginx;'"

답변:


13

버전 5.8부터 Monit에는 다음과 같은 status옵션있습니다 .

STATUS 옵션을 사용하여 HTTP 서버가 리턴 한 HTTP 상태 코드를 명시 적으로 테스트 할 수 있습니다. 사용하지 않으면, 리턴 된 상태 코드가 400 이상이면 http 프로토콜 테스트가 실패합니다. 상태 규정자를 사용하여이 동작을 대체 할 수 있습니다.

예를 들어 페이지가 존재하지 않는지 테스트하려면 (이 경우 404를 반환해야 함) :

if failed
   port 80
   protocol http
   request "/non/existent.php"
   status = 404
then alert

6

status나를 위해 일 (MONIT 5.6)하지 않았다. 5.8에서 지원되는 것 같습니다.

curl을 사용하는 스크립트로 끝났습니다.

#!/bin/bash
# source: /etc/monit/bin/http-check.sh

url="http://user:password@domain.com/test_link/index.php"

response=$(curl -sL -w "%{http_code}\\n" $url | grep 404)

if [ "$response" = "404" ]
then
  exit 0
else
  exit 1
fi

그런 다음 다음 monit 구성을 추가했습니다.

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.