Nagios Monitoring Text sur un site Web


10

Je me demandais si je pouvais obtenir de l'aide pour surveiller le texte sur un site Web. IE Si je voulais surveiller google.com pour le texte "Confidentialité", j'ai pensé utiliser la commande suivante:

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

Mais ça ne marche pas. Je reçois "OK", peu importe ce que je mets entre guillemets. J'utilise évidemment la mauvaise commande ou la mauvaise option. Veuillez aider.

Réponses:


7

Essayez de laisser mettre le -u. -u donne le chemin (page) à récupérer, la valeur par défaut est "/", il ne prend pas l'URL entière. Voici ma sortie quand je la laisse de côté.

$ ./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 vous voulez obtenir une page spécifique, utilisez le -u comme ceci

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

J'ai toujours un problème avec mon site Web que j'essaie de surveiller, c'est ce que j'obtiens ./check_http -H mysite.myschool.edu -u "/ cp / home / displaylogin" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 trouvé - 0.003 seconde temps de réponse | temps = 0.003486s ;;; 0.000000 taille = 104B ;;; 0
IOTAMAN

Ou un autre exemple est ./check_http -H mysite.myschool.edu -u "/index.html" -s "dsklajfdl" HTTP OK - HTTP / 1.1 302 trouvé - 0.003 seconde temps de réponse | time = 0.003466s ;;; 0.000000 size = 94B ;;; 0
IOTAMAN

Oui, il semble que si une redirection (301 ou 302) est la réponse, la vérification ignore la chaîne de recherche, ce qui est probablement correct. La réponse est de trouver l'URL exacte vers laquelle vous êtes redirigé. Vous devriez pouvoir le faire en accédant à la page dans un navigateur. Si cela ne fonctionne pas, essayez d'y accéder via telnet pour voir quelle est la valeur d'en-tête Locaction :.
palehorse

1

Une autre option consiste à utiliser check_curl de monitoringexchange.org. En réalité, c'est un titre trop compliqué pour ce que vous essayez de faire, mais j'ai trouvé qu'il étend la fonctionnalité lorsque vous en avez besoin pour analyser les données des sites Web et insérer des entrées

Contenu de mon check_curl personnalisé non variable ci-dessous:

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

Nous avons écrit un script perl personnalisé en utilisant LWP et HTML :: Tree pour rechercher des chaînes particulières. Nous avons également simplement ajouté quelques pages dont le contenu ne change pas.


1
Je suis moi-même satisfait de check_http mais si vous proposez cette méthode comme solution, fournissez peut-être le script perl?
Cher

0

Si j'obtiens un problème comme celui-ci avec le plugin check_http, j'utilise généralement l'URL dans laquelle je recherche le texte, puis j'examine la sortie.

Si vous voulez quelque chose qui fait un peu plus que check_http, comme se connecter à un site Web ou vérifier plus d'une chaîne, jetez un œil à WebInject - c'est un bon plugin.


0

Vous devez spécifier l' -eoption pour que l' -soption ait l'effet souhaité:

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

Voici quelques vérifications que j'utilise.

Le premier recherche le texte CCServerServiceet signale une erreur s'il ne le voit pas:

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
}

Le second vérifie le texte erroret signale une erreur s'il le voit:

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
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.