Nagios Monitoring Text su un sito Web


10

Mi chiedevo se potevo ottenere aiuto con il monitoraggio del testo su un sito Web. IE Se volessi monitorare google.com per il testo "Privacy", pensavo che avrei usato il seguente comando:

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

Ma non sta funzionando. Ottengo "OK", indipendentemente da quello che ho messo tra virgolette. Ovviamente sto usando il comando sbagliato o l'opzione sbagliata. Per favore aiuto.

Risposte:


7

Prova a lasciare metti il ​​-u. -u fornisce il percorso (pagina) da recuperare, il valore predefinito è "/", non richiede l'intero URL. Ecco la mia uscita quando la lascio fuori.

$ ./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

Se vuoi ottenere una pagina specifica, usa -u in questo modo

$ ./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

Sto ancora riscontrando un problema con il mio sito Web effettivo che sto tentando di monitorare, questo è quello che ottengo ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 trovati - 0,003 secondi tempo di risposta | tempo = 0,003486s ;;; 0,000000 dimensione = 104B ;;; 0
IOTAMAN

O un altro esempio è ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 Trovato - 0,003 secondi tempo di risposta | tempo = 0,003466s ;;; 0,000000 dimensioni = 94B ;;; 0
IOTAMAN,

Sì, sembra che se un reindirizzamento (301 o 302) è la risposta, il controllo ignora la stringa di ricerca, che probabilmente è corretta. La risposta è trovare l'URL esatto al quale sei reindirizzato. Dovresti essere in grado di farlo andando alla pagina in un browser. Se non funziona, prova ad accedervi tramite telnet per vedere qual è il valore dell'intestazione Locaction :.
Palehorse,

1

Un'altra opzione è utilizzare check_curl da monitoringexchange.org. In realtà questo è un trucco troppo complicato per quello che stai cercando di fare, ma ho scoperto che estende la funzionalità quando ne hai bisogno per analizzare i dati dai siti Web e inserire input

Contenuto del mio check_curl personalizzato non variabile di seguito:

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


0

Abbiamo scritto uno script perl personalizzato usando LWP e HTML :: Tree per cercare stringhe particolari. Abbiamo anche aggiunto alcune pagine in cui il contenuto non cambia.


1
Io stesso sono contento di check_http ma se stai suggerendo questo metodo come soluzione, forse fornisci lo script perl?
Caro

0

Se riscontro un problema del genere con il plug-in check_http, di solito faccio l'URL in cui cerco il testo e quindi esamino l'output.

Se vuoi qualcosa che fa un po 'più di check_http, come accedere a un sito web o controllare più di una stringa, dai un'occhiata a WebInject : è un bel plugin.


0

Devi specificare l' -eopzione affinché l' -sopzione abbia l'effetto desiderato:

$ ./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

0

Ecco un paio di controlli che uso.

Il primo cerca il testo CCServerServicee segnala un errore se non lo vede:

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
}

Il secondo controlla il testo errore segnala un errore se lo vede:

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
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.