Http

使用 404 頁面監控 http 狀態

  • April 11, 2016

我正在嘗試使用 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;'"

從 5.8 版開始,Monit 可以status選擇

STATUS選項可用於顯式測試 HTTP 伺服器返回的 HTTP 狀態程式碼。如果不使用,如果返回的狀態碼大於或等於 400,http 協議測試將失敗。您可以使用狀態限定符覆蓋此行為。

例如測試一個頁面不存在(在這種情況下應該返回 404):

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

status我不起作用(監視器 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

然後我添加了以下監控配置

check program http-check with path "/etc/monit/bin/http-check.sh"
 if status != 0
 then alert

引用自:https://serverfault.com/questions/603811