#ContainerDayFR
Jonathan Raffre et Jean-Pascal Thiery
Monitoringde conteneurs en production
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Agenda
▼ Qu’avons-nous besoin de savoir sur...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Qui sommes nous ?
Jonathan Raffre Jean-Pasc...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Ce que nous ne sommes pas
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Nos besoins d’exploitation
La métrologie
▼ ...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Nos besoins d’exploitation
Le monitoring
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Nos besoins d’exploitation
Le monitoring
▼ ...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Nos besoins d’exploitation
L’alerting
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Nos besoins d’exploitation
L’alerting
▼ “Je...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Du conteneur dans nos architectures
Paris Container Day 2017 #ContainerDayFR
Monitoring de conteneurs en production
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Avant la mise en boîte
Le monitoring
▼ Agen...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Avant la mise en boîte
Le monitoring
▼ Moni...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Avant la mise en boîte
La métrologie
▼ Un s...
Paris Container Day 2017 #ContainerDayFR
Monitoring de conteneurs en production
Prêt pour la prod ?
#ContainerDayFRParis Container Day 2017
Et le conteneur fut
Ce qui change
▼ Un conteneur contient une version allégée de l...
#ContainerDayFRParis Container Day 2017
Et le conteneur fut
Ce qui change
▼ Les architectures microservices profitent de c...
Paris Container Day 2017 #ContainerDayFR
Monitoring de conteneurs en production
#ContainerDayFRParis Container Day 2017
Au secours ! Tout ne fait que changer !
Un changement de paradigme
▼ La disparitio...
#ContainerDayFRParis Container Day 2017
Au secours ! Tout ne fait que changer !
Un changement de paradigme
▼ Mais comment ...
#ContainerDayFRParis Container Day 2017
Au secours ! Tout ne fait que changer !
Un changement de paradigme
▼ “Comment j’in...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Rendez-moi la vue
Construction d’une vue d’...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Rendez-moi la vue
Construction d’une vue d’...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Intégration
Docker + syslog log driver
▼ /e...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Intégration
rkt + journald + syslog
▼ “Forw...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Intégration
Système/Docker/rkt -> rsyslog -...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Intégration
One daemon to rule them all
▼ P...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Intégration
Les pitfalls du logging
▼ “Mais...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Mais je veux des chiffres !
Agrégation de m...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Mais je veux des chiffres !
Agrégation de m...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Mais je veux des chiffres !
Agrégation de m...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Mais je veux des chiffres !
Voir tout, tout...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
La collect(d)e
▼ collectd: daemon de collec...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
La collect(d)e
des métriques
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
La métrologie
ce qu’il ne faut pas oublier
...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
L’alerting
pour être proactif
▼ Discuter de...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
L’alerting
de manière intelligente
▼ Effect...
Paris Container Day 2017 #ContainerDayFR
Monitoring de conteneurs en production
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Attention
vous pourriez vous faire mal
▼ At...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Attention
vous pourriez vous faire mal
▼ Ne...
#ContainerDayFRParis Container Day 2017
Monitoring de conteneurs en production
Attention
vous pourriez vous faire mal
▼ Ne...
#ContainerDayFR
Monitoring de conteneurs en production
Questions ?
#ContainerDayFR
Jonathan Raffre et Jean-Pascal Thiery
Monitoringde conteneurs en production
Prochain SlideShare
Chargement dans…5
×

Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery

209 vues

Publié le

