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

次に、次のモニター構成を追加しました

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.