Nagios Überwachungstext auf einer Website

10

Ich habe mich gefragt, ob ich Hilfe bei der Überwachung von Text auf einer Website bekommen könnte. IE Wenn ich google.com auf den Text "Datenschutz" überwachen wollte, dachte ich, ich würde den folgenden Befehl verwenden:

check_http -H google.com -u http://www.google.com -s "Privacy"

Aber es funktioniert nicht. Ich bekomme "OK", egal was ich in Anführungszeichen setze. Ich benutze offensichtlich entweder den falschen Befehl oder die falsche Option. Bitte helfen Sie.

IOTAMAN
quelle

Antworten:

7

Versuchen Sie, das -u zu verlassen. -u gibt den Pfad (die Seite) zum Abrufen an, Standard ist "/", es wird nicht die gesamte URL verwendet. Hier ist meine Ausgabe, wenn ich sie weglasse.

$ ./check_http -H www.google.com -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.041 second response time |time=0.040579s;;;0.000000 size=5257B;;;0
$ ./check_http -H www.google.com -s "Privacyblahdibla"
HTTP CRITICAL - string not found|time=0.048169s;;;0.000000 size=5257B;;;0

Wenn Sie eine bestimmte Seite erhalten möchten, verwenden Sie das -u wie folgt

$ ./check_http -H www.google.com -u "/ig" -s "Privacy"
HTTP OK HTTP/1.0 200 OK - 0.166 second response time |time=0.165896s;;;0.000000 size=87843B;;;0
Palehorse
quelle
Ich habe immer noch ein Problem mit meiner aktuellen Website, die ich überwachen möchte. Dies ist das, was ich erhalte ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 gefunden - 0,003 Sekunden Antwortzeit | Zeit = 0,003486s ;;; 0,000000 Größe = 104B ;;; 0
IOTAMAN
Oder ein anderes Beispiel ist ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 Gefunden - 0,003 Sekunden Antwortzeit | Zeit = 0,003466s ;;; 0,000000 Größe = 94B ;;; 0
IOTAMAN
Ja, es scheint, dass bei einer Umleitung (301 oder 302) die Antwort die Suchzeichenfolge ignoriert, was wahrscheinlich korrekt ist. Die Antwort besteht darin, die genaue URL zu finden, zu der Sie umgeleitet werden. Sie sollten dies tun können, indem Sie in einem Browser zur Seite gehen. Wenn dies nicht funktioniert, versuchen Sie, über Telnet darauf zuzugreifen, um den Locaction: -Headerwert zu ermitteln.
Palehorse
1

Eine andere Möglichkeit ist die Verwendung von check_curl von monitoringexchange.org. In Wirklichkeit ist dies ein Stich, der für das, was Sie versuchen, zu kompliziert ist, aber ich habe festgestellt, dass er die Funktionalität erweitert, wenn Sie ihn zum Parsen von Daten von Websites und zum Einfügen von Eingaben benötigen

Inhalt meiner benutzerdefinierten nicht variablen check_curl unten:

 #!/bin/bash
 PROG=/usr/local/bin/curl
 FILE=/tmp/check_curl
 HALT=PRIVACY

 $PROG -k -s http://www.google.com > $FILE

 STATUS=`grep Error $FILE | awk '{ print $0 }'`

 grep -w $HALT $FILE > /dev/null
 if [ $? -eq 0 ]
    then
      WORKING=`grep Privacy $FILE | awk '{ print $5 }'`
      echo "Works, Returns data of $WORKING"
      rm $FILE
 else echo "Doesn't return $WORKING"| $STATUS"
      exit 2
  fi

Brot
quelle
0

Wir haben ein benutzerdefiniertes Perl-Skript mit LWP und HTML :: Tree geschrieben, um nach bestimmten Zeichenfolgen zu suchen. Wir haben auch nur einige Seiten zusammengestellt, auf denen sich der Inhalt nicht ändert.

David Pashley
quelle
1
Ich selbst bin mit check_http zufrieden, aber wenn Sie diese Methode als Lösung vorschlagen, stellen Sie vielleicht das Perl-Skript bereit?
Teuer
0

Wenn ich ein solches Problem mit dem check_http-Plugin bekomme, überprüfe ich normalerweise die URL, in der ich nach dem Text suche, und überprüfe dann die Ausgabe.

Wenn Sie etwas möchten, das etwas mehr kann als check_http, z. B. das Anmelden bei einer Website oder das Überprüfen von mehr als einer Zeichenfolge, schauen Sie sich WebInject an - es ist ein nettes Plugin.

gareth_bowles
quelle
0

Sie müssen die -eOption angeben, damit die Option -sden gewünschten Effekt erzielt:

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string"
OK - HTTP/1.1 302 Found - 0.476 second response time |time=0.475776s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "no such string" -e 302
CRITICAL - string not found|time=1.633004s;;;0.000000 size=17701B;;;0

$ ./check_http -H "www.eurocarparts.com" -u / -s "0870" -e 302
HTTP OK HTTP/1.1 302 Found - 4.032 second response time |time=4.032120s;;;0.000000 size=17701B;;;0
Adrian Frühwirth
quelle
0

Hier sind ein paar Schecks, die ich benutze.

Der erste sucht nach dem Text CCServerServiceund meldet einen Fehler, wenn er nicht angezeigt wird:

define command {
    command_name  check_cc_v5
    command_line  /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -p 8080 -u /CCServer/CCServer --regex=CCServerService -w 3 -c 5 -t 10
}

Der zweite prüft auf den Text errorund meldet einen Fehler, wenn er ihn sieht:

define command {
    command_name  check_wb_pps
    command_line  /usr/local/nagios/libexec/check_http -S -H $HOSTADDRESS$ -u /onlinestore/booking.php --regex=error --invert-regex -w 30 -c 60 -t 90
}
Keith Stokes
quelle