diff --git a/tutorial/2/chronograf.png b/tutorial/2/chronograf.png
new file mode 100644
index 0000000..4400901
Binary files /dev/null and b/tutorial/2/chronograf.png differ
diff --git a/tutorial/2/chronograf_setup.png b/tutorial/2/chronograf_setup.png
new file mode 100644
index 0000000..25d005a
Binary files /dev/null and b/tutorial/2/chronograf_setup.png differ
diff --git a/tutorial/2/compose.md b/tutorial/2/compose.md
index 582f76e..ec4540d 100644
--- a/tutorial/2/compose.md
+++ b/tutorial/2/compose.md
@@ -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
- pour une liste exhaustive des
+ 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
+) et influxdb.
+
+
+## Rendu
+
+Pour cette partie, vous devrez rendre la dernière itération de votre
+`docker-compose.yml`.
diff --git a/tutorial/2/first.md b/tutorial/2/first.md
index 83c48c9..c86257c 100644
--- a/tutorial/2/first.md
+++ b/tutorial/2/first.md
@@ -1,12 +1,12 @@
\newpage
-# Premiers pas
+Premières étapes
+================
Dans un premier temps, nous allons créer une image Docker comme si l'on
-réalisait l'installation sur une machine classique : en suivant les méthodes
-habituelles, mais tout en écrivant notre recette dans le `Dockerfile`. La
-machine (notre première image Docker) contiendra tout le nécessaire pour faire
-fonctionner notre service.
+réalisait une installation sur une machine classique : en suivant une
+recette. La machine (notre première image Docker) contiendra tout le nécessaire
+pour faire fonctionner notre service.
## Les caches
@@ -25,10 +25,9 @@ n'est pas modifiée dans le `Dockerfile`, le cache sera utilisé.
Il est possible de ne pas utiliser le cache et de relancer toutes les étapes du
`Dockerfile` en ajoutant l'option `--no-cache` au moment du `docker build`.
-Les couches du cache peuvent être partagées entre plusieurs conteneur, c'est
-ainsi que vous pouvez partager facilement une plus grosse partie du système de
-fichiers (afin de profiter du cache du système de fichiers au moment de
-l'exécution du conteneur).
+Les couches du cache peuvent être partagées entre plusieurs conteneur,
+c'est ainsi que vous pouvez partager facilement une plus grosse partie
+du système de fichiers.
\vspace{1.5em}
@@ -36,10 +35,10 @@ Pour profiter du cache, il faut donc placer les étapes les plus génériques (q
seraient susceptibles d'apparaître dans plusieurs conteneur), en haut du
`Dockerfile`.
-Commençons donc notre `Dockerfile` : choisissez une image de base pour votre
-`FROM`, et indiquez votre nom avec l'instruction `MAINTAINER`, pour indiquez
-que c'est vous qui maintenez ce conteneur (si d'autres gens ont besoin qu'il
-faut le mettre à jour par exemple).
+Commençons donc notre `Dockerfile` : choisissez une image de base pour
+votre `FROM`, et indiquez votre nom avec l'instruction `MAINTAINER`,
+pour indiquez que c'est vous qui maintenez ce conteneur (si d'autres
+gens ont besoin de vous avertir pour le mettre à jour par exemple).
## `RUN` ou script ?
@@ -48,20 +47,24 @@ faut le mettre à jour par exemple).
Ensuite vient l'installation d'InfluxDB. Le paquet n'est pas disponible dans
les dépôts. La
-[procédure décrite sur le site](https://influxdb.com/docs/v0.9/introduction/installation.html)
-incite à télécharger le paquet mis à disposition puis à l'installer via `dpkg
--i`.
+[https://docs.influxdata.com/influxdb/v1.0/introduction/installation/#ubuntu-debian](procédure
+décrite sur le site) incite à télécharger le paquet mis à disposition puis à
+l'installer via `dpkg -i`.
-Deux solutions s'offrent à nous : télécharger le paquet hors du conteneur, le
-copier, puis l'installer. Ou faire un `RUN` avec toutes ces opérations (sans
-oublier l'installation de `wget`/`curl`).
+Deux solutions s'offrent à nous :
+
+* télécharger le paquet hors du conteneur, le copier, puis l'installer.
+* faire un `RUN` avec toutes ces opérations (sans oublier l'installation
+ préalable de `wget`/`curl`).
La copie étant définitive (supprimer le fichier ne le supprimera pas des
-couches où il a pu exister), donc la seconde solution semble préférable (mais
-`wget` restera en déchet).
+couches où il a pu exister), on préférera la seconde méthode, malgré que `wget`
+restera en déchet. La première méthode aura plus sa place dans un dépôt où les
+binaires auront été préalablement compilés, il ne restera plus qu'à les copier
+dans le conteneur au bon emplacement.
-Écrivez une commande `RUN` qui va télécharger la dernière version d'InfluxDB,
-qui va l'installer et supprimer le fichier.
+Écrivons une commande `RUN` qui va télécharger la dernière version
+d'InfluxDB, qui va l'installer et supprimer le fichier.
\vspace{1em}
@@ -69,17 +72,46 @@ qui va l'installer et supprimer le fichier.
bien utilisable : `EXPOSE`, `CMD`, ...
Il est possible que vous ayez à écraser le fichier de configuration via un
-`COPY` (ou de manière plus maline en utilisant `--volume` au moment du `docker
-run`, cela fonctionne pas qu'avec les dossiers). Garder la ligne qui vous
-permet de lancer votre serveur web dans un coin, en attendant la partie
-suivante.
+`COPY` (ou de manière plus maligne en utilisant `--volume` au moment du `docker
+run`, cela fonctionne pas qu'avec les dossiers). Ou peut-être ferez-vous un
+`ENTRYPOINT` ?
-### Grafana
+### Telegraf
-Une fois InfluxDB configuré, nous allons avoir la même réflexion avec Grafana.
+Telegraf est un programme qui permet de collecter des métriques systèmes. Il
+travaille de paire avec InfluxDB pour stocker les valeurs.
-De la même manière, téléchargez, installez et supprimez le paquet.
+Vous pouvez monitorer les métriques de n'importe quelle machine, simplement en
+installant *Telegraf* et en lui indiquant l'emplacement de son serveur
+InfluxDB. Nous allons installer *telegraf* sur notre machine à l'aide de la
+[https://docs.influxdata.com/telegraf/v1.0/introduction/installation/](documentation).
-Lors de vos tests, sachez que vous pouvez vous connecter sur grafana avec
-l'utilisateur *admin*, mot de passe *admin*.
+Ces quelques lignes devraient suffir à lancer la collecte, à condition que
+votre InfluxDB écoute sur le port 8086 local :
+
+```bash
+TELEGRAF_VERSION=1.0.0
+wget https://dl.influxdata.com/telegraf/releases/telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
+tar xf telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
+TELEGRAF_CONFIG_PATH=./telegraf/etc/telegraf/telegraf.conf ./telegraf/usr/bin/telegraf
+```
+
+Rendez-vous ensuite dans [http://localhost:8083/](l'interface d'InfluxDB) pour
+voir si la collecte se passe bien.
+
+Dans l'interface sélectionnez la base *telegraf* puis explorez les valeurs :
+
+```sql
+SHOW MEASUREMENTS
+SHOW FIELD KEYS
+SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' ORDER BY time DESC LIMIT 5
+```
+
+Laissons tourner `telegraf` afin de constituer un petit historique de valeurs.
+
+
+## Rendu
+
+Avant de passer à la suite, placez votre `Dockerfile` dans un dossier
+`influxdb` (pour le moment il ne contient rien d'autre !).
diff --git a/tutorial/2/goodpractices.md b/tutorial/2/goodpractices.md
index cf6e1a1..e7bd87d 100644
--- a/tutorial/2/goodpractices.md
+++ b/tutorial/2/goodpractices.md
@@ -1,6 +1,7 @@
\newpage
-# Retour sur les bonnes pratiques
+Retour sur les bonnes pratiques
+===============================
Pour chacune des bonnes pratiques ci-dessous, vérifiez que vous les respectez
bien, faites les modifications nécessaires.
@@ -39,9 +40,7 @@ En plus, cela réduira le temps de build et la taille des images produites !
Vous devez trouver l'équilibre idéal entre la lisibilité de votre `Dockerfile`
(qui assure la maintenabilité sur le long-terme) et le nombre de couches
-créées. Le nombre de couches idéal devrait être égal au nombre de branches
-distincte partant d'une image de base, afin d'utiliser au mieux le cache du
-système de fichiers.
+créées.
## Ordonnez vos lignes de commandes complexes
@@ -105,7 +104,7 @@ Il y a un certain nombre de règles à connaître pour bien utiliser ce mécanis
## Concevez des conteneur éphémères
-Les conteneurs que vous générez doivent aussi éphémères que possible : ils
+Les conteneurs que vous générez doivent être aussi éphémères que possible : ils
devraient pouvoir être arrêtés, détruits et recréés sans nécessiter d'étape de
reconfiguration. La configuration devrait se faire au lancement du conteneur ou
lors de sa construction.
diff --git a/tutorial/2/installation.md b/tutorial/2/installation.md
index 81f9d06..17cb977 100644
--- a/tutorial/2/installation.md
+++ b/tutorial/2/installation.md
@@ -2,17 +2,62 @@
# Installation
+## Docker
+
+Ce TP requiert la dernière version de Docker (1.12). Commencez par vérifier que
+vous avez bien cette version :
+
+```
+42sh$ docker version
+Client:
+ Version: 1.12.1
+ API version: 1.24
+ Go version: go1.7
+ Git commit: 23cf638
+ Built:
+ OS/Arch: linux/amd64
+
+Server:
+ Version: 1.12.1
+ API version: 1.24
+ Go version: go1.7
+ Git commit: 23cf638
+ Built:
+ OS/Arch: linux/amd64
+```
+
+Si vous n'avez pas une version assez récente, consultez le premier TP pour
+savoir comment installer Docker.
+
+
## `docker-compose`
-L'équipe en charge de Docker compose met à disposition un binaire contenant
+Nous allons également avoir besoin de `docker-compose`.
+
+Ce projet ne bénéficie pas d'une intégration au sein du projet Docker et doit
+être téléchargé séparément, car originellement, le projet était développé par
+une équipe indépendante. S'étant révélé primordiale, ils ont trouvé une place
+au sein du projet Docker, mais l'incompatibilité des langages utilisés fait que
+`docker-compose` n'est toujours pas intégré dans docker.
+
+### Par le gestionnaire de paquets
+
+Les distributions à jour vous proposeront un paquet `docker-compose` qui
+fonctionnera avec la version de Docker qu'ils fournissent.
+
+### Par la distribution binaire
+
+L'équipe en charge de Docker compose met à disposition un exécutable contenant
tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
```
-curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-Linux-x86_64 \
+curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-Linux-x86_64 \
> /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
```
+### `pip`
+
Le projet étant écrit en Python, il est également disponible via `pip`, si vous
préférez cette méthode. N'oubliez pas de préciser une version compatible avec
votre version de Docker.
@@ -25,7 +70,7 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
```
42sh$ docker-compose --version
-docker-compose version: 1.3.3
+docker-compose version: 1.8.0
```
Si vous obtenez une réponse similaire, c'est que vous êtes prêt à commencer le
diff --git a/tutorial/2/project.md b/tutorial/2/project.md
index e91ab97..4b64926 100644
--- a/tutorial/2/project.md
+++ b/tutorial/2/project.md
@@ -1,73 +1,50 @@
\newpage
-# Rendu
-
-## Avis
-
-Dans le courriel que vous enverrez, je serais ravi de connaître votre avis sur
-ce cours : aussi bien les choses que vous avez apprécié que celles que vous
-n'avez pas aimés.
-
-Cela ne rentrera pas en compte dans la notation, mais permettra d'améliorer ce
-cours.
-
-
-## TP
-
-Rendez le contenu de votre dossier à la dernière étape du TP : avec le
-`docker-compose.yml`, ainsi que vos `Dockerfile` et les éventuels fichiers
-annexes.
-
+Rendu
+=====
## Projet
-De la même manière que nous avons réaliser un groupe de conteneurs utilisant
-`grafana` et `InfluxDB`, qui permet d'afficher facilement des métriques sous
-forme de graphiques, vous allez réaliser, à l'aide des images Docker présentent
-sur le hub, une interface web de recherche et de visualisation de logs,
-utilisant
-[Kibana](https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-ubuntu-14-04).
+Amusez-vous à la piscine, il n'y a pas de projet en plus des exercices fait en
+TP !
-Toutes la chaîne d'image Docker est déjà présente sur le hub :
-[logstash](https://hub.docker.com/_/logstash/),
-[elasticsearch](https://hub.docker.com/_/kibana/),
-[kibana](https://hub.docker.com/_/kibana/).
+En complément de ce TP, vous pouvez jetez un œil à
+[https://docs.docker.com/engine/swarm](Docker Swarm) !
-Le but du projet est donc de réaliser un `docker-compose.yml` permettant
-d'avoir un système de centralisation de logs fonctionnels. Vous aurez sans
-doute à faire quelques adaptations au niveau des images Docker, au moins pour
-des fichiers de configuration, donc il n'y aura sans doute pas que ce fichier à
-rendre.
-Vous pouvez utiliser comme source de logs les conteneurs du TP, grâce aux
-options `log-driver=gelf` et `log-opt=gelf-address=udp://host:port`, passées
-aux `docker run` (ou dans le `docker-compose`).
+## Modalité de rendu
-Côté `logstash`, votre configuration devrait ressembler à ça :
+Un service automatique s'occupe de réceptionner vos rendus, de faire les
+vérifications nécessaires et de vous envoyer un accusé de réception (ou de
+rejet).
+
+Ce service écoute sur l'adresse , c'est donc à cette adresse
+et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
+envoyé à une autre adresse et/ou non signé ne sera pas pris en compte.
+
+
+## Tarball
+
+Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
+placer dans une tarball (pas d'archive ZIP, RAR, ...).
+
+Les réponses aux questions sont à regrouper dans un fichier `questions.txt` à
+placer à la racine de votre rendu.
+
+Voici une arborescence type:
```
-input {
- tcp {
- port => 4242
- }
- udp {
- port => 4242
- }
-}
-
-output {
- elasticsearch { }
-}
+login_x-TP2/questions.txt
+login_x-TP2/docker-compose.yml
+login_x-TP2/influxdb
+login_x-TP2/influxdb/Dockerfile
+login_x-TP2/influxdb/influxdb.conf
+login_x-TP2/chronograf
+login_x-TP2/chronograf/Dockerfile
+login_x-TP2/chronograf/chronograf.conf
+login_x-TP2/mymonitoring
+login_x-TP2/mymonitoring/Dockerfile
+login_x-TP2/mymonitoring/chronograf.conf
+login_x-TP2/mymonitoring/influxdb.conf
+login_x-TP2/mymonitoring/supervisor.conf
```
-
-Vous pourrez ainsi envoyez les logs de Docker sur le port 4242. Ou directement
-vos logs syslog :
-
-```
-netcat localhost 4242 < /var/log/syslog
-```
-
-N'oubliez pas de lire les README associés aux images Docker du hub, ils vous
-indiqueront comment utiliser les images et comment leur passer des paramètres.
-
-Bon courage !
diff --git a/tutorial/2/supervisor.md b/tutorial/2/supervisor.md
index 2dc13bc..d628ba0 100644
--- a/tutorial/2/supervisor.md
+++ b/tutorial/2/supervisor.md
@@ -1,15 +1,56 @@
\newpage
-# Plusieurs daemons dans un conteneur
+Plusieurs daemons dans un conteneur
+===================================
+
+Notre système de monitoring commence enfin à ressembler à quelque chose. Mais
+ce serait tellement plus pratique de voir tous ces tableaux de nombres sous
+forme de graphiques !
+
+Nous allons pour cela ajouter `chronograf` dans notre conteneur.
+
+Avant de modifier votre `Dockerfile`, créez un nouveau dossier de rendu :
+`mymonitoring`, dans lequel vous recopierez l'état actuel de notre image
+`influxdb`.
+
+
+## Chronograf
+
+Commençons par compléter la commande d'installation existante pour `influxdb`,
+afin d'installer simultanément `chronograf`.
+
+La documentation de la procédure est disponible
+[https://docs.influxdata.com/chronograf/v1.0/introduction/installation/](à
+cette adresse).
+
## Script d'init
Lors du dernier TP, nous avons vu que les conteneurs étaient détruits dès que
le premier processus du conteneur (celui qui a le PID 1, à la place d'`init`)
-terminer son exécution, quelque soit le statut de ses éventuels fils.
+terminait son exécution, quelque soit le statut de ses éventuels fils.
-Pour lancer tous nos daemon, nous allons donc besoin d'écrire un script qui
-lance puis attend que les deux deamons aient terminés de s'exécuter
+Pour lancer tous nos daemons, nous avons donc besoin d'écrire un script qui
+lance puis attend que les deux deamons aient terminés de s'exécuter.
+
+Écrivons ce script. Hints : `wait(1)`.
+
+\vspace{1em}
+
+Pour vérifier que votre conteneur fonctionne correctement, vous pouvez le
+lancer :
+
+```
+docker run --rm -p 10000:10000 mymonitoring
+```
+
+Puis accéder à chronograf : . Donnez un nom à votre
+configuration, puis cliquez sur *Add*. Les paramètres préremplis dans le
+formulaire sont corrects.
+
+Vous devriez obtenir l'écran suivant (notez la partie `Status: Online, v1.0.0`) :
+
+
## Autorestart
@@ -45,14 +86,16 @@ Première étape : installer `supervisor`, le paquet se trouve dans les dépôts
L'étape suivante consiste à remplir puis copier le fichier de configuration
dans le conteneur. Vous allez devoir écraser dans votre conteneur le fichier
-`/etc/supervisord.conf` pour démarrer à la fois `grafana` et `influxdb`.
+`/etc/supervisord.conf` pour démarrer à la fois `chronograf` et `influxdb`.
Vous pouvez vous aider de la documentation disponible à :
-## C'est parti !
+La même procédure de test que précédemment peut être suivie.
-Votre conteneur doit maintenant être parfaitement fonctionnel : vous devriez
-pouvoir lancer votre script de monitoring et voir apparaître vos données dans
-Grafana !
+
+## Rendu
+
+Nous ne toucherons plus à cette image, placez-la dans un dossier
+`mymonitoring`.
diff --git a/tutorial/2/tutorial.md b/tutorial/2/tutorial.md
index 7503130..7332a2c 100644
--- a/tutorial/2/tutorial.md
+++ b/tutorial/2/tutorial.md
@@ -1,20 +1,25 @@
-% Virtualisation légère -- TP n^o^3
-% Pierre-Olivier *Nemunaire* Mercier
-% Jeudi 29 octobre 2015
+---
+title: Virtualisation légère -- TP n^o^ 2
+subtitle: Aller plus loin avec Docker
+author: Pierre-Olivier *Nemunaire* Mercier
+institute: EPITA
+date: Jeudi 15 septembre 2016
+...
-Durant ce troisième TP, nous allons approfondir l'utilisation de Docker !
+Durant ce deuxième TP, nous allons approfondir l'utilisation de Docker !
Tous les éléments de ce TP (exercices et questions) sont à rendre à
- au plus tard le jeudi 12 novembre 2015 à 23 h 42. Consultez la
+ au plus tard le jeudi 6 octobre 2016 à 8 h 42. Consultez la
dernière section de chaque partie pour plus d'information sur les éléments à
-rendre. Vous pouvez placer les réponses aux questions dans le corps du courriel
-ou dans un fichier joint.
+rendre.
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
-vous devriez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
+vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
[me](http://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) faire
signer votre clef et n'hésitez pas à
[faire signer votre clef](http://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
+Vous pouvez utiliser l'adresse pour savoir si vous vous
+y prenez correctement.
\hypersetup{linkcolor=black}
\tableofcontents
diff --git a/tutorial/2/what.md b/tutorial/2/what.md
index 628e55a..7a37556 100644
--- a/tutorial/2/what.md
+++ b/tutorial/2/what.md
@@ -1,11 +1,16 @@
-# But du TP
+But du TP
+=========
-Aujourd'hui, nous allons terminer notre système de monitoring commencé lors du
-premier TP.
+Aujourd'hui, nous allons réaliser un système de monitoring.
Le résultat attendu d'ici la fin du TP, est un groupe de conteneurs
indépendants les uns des autres, réutilisables en fonction des besoins.
-Les données collectées seront envoyés vers
-[InfluxDB](https://influxdb.com/), puis elles seront affichées sous
-forme de graphique dans [Grafana](http://grafana.org/).
+Nous collecterons les données d'utilisation de votre machine avec
+[https://www.influxdata.com/time-series-platform/telegraf/](Telegraf). Ces
+données seront envoyés vers
+[https://www.influxdata.com/time-series-platform/influxdb/](InfluxDB), puis
+elles seront affichées sous forme de graphique dans
+[https://www.influxdata.com/time-series-platform/chronograf/](Chronograf).
+
+