4.4 KiB
\newpage
Lier des conteneurs
Avant de voir des méthodes plus automatiques pour déployer toute notre pile logicielle TICK, nous allons commencer par mettre en place et lier les conteneurs manuellement, de la même manière que nous avons pu le faire avec Owncloud et MySQL.
Conteneur central : la base de données
Le premier conteneur qui doit être lancé est la base de données orientée séries temporelles : InfluxDB. En effet, tous les autres conteneurs on besoin de cette base de données pour fonctionner correctement : il serait impossible à Chronograf d'afficher les données sans base de données, tout comme Telegraf ne pourrait écrire les métriques dans une base de données à l'arrêt.
Afin d'interagir avec les données, InfluxDB expose une API REST sur le port 8086. Pour éviter d'avoir plus de configuration à réaliser, nous allons tâcher d'utiliser ce même port pour tester localement :
Comme il s'agit d'une API REST, nous pouvons vérifier le bon fonctionnement de notre base de données en appelant :
Si votre influxdb répond, vous pouvez vous y connecter en utilisant directement le client fourni :
Si vous aussi vous voyez la table _internal
, bravo ! vous pouvez passer à la
suite.
Notez que comme nous avons lancé le conteneur en mode détaché (option -d
),
nous ne voyons pas les logs qui sont écrits par le daemon. Pour les voir, il
faut utiliser la commande docker container logs
:
\hspace{2em}Exercice : Ajoutez à la ligne de commande de lancement du conteneur les bon(s) volume(s) qui permettront de ne pas perdre les données d'influxDB si nous devions redémarrer le conteneur.
Collecter les données locales
Tentons maintenant de remplir notre base de données avec les métriques du système. Pour cela, on commence par télécharger Telegraf :
Puis, lançons Telegraf :
Remarque : La configuration par défaut va collecter les données de la
machine locale et les envoyer sur le serveur situé à
http://localhost:8086
. Ici, cela fonctionne donc parce que l'on a fait en
sorte de redirigé le port de notre conteneur sur notre machine locale (option
-p
).
Et observons ensuite :
use telegraf Using database telegraf
show measurements name: measurements
name cpu disk diskio kernel mem processes swap system
</div>
La nouvelle base a donc bien été créé et tant que nous laissons *Telegraf*
lancé, celui-ci va régulièrement envoyer des métriques de cette machine.
## Afficher les données collectées
\hspace{2em}**Exercice :** À vous de jouer pour lancer le conteneur
[*Chronograf*](https://store.docker.com/images/chronograf).
L'interface de *Chronograf* est disponible sur le port 8888.
L'image Docker officielle accepte que l'emplacement du serveur InfluxDB soit
passée dans variable d'environnement
`INFLUXDB_URL`. [Consultez la documentation du conteneur si besoin](https://store.docker.com/images/chronograf).
![Résultat obtenu](chronograf_latest.png)