Contexte

Quand un conteneur est en fonctionnement, le statut de celui-ci permet de définir son état général. Cependant, dans certains cas, il arrive qu'un conteneur ait besoin d'une ou plusieurs vérifications additionnelles pour attester qu'il fonctionne correctement.

Ces vérifications additionnelles, nommées "healthcheck" dans le jargon Docker, dépendent des utilisateurs pour être ajoutés et ne sont pas configurés par défaut. C'est pourquoi la grande majorité des conteneurs en est dépourvue.


Un healthcheck ne possède pas de structure prédéfinie. Il peut s'agir de n'importe quelle vérification imaginée par l'utilisateur pour attester que le conteneur réponde bien à ses attentes. Il peut prendre la forme : 

  • D'un ping pour vérifier que le conteneur communique bien
  • D'un status pour vérifier l'état d'un service
  • D'une commande complexe pour vérifier un fonctionnement applicatif
  • etc ...

Le check Health by SSH permet ainsi de superviser le retour de ces vérifications.


Le changement de statut repose sur une seule règle :

  • Si l’état du healthcehck n'est pas "healthy" ou "no-healthcheck", le check remontera en warning ou critique ( Basé sur la gravité de l'état remontée )

Un healthcheck de déclare généralement dans un fichier Dockerfile ou via les options de lancement du conteneur ( --health-cmd ).

Docker exécute à intervalles réguliers la commande sélectionnée ( paramétrables via --health-interval, --health-retries, etc. ) et, en fonction du résultat, Docker attribue au conteneur un état parmi les suivants :

  • starting (le conteneur est en cours de test, suite à son lancement),

  • healthy (le test a réussi),

  • unhealthy (le test a échoué plusieurs fois de suite).


Ce check permet donc :

  • de détecter rapidement un service applicatif non fonctionnel,

  • de confirmer qu’un conteneur “running” est réellement opérationnel,

  • de cibler un conteneur dont l’application interne est partiellement ou totalement indisponible.

Pour résumer, ce check offre  un indicateur avancé pour valider le bon fonctionnement interne d'un conteneur.

Paramétrage

Le check utilise la ligne de commande suivante :

$SHINKEN_DOCKER-BY-SSH_PLUGINSDIR$/check_docker_SSH.py 
	-H "$HOSTADDRESS$"
	-u "$_HOSTDOCKER-BY-SSH__SSH-USER$"
	-p "$_HOSTDOCKER-BY-SSH__SSH-PORT$"
	-k "$_HOSTDOCKER-BY-SSH__SSH-KEY$"
	-x "$_HOSTDOCKER-BY-SSH__SSH-PASSPHRASE$"
	-m "health"
	-s "$ARG1$"  

Données utilisées provenant du modèle

Données communes pour les checks du modèle

Données spécifiques pour ce check

Pas de données spécifiques pour ce check

Données DFE ( Duplicate Foreach )

NomModifiable sur UnitésDéfautValeur par défaut à l'installation de ShinkenDescription
DOCKER-BY-SSH__CONTAINERS

l'Hôte

( Onglet Données )

---containers1$(containers1)$ containers1$(containers1)$

Nom du ou des conteneurs ( séparés par une virgule ), exemple "prod01$(prod01)$,php$(php)$".

Check(s) impacté(s) :

Données utilisées provenant du check

Pas de données provenant du check pour ce modèle

Données globales

NomModifiable surUnitéDéfautValeur par défaut à l'installationDescription
USERPLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--/var/lib/shinken-user/libexec /var/lib/shinken-user/libexec

Chemin absolu contenant les sondes installés par Shinken.

SHINKEN_DOCKER-BY-SSH_VENDOR

Non modifiable

( Sauf Admin Shinken )

--shinken-additional-packs shinken-additional-packs

Dossier fournit par shinken.

SHINKEN_DOCKER-BY-SSH_PACKNAME

Non modifiable

( Sauf Admin Shinken )


docker-by-SSH__shinken docker-by-SSH__shinken

Dossier contenant les sondes.

SHINKEN_DOCKER-BY-SSH_PLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--
$USERPLUGINSDIR$/$SHINKEN_DOCKER-BY-SSH_VENDOR$/$SHINKEN_DOCKER-BY-SSH_PACKNAME$
/var/lib/shinken-user/libexec/shinken-additional-packs/docker-by-SSH__shinken

Chemin absolu du dossier contenant les sondes du pack docker-by-SSH__shinken  ( non modifiable ).

Propriétés de l'hôte

NomModifiable surUnitéDéfautValeur par défautDescription
HOSTADDRESS

l'Hôte

( Onglet Général )

--

Nom de l'hôte Nom de l'hôte

Adresse de l'hôte

Résultat

Exemple

Interprétation des données

Statut

  • Il peut prendre 3 valeurs  OK / CRITIQUE / WARNING.

    • Le statut va dépendre du retour de sonde.

    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :

Situation Statut Exemple
  • L'état d'un des healthcheck est différent de "healthy" ou "no-healthcheck"
  • L'état détecté est de gravité critique

CRITIQUE

  • L'état d'un des healthcheck est différent de "healthy" ou "no-healthcheck"
  • L'état détecté est de gravité intermédiaire

ATTENTION

  • Le conteneur spécifié n'as pas été trouvé

INCONNU

Résultat

Le résultat court affiche l’état retourné par le check health. Généralement indiqué par les valeurs : starting, healthy, ou unhealthy.

Résultat Long

Pas de résultat long pour ce check.

Métriques

Pas de métriques pour ce check.

Erreurs et pré-requis




Votre essai Premium est terminé