Découverte automatique
Objectifs du chapitre et prérequis
1. Contexte et prérequis
Le chapitre précédent a été consacré à la mise en place d’une surveillance basée pour l’essentiel sur des éléments statiques. Dans un contexte dans lequel une seule machine Docker est présente et où les services ne changent que très peu, cet aspect ne pose pas de problème.
Toutefois, le point fort des nouvelles technologies basées sur la notion de container ou hébergées dans les nuages est de permettre de changer rapidement et simplement les applications.
Pour la suite de l’exercice, une machine supplémentaire sera ajoutée au cluster Docker afin d’aborder la découverte dynamique de containers à l’aide de Docker Swarm.
2. Fichiers téléchargeables
Vous pouvez récupérer les exemples sur le repository GitHub suivant : https://github.com/EditionsENI/prometheus-grafana
Vous pouvez également récupérer ces fichiers dans l’archive chapitre-10.tar.gz depuis la page Informations générales.
Intégration de Prometheus à Docker Swarm
1. Contexte
Jusqu’à maintenant, le moteur Docker Swarm utilisé ne disposait que d’un seul nœud. Toutefois, le principe de ce type de produit est de pouvoir gérer plusieurs machines en même temps et de distribuer automatiquement la charge sur les différents nœuds disponibles.
En effet, certains composants ne sont démarrés qu’une seule fois alors qu’ils ont besoin d’être potentiellement créés pour chaque nœud du cluster (exporteur système, cAdvisor). Autre aspect, l’adresse utilisée jusqu’ici (host.internal.docker) va devenir potentiellement invalide pour deux raisons :
-
Le container est démarré plusieurs fois (une fois par nœud).
-
Le point de surveillance dépend du nœud sur lequel il tourne.
-
Le container n’est pas forcément démarré sur la machine faisant tourner le container Prometheus.
Ici, Docker ne nous sera d’aucune aide. C’est justement là qu’intervient un mécanisme propre à Prometheus : la découverte automatique.
2. Ajout d’un nœud au cluster Docker Swarm
a. Installation du moteur Docker
Pour la suite de l’exercice, un moteur Docker devra avoir été installé sur la machine. La procédure est la même que celle présentée dans le chapitre Déploiement via containers. En revanche, ne faites pas la partie d’initialisation du mode Docker Swarm.
Une fois le moteur activé, procédez à l’activation du point de surveillance du moteur comme décrit dans le chapitre Supervision de containers.
b. Récupération du jeton de connexion
Le moteur Docker est installé sur la machine supplémentaire. Pour la suite, cette machine sera désignée sous le terme de worker et la machine existante portera le nom de manager.
Lors du lancement de l’initialisation du mode Docker Swarm, la commande a renvoyé un jeton (en anglais token) permettant de se connecter au cluster. Dans le cas où cette information aurait été perdue, il est possible de la récupérer. Pour cela, lancez la commande docker suivie des options suivantes :
-
Les mots-clés swarm join-token.
-
Le type de machine...