Überwachen Sie den http-Status des Monitors mit einer 404-Seite


12

Ich versuche, den HTTP-Status mit einer 404- oder 403-Seite zu überwachen. Wie Sie alle wissen, nimmt Monit diese Seiten als fehlgeschlagene Verbindung, aber wie könnte ich das ändern? Ich möchte nur überwachen, dass die Seite 404 oder 403 angezeigt wird.

Ich muss es mit dieser Konfiguration überprüfen, wenn es möglich ist.

Dies ist meine Prüfkonfiguration:

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;'"

Antworten:


13

Seit Version 5.8 hat Monit die statusOption :

Mit der Option STATUS kann der vom HTTP-Server zurückgegebene HTTP-Statuscode explizit getestet werden. Wenn es nicht verwendet wird, schlägt der http-Protokolltest fehl, wenn der zurückgegebene Statuscode größer oder gleich 400 ist. Sie können dieses Verhalten mithilfe des Statusqualifizierers überschreiben.

Zum Beispiel, um zu testen, ob eine Seite nicht vorhanden ist (in diesem Fall sollte 404 zurückgegeben werden):

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

6

Das statushat bei mir nicht funktioniert (Monit 5.6). Ich denke, es wird von 5.8 unterstützt?

Am Ende hatte ich ein Skript, das Curl verwendet:

#!/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

Dann habe ich die folgende Monit-Konfiguration hinzugefügt

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.