Work on TP2
This commit is contained in:
parent
a9c68a4545
commit
aaeb15334a
10 changed files with 223 additions and 46 deletions
|
|
@ -1,6 +1,145 @@
|
|||
\newpage
|
||||
|
||||
Lier des conteneurs entre-eux
|
||||
=============================
|
||||
Lier des conteneurs
|
||||
===================
|
||||
|
||||
TODO
|
||||
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](https://www.influxdata.com/time-series-platform/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](https://fr.wikipedia.org/wiki/Representational_state_transfer)
|
||||
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 :
|
||||
|
||||
```
|
||||
docker container run -p 8086:8086 -d --name mytsdb influxdb
|
||||
```
|
||||
|
||||
Comme il s'agit d'une API REST, nous pouvons vérifier le bon fonctionnement de
|
||||
notre base de données en appelant :
|
||||
|
||||
```
|
||||
42sh$ curl -f http://localhost:8086/ping
|
||||
42sh$ echo $?
|
||||
0
|
||||
```
|
||||
|
||||
Si votre influxdb répond, vous pouvez vous y connecter en utilisant directement
|
||||
le client fourni :
|
||||
|
||||
```
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
|
||||
Connected to http://influxdb:8086 version 1.0.1
|
||||
InfluxDB shell version: 1.0.1
|
||||
> show databases
|
||||
name: databases
|
||||
---------------
|
||||
name
|
||||
_internal
|
||||
```
|
||||
|
||||
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` :
|
||||
|
||||
```
|
||||
docker container logs mytsdb
|
||||
```
|
||||
|
||||
|
||||
\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* :
|
||||
|
||||
```shell
|
||||
curl https://dl.influxdata.com/telegraf/releases/telegraf-1.4.2-static_linux_amd64.tar.gz | \
|
||||
tar xzv -C /tmp
|
||||
```
|
||||
|
||||
Puis, lançons *Telegraf* :
|
||||
|
||||
```shell
|
||||
cd /tmp/telegraf
|
||||
./telegraf --config telegraf.conf
|
||||
```
|
||||
|
||||
**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 :
|
||||
|
||||
```shell
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
|
||||
Connected to http://influxdb:8086 version 1.0.1
|
||||
InfluxDB shell version: 1.0.1
|
||||
> show databases
|
||||
name: databases
|
||||
---------------
|
||||
name
|
||||
_internal
|
||||
telegraf
|
||||
|
||||
> use telegraf
|
||||
Using database telegraf
|
||||
|
||||
> show measurements
|
||||
name: measurements
|
||||
------------------
|
||||
name
|
||||
cpu
|
||||
disk
|
||||
diskio
|
||||
kernel
|
||||
mem
|
||||
processes
|
||||
swap
|
||||
system
|
||||
```
|
||||
|
||||
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).
|
||||
|
||||
|
||||

|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue