Work on TP2

This commit is contained in:
nemunaire 2016-09-15 02:46:46 +02:00
commit b171ee869d
10 changed files with 290 additions and 136 deletions

View file

@ -10,21 +10,52 @@ L'intérêt est de permettre à chaque conteneur d'effectuer une tâche
générique, de manière à pouvoir être réutilisé pour d'autres projets
dans le futur. Par exemple, notre conteneur InfluxDB pourra être
utilisé pour stocker des relevés de métriques systèmes ou des logs.
Grafana peut également afficher davantage d'informations ou combiner
les informations de plusieurs bases distinctes.
Chronograf peut être connecté à d'autres serveurs afin de corréler les
métriques, ...
## Séparer le `Dockerfile`
Commençons par séparer notre `Dockerfile` en deux : dans une partie
nous allons garder la partie InfluxDB, de l'autre la partie Grafana.
nous allons garder la partie InfluxDB, de l'autre la partie Chronograf.
Il va vous falloir créer deux dossiers distincts, il en faut un par
`Dockerfile`.
`Dockerfile` : réutilisez l'image `influxdb` créée précédemment et créez le
dossier pour l'image `chronograf`.
Profitez en pour rajouter les Data Volume Container, si vous ne l'avez
pas fait dans la partie précédente !
\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
```
## Automatiser la construction et le lancement
@ -37,33 +68,50 @@ conteneurs, définissez à la racine de votre projet un fichier
les paramètres d'exécution.
```
influxdb:
...
grafana:
build: grafana/
image: nginx
ports:
- "3000:3000"
volumes:
- ./:/tmp/toto
links:
- influxdb
version: '2'
services:
influxdb:
...
chronograf:
build: grafana/
image: nginx
ports:
- "3000:3000"
volumes:
- ./:/tmp/toto
links:
- influxdb
```
Ce fichier est un condensé des options que vous passez habituellement
au `docker run`.
L'exemple ci-dessus est à adapter largement, consultez
<http://docs.docker.com/compose/yml/> pour une liste exhaustive des
<http://docs.docker.com/compose/compose-file/> pour une liste exhaustive des
options que vous pouvez utiliser.
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.
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.
Une fois le build terminé, vous pouvez lancer la commande suivante pour admirer le résultat :
Une fois le build terminé, vous pouvez lancer la commande suivante et admirer
le résultat :
```
docker-compose up
```
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`.