1 votes

Nagios3 donne un avertissement sur la surveillance des services HTTP

J'ai déjà configuré mon réseau local pour qu'il soit surveillé par Nagios3. J'ai découvert un problème : Nagios3 signale un avertissement dans le service de surveillance HTTP d'un serveur Debian défini sur l'adresse IP 192.168.1.52, qui possède un hôte virtuel individuel et un hôte virtuel de masse pour le développement d'applications. J'obtiens ce message d'état :

AVERTISSEMENT HTTP : HTTP/1.1 404 Non trouvé

J'ai utilisé les outils Nagios pour vérifier. servername est le nom du serveur vhost que j'ai utilisé dans la configuration d'Apache.

/usr/lib/nagios/plugins/check_http -H servername -I 192.168.1.52

recevoir ce message d'état :

HTTP OK HTTP/1.1 200 OK - 37900 octets en 0,504 secondes |time=0.503946s;;;0.000000 size=37900B;;;0

Mais quand je vérifie comme ça :

/usr/lib/nagios/plugins/check_http -I 192.168.1.52

J'obtiens le même message d'état que l'avertissement, donc je suppose que Nagios n'est pas complètement bien configuré car il ne reconnaît pas les vhosts pour ce serveur, comme il devrait l'être comme le montre le service check_http.

Où dois-je chercher pour corriger cet avertissement ?

1 votes

Nous avons besoin de savoir comment la vérification est réellement exécutée par nagios. Pouvez-vous nous donner l'intégralité des objets de service et de commande en question dans votre configuration ?

2voto

pQd Points 29251

Comment définir un service dans nagios ?

ça devrait être quelque chose comme ça :

define command{
command_name    my_check_http
command_line    $USER1$/check_http -H$ARG1$ -I $HOSTADDRESS$
}

define host{
use                     generic-host
host_name               something
alias                   something
address                 192.168.1.52
# ...
}

define service{
use  generic-service
host_name something
check_http_args!nameofvhost
# ...
}

2voto

nkkollaw Points 399

Personnes. Merci beaucoup pour votre aide, mais j'ai trouvé la réponse toute seule avant de vérifier vos réponses, désolé !

Pour résoudre ce problème, j'ai créé une commande personnalisée dans le fichier commands.cfg, comme ceci :

définir la commande{

   command_name    custom_check_http  
   command_line    $USER1$/check_http -H $HOSTNAME$ -I $HOSTADDRESS$  

}

Je ne suis pas vraiment sûr de l'utilité de $USER1$, mais il se bloque sans lui, avec une erreur de 127 limit out of bonds.

Les définitions d'hôtes étaient déjà correctement écrites avec host_name et address (désolé pour ce manque d'information !), comme celle que pQd a écrite.

définir host{

   host_name SERVERNAME
   alias SERVERNAME_ALIAS
   address 192.168.1.52
   ...

}

Enfin, la définition du service dans le fichier services_nagios2.cfg est aussi simple que celle par défaut :

définir le service {

   hostgroup_name                  http-servers  
   service_description             Apache  
   check_command                   custom_check_http  
   use                             generic-service  
   notification_interval           0 ; set > 0 if you want to be renotified

}

Je n'avais pas réalisé l'utilisation des variables $HOSTNAME$ et $HOSTADDRESS$ avant de poser cette question. Merci encore pour votre aide.

1voto

JimiSweden Points 111

Nous avons eu le "même" problème sur un de nos serveurs web. Il est apparu après une mise à jour de notre site Web. Ils ont également modifié les en-têtes dans l'IIS et c'est pourquoi l'erreur a commencé à apparaître.

solution : remplacer le nom du serveur par le nom du site web ; "nom du serveur" par "site.com".

0voto

gareth_bowles Points 8717

J'essaierais de contourner Nagios et d'utiliser wget en ligne de commande sur votre hôte Nagios pour vérifier les URLs que vous envoyez à Nagios :

wget http://192.168.1.52/
wget http://servername/

D'après ce qui précède, je suppose que la première commande échouera mais que la seconde fonctionnera, ce qui me porte à croire que le nom de votre serveur virtuel se résout à une adresse IP différente. Essayez

dig servername

pour confirmer.

Une astuce générale pour déboguer Nagios est d'essayer l'option -v, que la plupart des plugins implémentent pour fournir une sortie verbeuse. L'adresse capture_plugin script est vraiment utile pour capturer la sortie de débogage lorsque le plugin est exécuté sous Nagios.

0voto

Joren Vaes Points 773

Dans votre fichier services.cfg, vérifiez soit le nom du serveur au lieu de l'IP, soit le port au lieu de la réponse http.

Exemple de ce dernier :

check\_command   check\_tcp!80

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X