2015-10-29 04:45:40 +00:00
|
|
|
\newpage
|
|
|
|
|
|
|
|
# Compose
|
|
|
|
|
|
|
|
Avec notre conteneur utilisant `supervisor`, nous ne respectons pas
|
|
|
|
bien cette dernière bonne pratique d'un seul processus par conteneur
|
|
|
|
:-(
|
|
|
|
|
|
|
|
L'intérêt est de permettre à chaque conteneur d'effectuer une tâche
|
2016-09-14 20:51:14 +00:00
|
|
|
générique, de manière à pouvoir être réutilisé pour d'autres projets
|
2015-10-29 04:45:40 +00:00
|
|
|
dans le futur. Par exemple, notre conteneur InfluxDB pourra être
|
|
|
|
utilisé pour stocker des relevés de métriques systèmes ou des logs.
|
2016-09-15 00:46:46 +00:00
|
|
|
Chronograf peut être connecté à d'autres serveurs afin de corréler les
|
|
|
|
métriques, ...
|
2015-10-29 04:45:40 +00:00
|
|
|
|
|
|
|
|
|
|
|
## Séparer le `Dockerfile`
|
|
|
|
|
|
|
|
Commençons par séparer notre `Dockerfile` en deux : dans une partie
|
2016-09-15 00:46:46 +00:00
|
|
|
nous allons garder la partie InfluxDB, de l'autre la partie Chronograf.
|
2015-10-29 04:45:40 +00:00
|
|
|
|
|
|
|
Il va vous falloir créer deux dossiers distincts, il en faut un par
|
2016-09-15 00:46:46 +00:00
|
|
|
`Dockerfile` : réutilisez l'image `influxdb` créée précédemment et créez le
|
|
|
|
dossier pour l'image `chronograf`.
|
2015-10-29 04:45:40 +00:00
|
|
|
|
2016-09-14 20:51:14 +00:00
|
|
|
Profitez en pour rajouter les Data Volume Container, si vous ne l'avez
|
|
|
|
pas fait dans la partie précédente !
|
2015-10-29 04:45:40 +00:00
|
|
|
|
2016-09-15 00:46:46 +00:00
|
|
|
\vspace{1em}
|
|
|
|
|
|
|
|
Pour tester la bonne marche de vos conteneurs, vous pouvez le lancer votre
|
|
|
|
conteneur chronograf avec la commande suivante (en considérant que votre
|
|
|
|
conteneur influxdb de la première partie est toujours lancé).
|
|
|
|
|
|
|
|
```
|
|
|
|
docker run --rm --link YOUR_INFLUX_CNTR_NAME:influxdb chronograf
|
|
|
|
```
|
|
|
|
|
|
|
|
Remplacez `YOUR_INFLUX_CNTR_NAME` par le nom du conteneur qui fait tourner
|
|
|
|
votre influxdb. En créant ce lien, `chronograf` sera capable de contacter une
|
|
|
|
machine `influxdb` (la partie après les `:`).
|
|
|
|
|
|
|
|
|
|
|
|
### Visualiser les données dans `chronograf`
|
|
|
|
|
|
|
|
Avant d'arrêter `telegraf` et nos conteneurs pour passer à une nouvelle étape,
|
|
|
|
prenez le temps d'afficher les données que vous avez collecté depuis le début
|
|
|
|
du TP.
|
|
|
|
|
|
|
|
Après avoir ajouté le serveur (en remplaçant `localhost` proposé par défaut par
|
|
|
|
`influxdb` issue du *link*), ajouter deux visualisations avec les requêtes
|
|
|
|
suivantes :
|
|
|
|
|
|
|
|
```
|
|
|
|
SELECT used, available, cached FROM mem WHERE tmpltime()
|
|
|
|
SELECT mean(usage_idle) FROM cpu WHERE tmpltime() GROUP BY time(20s), cpu
|
|
|
|
```
|
|
|
|
|
2015-10-29 04:45:40 +00:00
|
|
|
|
2016-09-14 20:51:14 +00:00
|
|
|
## Automatiser la construction et le lancement
|
2015-10-29 04:45:40 +00:00
|
|
|
|
|
|
|
Commencez par lancer tous vos conteneurs à la main pour voir les
|
|
|
|
étapes que vous allez devoir automatiser.
|
|
|
|
|
|
|
|
Au lieu de faire un script pour construire et lancer tous vos
|
|
|
|
conteneurs, définissez à la racine de votre projet un fichier
|
|
|
|
`docker-compose.yml` qui contiendra les méthodes de construction et
|
|
|
|
les paramètres d'exécution.
|
2016-09-14 20:51:14 +00:00
|
|
|
|
|
|
|
```
|
2016-09-15 00:46:46 +00:00
|
|
|
version: '2'
|
|
|
|
services:
|
|
|
|
influxdb:
|
|
|
|
...
|
|
|
|
chronograf:
|
|
|
|
build: grafana/
|
|
|
|
image: nginx
|
|
|
|
ports:
|
|
|
|
- "3000:3000"
|
|
|
|
volumes:
|
|
|
|
- ./:/tmp/toto
|
|
|
|
links:
|
|
|
|
- influxdb
|
2016-09-14 20:51:14 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Ce fichier est un condensé des options que vous passez habituellement
|
|
|
|
au `docker run`.
|
|
|
|
|
|
|
|
L'exemple ci-dessus est à adapter largement, consultez
|
2016-09-15 00:46:46 +00:00
|
|
|
<http://docs.docker.com/compose/compose-file/> pour une liste exhaustive des
|
2016-09-14 20:51:14 +00:00
|
|
|
options que vous pouvez utiliser.
|
|
|
|
|
2016-09-15 00:46:46 +00:00
|
|
|
Notez toutefois la présence d'une ligne `version` ; il ne s'agit pas de la
|
|
|
|
version de vos conteneurs, mais de la version du format de fichier
|
|
|
|
docker-compose qui sera utilisé. Sans indication de version, la version
|
|
|
|
originale sera utilisée.
|
|
|
|
|
2016-09-14 20:51:14 +00:00
|
|
|
|
|
|
|
Une fois que votre `docker-compose.yml` sera prêt, lancez tout d'abord
|
|
|
|
`docker-compose build` pour commencer la phase de build de tous les
|
|
|
|
conteneurs listés dans le fichier.
|
|
|
|
|
2016-09-15 00:46:46 +00:00
|
|
|
Une fois le build terminé, vous pouvez lancer la commande suivante et admirer
|
|
|
|
le résultat :
|
2016-09-14 20:51:14 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
docker-compose up
|
|
|
|
```
|
2016-09-15 00:46:46 +00:00
|
|
|
|
|
|
|
Encore une fois, testez la bonne connexion entre chronograf (accessible sur
|
|
|
|
<http://localhost:10000>) et influxdb.
|
|
|
|
|
|
|
|
|
|
|
|
## Rendu
|
|
|
|
|
|
|
|
Pour cette partie, vous devrez rendre la dernière itération de votre
|
|
|
|
`docker-compose.yml`.
|