Retrouvez la présentation de Jonathan Raffre et Jean-Pascal Thiery de Xebia lors du Paris Container Day

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
209
Sur SlideShare
0
Issues des intégrations
0
Intégrations
13
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Monitoring de conteneurs en production - Jonathan Raffre & Jean-Pascal Thiery

  1. 1. #ContainerDayFR Jonathan Raffre et Jean-Pascal Thiery Monitoringde conteneurs en production
  2. 2. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Agenda ▼ Qu’avons-nous besoin de savoir sur une plateforme ? ▼ Comment y répondre ? ▼ … et dans le cas de conteneurs ?
  3. 3. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Qui sommes nous ? Jonathan Raffre Jean-Pascal Thiery
  4. 4. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Ce que nous ne sommes pas
  5. 5. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Nos besoins d’exploitation La métrologie ▼ “Je veux des métriques numériques sur l’état de la plateforme” ▼ Techniques ▽ Utilisation CPU, Disque, Réseau, ... ▼ Business ▽ Nombre de requêtes sur le serveur ▽ Nombre de commandes ▽ …
  6. 6. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Nos besoins d’exploitation Le monitoring
  7. 7. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Nos besoins d’exploitation Le monitoring ▼ “Je veux connaître les évènements majeurs ou à risque d’une plateforme, de manière chronologique” ▽ L’application ‘awesomeAppOfTheDead’ a démarré à 9h03 ▽ Le temps de réponse de l’application ‘awesomeAppOfTheDead’ est de 22ms à 9h25 ▽ Le temps de réponse de l’application ‘awesomeAppOfTheDead’ est de 400ms à 10h02 ▽ L’application ‘awesomeAppOfTheDead’ à rencontré une erreur de connexion à la base de données à 10h05
  8. 8. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Nos besoins d’exploitation L’alerting
  9. 9. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Nos besoins d’exploitation L’alerting ▼ “Je veux être alerté des états anormaux et critiques de la plateforme, que ce soit à partir des métriques ou des données de monitoring” ▽ Il reste moins de 5% d’espace disque sur une machine. ▽ Il n’y a plus de commande depuis plus de 20 mins (alors qu’il y a toujours de l’activité normalement)
  10. 10. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Du conteneur dans nos architectures
  11. 11. Paris Container Day 2017 #ContainerDayFR Monitoring de conteneurs en production
  12. 12. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Avant la mise en boîte Le monitoring ▼ Agents de supervision contrôlés par un serveur ▽ Nouveau serveur -> opération sur le serveur de supervision ▼ Équilibre entre : ▽ Granularité des checks contre généricité ■ Vérification d’un point de montage inexistant ? ■ Seuils d’occupation RAM inadaptés pour un SGBD ? ▽ Complexité de maintenance ■ Cas spécifiques à maintenir
  13. 13. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Avant la mise en boîte Le monitoring ▼ Monitoring des serveurs d’applications (Tomcat, Websphere, …) ▽ Déport des métriques de l’application vers le middleware ▽ Métriques pas toujours adaptées ▼ Centralisation de logs peu répandue ▽ Comment trouver mon erreur métier parmi les 40 serveurs de l’application ?
  14. 14. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Avant la mise en boîte La métrologie ▼ Un serveur est lié à une application de manière “permanente” ▽ “Le serveur slvfrcrm01 héberge le CRM de la société” ▽ On “sait” que les logs de ce serveur sont liés au CRM ▼ Le monitoring et la métrologie sont souvent liés ▽ Utilisation d’outils “tout-en-un”: Zabbix, HPOV
  15. 15. Paris Container Day 2017 #ContainerDayFR Monitoring de conteneurs en production Prêt pour la prod ?
  16. 16. #ContainerDayFRParis Container Day 2017 Et le conteneur fut Ce qui change ▼ Un conteneur contient une version allégée de l’OS ▽ Pas de noyau, de système de démarrage, … ▽ “J’installe comment mon agent Zabbix ?” ▽ “Il est où init.d ? bash?” ▽ “Comment j’audite ce que les utilisateurs font dans le conteneur ?” ▼ Une machine peut héberger plusieurs conteneurs d’applications différentes ▽ “Que fait le conteneur d91457f5-89d8-45da-a307-276792240224 ?” ▽ “A quelle application correspondent ces logs ?”
  17. 17. #ContainerDayFRParis Container Day 2017 Et le conteneur fut Ce qui change ▼ Les architectures microservices profitent de ce mouvement ▽ Myriade de conteneurs possédant chacun une fonction métier ▽ Chaque log possède à lui seul peu de valeur ▽ Nécessité de centraliser les logs et métriques pour une vision d’ensemble ▽ Les conteneurs démarrent, s’arrêtent, sont remplacés, se déplacent de serveur en serveur
  18. 18. Paris Container Day 2017 #ContainerDayFR Monitoring de conteneurs en production
  19. 19. #ContainerDayFRParis Container Day 2017 Au secours ! Tout ne fait que changer ! Un changement de paradigme ▼ La disparition et l’apparition de conteneurs est un phénomène normal ▽ La notion de “pet versus cattle” est en partie vraie ici ▽ Les conteneurs font partie du troupeau ■ Ils peuvent être remplacés à tout moment ! ■ La mise à jour d’un conteneur passe par son remplacement ▼ Un hôte héberge maintenant plusieurs apps, dont les logs n’ont rien à voir ▽ Nécessité d’identification de chaque ligne de log
  20. 20. #ContainerDayFRParis Container Day 2017 Au secours ! Tout ne fait que changer ! Un changement de paradigme ▼ Mais comment je déclare tout cela dans mon monitoring/alerting ?! ▽ Un service va changer régulièrement d’adresse IP et de serveur ▽ Certaines vérifications n’ont plus de sens ■ Espace disque dans un conteneur ? ■ Mises à jour de sécurité dans un conteneur ? ▽ Qu’est-ce que je dois encore vérifier sur un conteneur ? ▽ Quid d’un modèle où les conteneurs se déclarent eux même ?
  21. 21. #ContainerDayFRParis Container Day 2017 Au secours ! Tout ne fait que changer ! Un changement de paradigme ▼ “Comment j’installe mon agent de collecte de métriques dans vos conteneurs ?” ▽ Est-ce réellement nécessaire qu’il soit dans le conteneur ? ▽ Et si l’on tentait de collecter ces infos depuis l’hôte ?
  22. 22. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Rendez-moi la vue Construction d’une vue d’ensemble ▼ L'agrégation de l’ensemble des logs va nous permettre d’avoir une vision d’ensemble ▼ Plusieurs outils sont disponibles pour l’acheminement de ces logs ▽ Events système: syslog/rsyslog ▽ Events conteneurs: ■ rkt: intégration avec journald + syslog ■ docker: plugin syslog ■ chacun fournit des capacités de tags sur les logs générés
  23. 23. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Rendez-moi la vue Construction d’une vue d’ensemble
  24. 24. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Intégration Docker + syslog log driver ▼ /etc/docker/daemon.json ▼ Les conteneurs ont des noms sans contexte (UUIDs, hashes…) ▽ docker run --log-opt tag=my-awesome-nginx nginx:latest
  25. 25. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Intégration rkt + journald + syslog ▼ “Forward” des logs journald vers syslog ▽ /etc/systemd/journald.conf
  26. 26. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Intégration Système/Docker/rkt -> rsyslog -> Kafka ▼ rsyslog: omkafka depuis v8.7.0
  27. 27. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Intégration One daemon to rule them all ▼ Pourquoi rsyslog ? ▽ Installé par défaut sur toutes les distributions Linux ▽ Protocole standard et flexible ▽ Intégration système déjà effectuée par la distribution ■ 50% de l’intégration déjà faite ▼ Autres options ? ▽ logstash-shipper ▽ fluentd
  28. 28. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Intégration Les pitfalls du logging ▼ “Mais à quelle application correspond ce conteneur….?” ▽ Ajout de contexte: ■ machine source, id du conteneur, service (via tag) ▽ Docker intègre la plupart de ces infos dans ses logs https://docs.docker.com/engine/admin/logging/syslog/ ▼ “J’ai trop de logs !” ▽ filtrez tout log qui ne fournit pas d’info utile ▽ … mais attention à ne pas trop filtrer pour le futur
  29. 29. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Mais je veux des chiffres ! Agrégation de métriques ▼ Les logs nous permet de voir les évènements de manière chronologique ▽ Quid des métriques système, business ? ▼ “Mais tu nous dis qu’on ne peut pas mettre d’agents dans les conteneurs…” ▽ Docker/rkt fournissent des APIs pour les métriques système
  30. 30. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Mais je veux des chiffres ! Agrégation de métriques ▼ “Et mon agent d’APM/NewRelic/AppDynamics ?” ▽ Certains éditeurs fournissent des agents spécifiques à Docker ▽ La plupart des frameworks de métriques fournissent des méthodes d’export vers statsd ■ metrics, kamon, datadog, node-statsd, … ▽ Il devient aussi à la charge de l’application de remonter les métriques ■ Contrôle plus fin sur les métriques que l’on veut voir !
  31. 31. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Mais je veux des chiffres ! Agrégation de métriques ▼ Comment récupérer et centraliser ces métriques ? ▽ collectd/telegraf/prometheus pour la récupération ■ listener statsd, collecte directe, ... ▽ InfluxDB/Prometheus/Carbon pour le stockage de métriques ▽ Prometheus/Grafana/Chronograf pour la visualisation ▽ possible de “mix’n’match” ▽ chacun fournit des capacités de tags sur les métriques collectées !
  32. 32. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Mais je veux des chiffres ! Voir tout, tout le temps
  33. 33. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production La collect(d)e ▼ collectd: daemon de collecte de métriques ▽ Codé en C ▽ Open source ▽ Communauté active ▽ beaucoup de plugins/connecteurs ■ CPUs, RAMs, Disk ■ Varnish, Redis ■ Graphite, Rabbitmq, kafka, InfluxDB, ... ■ https://collectd.org/wiki/index.php/Table_of_Plugins des métriques
  34. 34. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production La collect(d)e des métriques
  35. 35. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production La métrologie ce qu’il ne faut pas oublier ▼ Choisir la bonne base de données selon votre besoin ▼ Attention au nommage de vos métriques et leur labellisation ▽ En cas de modification, vous devrez refaire TOUS vos dashboards ▽ => Normalisation des noms de métriques ■ Ne pas surcharger la normalisation, les labels sont aussi là !
  36. 36. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production L’alerting pour être proactif ▼ Discuter des métriques fonctionnelles significatives ▽ Nombre de messages traités ▽ Temps de latence “end-to-end” d’une requête ▼ Surveiller les tendances, plutôt que des valeurs absolues ▽ Nombre moyen de messages selon les périodes (“rush hour”, nuit, …) ▽ Patterns d’utilisation cpu/réseau ▽ Permet d’agir avant l’incident et de réduire les faux positifs
  37. 37. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production L’alerting de manière intelligente ▼ Effectuer les checks sur des points névralgiques de la plateforme ▽ Accès aux endpoints critiques (sur HAProxy, Traefik, …) ▽ Vérification de la présence d’une balise validant le fonctionnement “end-to-end” ▽ Santé de vos systèmes de cluster (Mesos, K8S, Swarm, …)
  38. 38. Paris Container Day 2017 #ContainerDayFR Monitoring de conteneurs en production
  39. 39. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Attention vous pourriez vous faire mal ▼ Attention de ne pas tomber dans l’extrême de l’alerting ▽ ne pas faire de checks détaillés par conteneur ■ trop d’informations tue l’information ■ privilégier les visions d’ensemble, concises et simplifiées ▽ Healthchecks déjà effectués par vos orchestrateurs !
  40. 40. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Attention vous pourriez vous faire mal ▼ Ne multipliez pas les outils ▼ Automatiser votre infrastructure avec de l’Infra As Code ▽ Terraform/CloudFormation/Google Deploy Manager ▽ Ansible/Puppet/Salt Stack/Chef ▼ Faites usage au maximum de templating lorsque c’est possible ▽ Kibana + paramètres ▽ http://docs.grafana.org/reference/templating/
  41. 41. #ContainerDayFRParis Container Day 2017 Monitoring de conteneurs en production Attention vous pourriez vous faire mal ▼ Ne sous-estimez pas la volumétrie des données que vous allez devoir gérer : ▽ Multitude de source de données (nombre de serveurs, d’applications) ■ Une charge à un instant t importante ▽ La durée de la rétention des données (logs et métriques)
  42. 42. #ContainerDayFR Monitoring de conteneurs en production Questions ?
  43. 43. #ContainerDayFR Jonathan Raffre et Jean-Pascal Thiery Monitoringde conteneurs en production

×