Comment vérifier le code de réponse HTTP d'un site Web sécurisé avec Nagios?

10

Je souhaite créer une vérification nagios de mon site Web sécurisé. Tout ce que la vérification doit faire est de se connecter au site avec les informations de connexion que je passe le script.

Est-ce que quelqu'un connaît un plugin ou un script qui me permettra de le faire?

J'ai essayé d'utiliser check_http, mais j'obtiens du succès même si le site Web est redirigé vers une page d'erreur.

Simon Foster
la source
Le check_httpplugin prend en charge l' -s stringoption qui vous permet de rechercher certaines chaînes de la réponse HTTP. Si la page imprime une chaîne spécifique en cas de succès, vous pouvez la vérifier pour la distinguer de l'erreur.
Khaled

Réponses:

16

J'ai essayé d'utiliser check_http mais j'obtiens du succès même si le site Web est redirigé vers une page d'erreur

Cela peut être résolu avec check_http --expect. Voici la documentation de check_http --help :

-e, --expect = STRING Liste de chaînes délimitées par des virgules, au moins l'une d'entre elles est attendue dans la première ligne (état) de la réponse du serveur (par défaut: HTTP / 1). Si spécifié, ignore toute autre logique de ligne d'état ( ex: traitement 3xx, 4xx, 5xx)

L'exemple suivant renverra un «OK» pour un code de réponse HTTP 200 OK , mais donnera une erreur critique pour une redirection 302.

host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK

Pour un site Web sécurisé (sur SSL) et une authentification, consultez également check_http --sslet les --authorizationindicateurs.

-S, --ssl Connectez-vous via SSL. Le port par défaut est 443

-a, --authorization = AUTH_PAIR Nom d'utilisateur: mot de passe sur les sites avec authentification de base

Ou, vous ne voulez peut-être pas réellement vous connecter au système, mais vous voulez simplement vous assurer que la page nécessite un nom d'utilisateur / mot de passe, car ce nom d'utilisateur / mot de passe peut devenir un problème de sécurité. Dans ce cas, essayez quelque chose comme ce qui suit / 401est le code de réponse HTTP pour 'Non autorisé' ou 'Autorisation requise' - le 401est obligatoire, la chaîne de texte par la suite est facultative et peut dire plusieurs choses différentes, donc je dis juste à Nagios à attendre 401.

check_http --expect="401"
Stefan Lasiewski
la source
2

Vous pouvez créer des vérifications plus complexes (dans l'esprit du développement / surveillance axé sur les comportements) avec Cucumber-Nagios .

joschi
la source