Table of Contents
Le suivi des performances des conteneurs Docker est une exigence fondamentale pour maintenir des applications efficaces, fiables et évolutives dans les environnements de production modernes. Les conteneurs sont éphémères, légers et souvent orchestrés à travers les grappes, rendant la visibilité dans leur consommation de ressources, leur santé et leur comportement essentiels pour les développeurs et les équipes d'infrastructure. Datadog, une plateforme d'observation de premier plan, offre une intégration profonde avec Docker pour collecter, visualiser et alerter les paramètres des conteneurs en temps réel.
Comprendre la surveillance Docker
La surveillance de ces conteneurs nécessite des mesures de suivi au niveau du conteneur, pas seulement au niveau de l'hôte. Les mesures clés comprennent l'utilisation du processeur, la consommation de mémoire, les E/S de bloc, les E/S de réseau, l'utilisation du disque et les événements du cycle de vie du conteneur (démarrage, arrêt, redémarrage).
Sous le capot, Docker utilise des fonctionnalités du noyau Linux telles que cgroups (groupes de contrôle) et namespaces[ pour imposer des limites de ressources et une isolation. Des outils de surveillance comme Datadog interrogent l'API Docker ou lisent des systèmes de fichiers cgroup pour obtenir des statistiques par conteneur. Par exemple, les mesures CPU proviennent de cgroup, mémoire de cgroup, et E/S de cgroup. Comprendre ces mécanismes vous aide à interpréter les données et diagnostiquer les problèmes plus efficacement.
La surveillance efficace de Docker va au-delà de la simple collecte de chiffres. Elle consiste à corréler les mesures avec les performances de l'application, à fixer des seuils intelligents et à intégrer des journaux et des traces pour former une image complète.
Pourquoi utiliser Datadog pour la surveillance Docker?
Datadog est une plateforme de surveillance et d'analyse basée sur le cloud qui fournit une prise en charge hors-la-box pour les environnements Docker et conteneurisés. Son intégration capture plus de 50 mesures spécifiques Docker automatiquement, y compris l'utilisation du processeur conteneur, de la mémoire, du réseau et du disque, ainsi que des mesures de niveau système de l'hôte.
Les principaux avantages de l'utilisation de Datadog pour la surveillance Docker sont les suivants :
- Découverte automatique et marquage: DatadogS Agent détecte automatiquement les conteneurs en cours d'exécution et les enrichit avec des étiquettes comme le nom du conteneur, l'image et les étiquettes Docker.
- Créer des tableaux de bord personnalisables avec des cartes, des cartes de chaleur et des vues topologiques. Configurer des alertes basées sur des seuils (p. ex., CPU > 80%) ou des anomalies en utilisant l'apprentissage automatique.
- Intégration avec les plateformes d'orchestration:[ Datadog travaille avec Docker Swarm, Kubernetes, Amazon ECS et Azure Container Instances, vous donnant une visibilité constante sur les environnements hybrides.
- Corrélation complète:[ Combiner les mesures Docker avec la surveillance de la performance de l'application (APM), les registres et la performance du réseau pour retracer les problèmes de santé des contenants aux demandes orientées vers l'utilisateur.
- Contenu pré-construit: Datadog fournit des tableaux de bord en sortie de la boîte pour Docker, y compris un aperçu des conteneurs, carte d'hôte et des tableaux de bord de surveillance de processus. Vous pouvez cloner et les personnaliser pour répondre à vos besoins.
Pour les équipes qui utilisent déjà Datadog pour d'autres parties de leur infrastructure, ajouter Docker monitoring est simple et étend les workflows existants sans nécessiter un autre outil.
Configuration de Datadog avec Docker
Préalables
Avant de commencer, assurez-vous d'avoir :
- Un compte Datadog ( signez gratuitement]
- Docker installé sur la machine hôte (version 19.03 ou ultérieure recommandée)
- [Accès réseau aux paramètres d'admission Datadog (généralement
- Votre clé API Datadog (trouvée dans l'interface d'interface Datadog sous Intégrations > API)
Installer l'agent Datadog comme conteneur Docker
La meilleure façon de surveiller les conteneurs Docker est de lancer l'Agent Datadog lui-même comme un conteneur sur l'hôte. L'Agent peut être déployé en utilisant la commande ou dans le cadre d'une pile Docker Compose. Ci-dessous est la commande recommandée:
docker run -d --name datadog-agent \
-e DD_API_KEY=YOUR_API_KEY \
-e DD_SITE="datadoghq.com" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
datadog/agent:latest
Remplacer par votre clé réelle. Les montages de volume fournissent à l'Agent un accès à la socket Docker pour la découverte de conteneur, au système de fichiers proc hosts pour les données de processus et au système de fichiers cgroup pour les paramètres de ressource de conteneur. La variable d'environnement doit correspondre à votre site Datadog (par exemple, pour les clients de l'UE).
Pour les déploiements de production, envisagez d'utiliser Docker Compose ou un Kubernetes DaemonSet si vos conteneurs sont orchestrés. Datadog fournit des cartes Helm officielles pour Kubernetes qui automatisent de nombreuses étapes de configuration.
Configuration de l'Agent via les Variables d'Environnement
Le comportement de Datadog Agent peut être contrôlé par des variables d'environnement.
- – Votre clé API (obligatoire).
- – Site Datadog (par défaut .
- – Importer automatiquement les étiquettes Docker comme étiquettes.
- – Importer des variables d'environnement de conteneur comme tags.
- – Réglé à pour le dépannage.
Vous pouvez également activer des intégrations supplémentaires en configurant pour collecter des logs de conteneurs Docker, ou pour recevoir des traces de mines antipersonnel provenant d'applications conteneurisées.
Vérification de l'installation
Après avoir démarré le conteneur Agent, exécutez pour confirmer qu'il se connecte avec succès à Datadog. Vous devriez voir des messages comme . nfo: sentiry - sentiry est désactivé (si Sentry n'est pas configuré) et . nfo: OK - DataDog agent est en cours d'exécution.. Dans quelques minutes, votre compte Datadog commencera à recevoir les métriques Docker. Naviguez sur la page Infrastructure > Containers] de l'interface utilisateur Datadog pour voir en direct tous les conteneurs en cours d'exécution.
Configuration de la collection Metrics
Mesures Docker automatiques
Une fois l'Agent en marche, il recueille automatiquement un ensemble complet de mesures Docker.
- , ,
- , ,
- ,
- ,
- ,
Ces métriques sont collectées à un intervalle par défaut de 10 secondes. Vous pouvez ajuster l'intervalle en définissant la variable d'environnement ou en modifiant le fichier de configuration principal Agent.
Mesures personnalisées via Docker Checks
Datadog vous permet de définir des vérifications personnalisées pour collecter des métriques spécifiques à une application à partir de conteneurs intérieurs. Par exemple, vous pouvez utiliser une vérification Python personnalisée qui interroge votre application API interne et émet des métriques de jauge ou de nombre. Pour ce faire, montez un répertoire de vérifications personnalisées et vérifiez le fichier Python dans le conteneur Agent:
-v /host/path/to/conf.d:/etc/datadog-agent/conf.d \
-v /host/path/to/checks.d:/etc/datadog-agent/checks.d
Créez ensuite des fichiers de configuration YAML sous et des scripts Python sous . L'Agent va automatiquement découvrir et exécuter ces vérifications. Cette approche est puissante pour surveiller des paramètres comme la profondeur de la file d'attente, la latence de requête ou les connexions actives.
Marquage et enrichissement
Les étiquettes sont l'épine dorsale du modèle de données dimensionnelles Datadog. Sans les étiquettes appropriées, les mesures deviennent du bruit. Datadog marque automatiquement les mesures Docker avec l'hôte, le nom du conteneur, l'image et d'autres attributs. Vous pouvez extend tagner en utilisant des étiquettes Docker ou des variables d'environnement. Par exemple, vous pouvez ajouter pour importer des étiquettes spécifiques comme tags. Cela vous permet de filtrer les conteneurs par équipe, environnement, version d'application ou toute métadonnées personnalisée, permettant une agrégation et une alerte précises.
De plus, vous pouvez configurer l'Agent pour collecter des métriques uniquement pour les conteneurs correspondant à certains noms d'image ou exclure des conteneurs spécifiques en utilisant les variables d'environnement et . Cela réduit le bruit et le coût en ignorant les conteneurs de sidecar ou les conteneurs d'infrastructure.
Affichage des paramètres et création de tableaux de bord
Utilisation des tableaux de bord Docker préconstruits
Datadog fournit plusieurs tableaux de bord hors-de-la-boîte pour Docker : Docker - Overview[, Docker - Container et Docker - Host[. Ces tableaux de bord affichent des paramètres clés comme l'utilisation du CPU, la consommation de mémoire, le débit réseau et les conteneurs supérieurs. Vous pouvez les trouver dans la liste de tableaux de bord sous - -Docker , ou en cherchant dans l'interface utilisateur.
Construction de tableaux de bord personnalisés
Pour créer un tableau de bord adapté à vos services, cliquez sur Nouveau tableau de bord dans Datadog. Ajoutez des widgets tels que des graphiques de séries chronologiques, des tables de requête ou des cartes thermiques.
- Timeseries – CPU et mémoire de parcelle au fil du temps pour des conteneurs ou groupes spécifiques.
- – Afficher les conteneurs avec l'utilisation CPU ou mémoire la plus élevée.
- Modification – Augmentations de la trajectoire des redémarrages de conteneurs ou des E/S du disque.
- Tableau – Affiche une liste de conteneurs avec utilisation actuelle des ressources aux côtés des balises.
Utilisez le langage de requête Datadog=s pour les mesures de portée par tag : par exemple, pour voir l'utilisation moyenne du processeur dans le service frontend en production. Vous pouvez également créer des variables de gabarit qui permettent aux utilisateurs de basculer entre des environnements, des services ou des groupes d'hôtes de manière interactive.
Mise en place des alertes
Dans Datadog, vous pouvez créer des règles de surveillance pour les mesures Docker. Par exemple, créer un moniteur qui avertit lorsque l'utilisation du processeur de conteneur dépasse 85% pendant cinq minutes, ou lorsque l'utilisation de la mémoire approche 90% de sa limite. Utilisez l'onglet Monitor pour définir les conditions et les canaux de notification (email, Slack, PagerDuty, etc.). Pour éviter la fatigue de l'alerte, considérez des moniteurs multi-alertes qui brûlent par conteneur, ou des moniteurs agrégés qui ne déclenchent que lorsque un pourcentage de conteneurs dépasse le seuil.
Les utilisateurs avancés peuvent utiliser des moniteurs de détection d'anomalies [ qui utilisent l'apprentissage automatique pour détecter des comportements inhabituels sans seuils statiques, ce qui est particulièrement utile pour les services à charge variable.
Meilleures pratiques pour la surveillance Docker
1. Utiliser une stratégie d'étiquetage cohérente
Par exemple, utilisez des étiquettes Docker comme , et . Appliquer des conventions d'étiquetage sur votre pipeline CI/CD afin que chaque conteneur soit correctement étiqueté depuis le déploiement.
2. Surveiller à plusieurs niveaux
Don=t ne compte que sur des mesures de niveau conteneur. Combinez-les avec des mesures de niveau hôte (mémoire, disque, CPU) pour comprendre la discorde des ressources entre les conteneurs. De plus, moniteurs de mesures de niveau orchestre si l'utilisation de Kubernetes ou Swarm, comme le statut de pod et la santé du déploiement. Datadog s'intègre avec Kubernetes pour fournir une vue complète de la santé des grappes.
3. Établir des limites de ressources et des alertes en conséquence
Les conteneurs Docker qui ne sont pas limités en ressources peuvent consommer toutes les ressources de l'hôte. Toujours définir les limites de CPU et de mémoire sur vos conteneurs. Configurer ensuite les alertes au feu lorsque l'utilisation approche de la limite (par exemple, à 80% de la limite de mémoire) pour vous donner le temps de répondre avant que le conteneur soit tué par Docker , le tueur OOM.
4. Corrélation des mesures avec les logs et les traces
Une pointe dans l'utilisation du processeur peut être due à un changement de code ou à une augmentation soudaine du trafic. En corrélant les métriques avec les journaux d'application (p. ex., taux d'erreur) et les traces (p. ex., latence de la demande), vous pouvez rapidement identifier les causes de racine. Datadog facilite cette tâche en unifiant les journaux, les métriques et les APM sous une seule plateforme – vous pouvez sauter d'un graphique vers les journaux connexes en un clic.
5. Vérification régulière et harmonisation de votre surveillance
Vos besoins de surveillance évoluent à mesure que vos services augmentent. Consultez périodiquement les tableaux de bord pour supprimer les mesures périmées, ajuster les seuils d'alerte en fonction des données historiques et ajouter de nouvelles mesures pour les fonctionnalités récemment introduites. Utilisez Datadog -Gestion de moniteurs pour trouver des moniteurs bruyants ou inutilisés et soit les archiver ou les affiner.
6. Envisager des pod-conteneurs multiples (Kubernetes)
Si vous lancez des conteneurs dans des pods de Kubernetes, rappelez-vous que plusieurs conteneurs peuvent partager les mêmes pods IP et montures de volume. Datadog marque automatiquement les paramètres avec le nom de pods, l'espace de noms et le nom de conteneur, vous permettant de percer dans des conteneurs individuels dans une pod. Vous pouvez également configurer des alertes au niveau de pods pour détecter des pods malsains.
Capacités avancées de surveillance
Affichage en direct du conteneur
Datadog=1 La fonction de Live Containers fournit une liste interactive en temps réel de tous les conteneurs qui traversent votre infrastructure. Vous pouvez rechercher, filtrer et inspecter chaque conteneur=1 métriques, processus et connexions réseau directement depuis l'interface utilisateur Datadog, sans avoir besoin de SSH dans les hôtes.
Suivi des processus
En montant le système de fichiers hosts , l'Agent Datadog peut collecter des mesures de niveau process à partir de conteneurs intérieurs. Cela vous permet de voir quels processus d'un conteneur consomment du CPU ou de la mémoire. La surveillance du processus est activée par réglage . Utilisez-le pour identifier les processus de comportement erroné lors d'une réponse incidente.
Optimisation des coûts grâce à la responsabilisation
Les mesures historiques peuvent vous aider à actualiser les conteneurs. Les conteneurs sur-provisionnés gaspillent les ressources; les conteneurs sous-provisionnés peuvent causer des problèmes de performance. Utilisez Datadog=s Metrics Explorer[ ou des tableaux de bord pour analyser les tendances d'utilisation des ressources au fil des semaines.
Dépannage de problèmes communs
Agent Impossible de se connecter à Datadog
Si les mesures ne sont pas affichées dans l'interface utilisateur Datadog, vérifiez que le conteneur Agent est en marche et que la clé API est correcte. Exécutez . Les causes courantes incluent les proxies réseau bloquant les connexions sortantes vers , ou un réglage incorrect . Assurez-vous que l'Agent peut atteindre le point de référence en utilisant à partir de l'intérieur du conteneur.
Statistiques manquantes pour des conteneurs spécifiques
Si certains conteneurs ne montrent pas de mesures, vérifiez qu'ils fonctionnent et que l'Agent a accès à la prise Docker. Vérifiez si le conteneur est exclu par le réglage . De plus, confirmez que le conteneur n'est pas un sidecar sans limite de ressources; Datadog peut toujours collecter des mesures mais elles seront proches de zéro. Pour les conteneurs ayant une durée de vie très courte (< 10 secondes), l'Agent pourrait ne pas avoir le temps de collecter des mesures avant qu'ils ne se terminent.
Utilisation de la ressource d'agent de Datadog élevé
L'agent Datadog est conçu pour être léger mais peut devenir une ressource importante si vous collectez de nombreux journaux ou mesures personnalisées. Pour réduire l'impact, limitez la collecte de journaux à seulement les conteneurs nécessaires, augmentez l'intervalle de vérification ou utilisez la variable d'environnement pour désactiver la surveillance des processus à moins que nécessaire.
Pour plus de détails sur le dépannage, consultez Datadog , Docker, Guide de dépannage.
Conclusion
En intégrant Datadog avec Docker, vous offre une vue complète en temps réel sur les performances des conteneurs, essentielle pour maintenir une disponibilité élevée, optimiser les coûts et résoudre rapidement les problèmes. En suivant les étapes de configuration décrites dans ce guide, en configurant des balises et alertes significatives, et en adoptant les meilleures pratiques pour la surveillance, vous pouvez transformer les mesures brutes des conteneurs en informations pratiques. Commencez par déployer l'Agent Datadog comme conteneur Docker, explorer les tableaux de bord pré-construits, et affiner progressivement votre surveillance pour s'aligner sur vos besoins opérationnels spécifiques.