Http
使用 404 頁面監控 http 狀態
我正在嘗試使用 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