3.6 KiB
Docker
Monitoring des conteneurs
Maxime Poullain • Christian Tritten
Monitorer des conteneurs
Pourquoi c'est différent ?
Avec l'introduction des conteneurs et des microservices,
le monitoring doit pouvoir gérer des applications souvent éphémères et en perpétuelle fluctuation.
Les solutions de monitoring ont donc besoin de s'adapter pour continuer à fournir des données pertinentes.
Le monitoring sans conteneurs
Les outils de monitoring classiques permettent une couverture complète des éléments à surveiller.
Le monitoring avec conteneurs
Les éléments propres à la couche des conteneurs ne peuvent pas être monitorés avec les outils classiques.
Par exemple, il serait difficile de suivre la consommation mémoire de l'application A.
Quelques outils
Pour se faciliter la tâche
Docker Stats
Docker propose un équivalent de la commande top
permettant d'afficher les statistiques des conteneurs en cours d'exécution sur l'hôte.
Bien que pratique, ceci n'est pas adapté à une grosse infrastructure.
docker stats
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
5098617c3654 0.05% 0B / 0B 0.00% 648B / 0B 0B / 0B 0
b2d0efcb5151 1.00% 0B / 0B 0.00% 648B / 0B 0B / 0B 0
cbdb1069b241 0.10% 0B / 0B 0.00% 648B / 0B 0B / 0B 0
ctop
Métriques des conteneurs dans une interface à la top
Node-Exporter
- Outil de collecte de métriques système
- Développé par Prometheus
- C'est l'équivalent d'un collectd
- Facile à déployer sur chaque hôte (sous forme de conteneur)
cadvisor
- Outil de monitoring de conteneurs
- Développé par Google
- Supporte nativement Docker
- Collecte et exporte les métriques des conteneurs présents sur l'hôte
- C'est un peu l'équivalent d'un
docker stats --all
- Facile à déployer sur chaque hôte (sous forme de conteneur)
Prometheus
- Projet initié en 2012 chez Soundcloud
- Interroge les agents Node-Exporter et cAdvisor des différents hôtes
- Stocke les données de type time-series dans ses propres bases
- Permet la configuration d'alertes via l'outil Alert-Manager de Prometheus
- Peut être lancé en tant que conteneur (1 seule instance pour un cluster ou plus)
Alert Manager
- Outil de gestion et routage d'alertes
- Développé par Prometheus
- Se couple avec un serveur Prometheus
- Supporte les notifications par Email/Webhook/Slack/...
Grafana
- Outil de conception et visualisation de tableaux de bord
- Développé par Grafana Labs
- Peut exploiter une base InfluxBD ou Prometheus
- Peut être lancé en tant que conteneur (1 seule instance pour un cluster ou plus)