::::: {.exercice} ### Exercice (obligatoire pour les SRS -- optionnel pour les GISTRE) Poursuivons [notre script de monitoring](#script-monitoring) afin d'envoyer nos résultats vers InfluxDB : nous l'appellerons `./telegraf.sh`. #### Rappel d'InfluxDB Commençons par lancer le conteneur Docker d'InfluxDB (pour éviter de l'installer sur notre machine) :
```bash docker container run --name mytsdb -d -p 8086:8086 influxdb:1.8 ```
Il nous faut ensuite créer une base de données pour y stocker nos métriques. Voici comment on s'était débrouillé précédemment pour interagir avec InfluxDB :
```bash docker container exec -i mytsdb influx < Vérifiez que la base de données `metrics` a bien été créée. #### Monitoring vers InfluxDB Maintenant, envoyons nos données vers la base  :
```bash curl -i -XPOST 'http://localhost:8086/write?db=metrics' --data-binary \ "$my_cgroup_name memory.usage_in_bytes=$(cat .../my_cgroup_name/memory.usage_in_bytes)" ```
Pour vérifier que les données ont bien été ajoutées, nous pouvons effectuer la requête suivante dans notre client `influx` :
```sql SELECT * from "$my_cgroup_name"; ```
#### Monitorer davantage de données Liste non exhaustive de données à monitorer : * Nombre d'IOs effectué ; * nobre d'octets lus/écrits sur les disques ; * temps de calcul utilisé (`userspace`, `system`, tout confondu) ; * ... Tous les cgroups existants dans le dernier noyau publié ont leur documentation accessible ici : - v1 : - v2 : #### Permettre à l'utilisateur de monitorer des processus Maintenant, séparons notre script en deux parties afin qu'un utilisateur normal (non-root) puisse utiliser la partie monitoring de notre script. Un premier script doit s'occuper de créer le(s) *cgroup*s et lui attribuer les bons droits, tandis que le deuxième va effectuer le monitoring, sans privilèges particuliers. ##### Exemple {-}
``` 42sh$ sudo ./telegraf_init.sh my_cgroup_name 42sh$ ./telegraf.sh my_cgroup_name memhog 500 ```
:::::