Texto de monitoreo de Nagios en un sitio web

10

Me preguntaba si podría obtener alguna ayuda para monitorear el texto en un sitio web. IE Si quisiera monitorear google.com para el texto "Privacidad", pensé que usaría el siguiente comando:

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

Pero no está funcionando. Me sale "OK" sin importar lo que ponga entre comillas. Obviamente estoy usando el comando incorrecto o la opción incorrecta. Por favor ayuda.

IOTAMAN
fuente

Respuestas:

7

Intenta salir pon el -u. -u proporciona la ruta (página) para recuperar, el valor predeterminado es "/", no toma la URL completa. Aquí está mi salida cuando lo dejo afuera.

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

Si desea obtener una página específica, use -u como este

$ ./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
caballo pálido
fuente
Todavía tengo un problema con mi sitio web real que estoy tratando de monitorear, esto es lo que obtengo ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 encontrado - 0.003 segundos de tiempo de respuesta | tiempo = 0.003486s ;;; 0.000000 tamaño = 104B
;;;
O otro ejemplo es ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 encontrado - 0.003 segundo tiempo de respuesta | tiempo = 0.003466s ;;; 0.000000 tamaño = 94B
;;;
Sí, parece que si una redirección (301 o 302) es la respuesta, la verificación ignora la cadena de búsqueda, lo que probablemente sea correcto. La respuesta es encontrar la URL exacta a la que se lo redirige. Debería poder hacerlo yendo a la página en un navegador. Si eso no funciona, intente acceder a él a través de telnet para ver cuál es el valor de Ubicación: encabezado.
palehorse 02 de
1

Otra opción es usar check_curl de monitoringexchange.org. En realidad, este es un título demasiado complicado para lo que está tratando de hacer, pero he descubierto que amplía la funcionalidad cuando lo necesita para analizar datos de sitios web e insertar entradas

Contenido de mi check_curl no variable personalizado a continuación:

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

panificado
fuente
0

Escribimos un script perl personalizado usando LWP y HTML :: Tree para buscar cadenas particulares. También simplemente md5sum algunas páginas donde el contenido no cambia.

David Pashley
fuente
1
Yo mismo estoy contento con check_http, pero si está sugiriendo este método como una solución, ¿tal vez proporcione el script perl?
Caro
0

Si tengo un problema como este con el complemento check_http, generalmente me olvido de la URL en la que estoy buscando el texto y luego examino la salida.

Si desea algo que haga un poco más que check_http, como iniciar sesión en un sitio web o verificar más de una cadena, eche un vistazo a WebInject : es un buen complemento.

gareth_bowles
fuente
0

Debe especificar la -eopción para que la -sopción tenga el efecto deseado:

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

Aquí hay un par de cheques que uso.

El primero busca el texto CCServerServicee informa un error si no lo ve:

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
}

El segundo verifica el texto errore informa un error si lo ve:

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
fuente