Agent Docker pour Docker, containerd et Podman
Aperçu
L’Agent Docker Datadog est une version de l’Agent Datadog qui prend en charge les runtimes de conteneurs Docker, containerd et Podman. Pour les versions Docker prises en charge, consultez Plateformes prises en charge.
Installez l’Agent Docker Datadog
Suivez le flux d’installation dans l’application Datadog. C’est le flux recommandé, qui vous aide à créer votre docker run commande avec votre clé API, les configurations minimales requises et les options pour diverses fonctionnalités de Datadog.
Exécutez manuellement l’Agent Docker Datadog
Le flux d’automatisation de flotte aide à configurer votre conteneur Agent Datadog avec les instructions recommandées par Datadog. Pour configurer cela manuellement, consultez les exemples ci-dessous.
Utilisez la commande suivante pour exécuter l’Agent en tant que conteneur Docker une fois sur chaque hôte que vous souhaitez surveiller. Remplacez <DATADOG_API_KEY> par votre clé API Datadog et <DATADOG_SITE> par votre .
docker run -d --cgroupns host --pid host --name dd-agent \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_SITE=<DATADOG_SITE> \
-e DD_API_KEY=<DATADOG_API_KEY> \
registry.datadoghq.com/agent:7
L’Agent Datadog est pris en charge sur Windows Server 2019 (LTSC) et Windows Server 2022 (LTSC). La commande PowerShell suivante exécute le conteneur Agent Datadog :
docker run -d --name dd-agent `
-v \\.\pipe\docker_engine:\\.\pipe\docker_engine `
-e DD_SITE=<DATADOG_SITE> `
-e DD_API_KEY=<DATADOG_API_KEY> `
registry.datadoghq.com/agent:7
Remarque : Pour Docker Compose, consultez Compose et l’Agent Datadog. Pour déployer l’Agent dans Podman, consultez les instructions dans Utiliser l’intégration Docker avec le runtime de conteneurs Podman.
Intégrations
Après que l’Agent Docker Datadog soit opérationnel, vous pouvez configurer les intégrations Datadog pour collecter automatiquement des métriques et des journaux de vos conteneurs d’application. L’Autodécouverte de Conteneurs Datadog vous permet de définir une configuration de surveillance pour des ressources dynamiques dans des systèmes conteneurisés.
Options de configuration pour l’Agent Docker Datadog
Registres de conteneurs
Les images sont disponibles pour les architectures 64 bits x86 et Arm v8. Datadog publie des images de conteneurs dans le Registre de Conteneurs Datadog, Google Artifact Registry (GAR), Amazon ECR, Azure ACR et Docker Hub :
| Registry | Path |
|---|
| Datadog Container Registry | registry.datadoghq.com |
| Google Artifact Registry | gcr.io/datadoghq |
| Google Artifact Registry (Europe) | eu.gcr.io/datadoghq |
| Google Artifact Registry (Asia) | asia.gcr.io/datadoghq |
| Amazon ECR | public.ecr.aws/datadog |
| Azure ACR | datadoghq.azurecr.io |
| Docker Hub | docker.io/datadog |
Par défaut, les instructions ci-dessus tirent l’image du Registre de Conteneurs Datadog (registry.datadoghq.com). Si vous utilisez ce registre, assurez-vous que votre pare-feu autorise le trafic vers us-docker.pkg.dev/datadog-prod/public-images, car le registre peut rediriger les demandes vers cette URL.
Docker Hub est soumis à des limites de taux d'extraction d'images. Si vous n'êtes pas client de Docker Hub, Datadog recommande de mettre à jour votre configuration pour extraire depuis un autre registre. Pour les instructions, consultez
Changer votre registre de conteneurs.
Variables d’environnement
Dans un environnement non conteneurisé, les options de configuration pour l’Agent Datadog sont définies dans datadog.yaml. Pour l’Agent Docker Datadog, vous pouvez définir datadog.yaml options de configuration via des variables d’environnement.
Options globales
DD_API_KEY- Votre clé API Datadog (requise).
DD_ENV- Définit le tag global
env pour toutes les données émises. DD_HOSTNAME- Nom d’hôte à utiliser pour les métriques (si l’autodétection échoue).
DD_HOSTNAME_FILE- Dans certains environnements, la détection automatique du nom d’hôte n’est pas adéquate, et vous ne pouvez pas définir la valeur avec des variables d’environnement. Dans ces cas, vous pouvez utiliser un fichier sur l’hôte pour fournir une valeur appropriée. Si
DD_HOSTNAME est défini sur une valeur non vide, cette option est ignorée. DD_TAGS- Tags d’hôte séparés par des espaces. Par exemple:
key1:value1 key2:value2. DD_SITE- Site de destination pour vos métriques, traces et journaux. Définissez votre site Datadog sur :
. Defaults to datadoghq.com. DD_DD_URL- Paramètre optionnel pour remplacer l’URL pour la soumission des métriques.
DD_URL (6.36+/7.36+)- Alias pour
DD_DD_URL. Ignoré si DD_DD_URL est déjà défini. DD_CHECK_RUNNERS- L’Agent exécute toutes les vérifications en parallèle par défaut (valeur par défaut =
4 runners). Pour exécuter les vérifications de manière séquentielle, définissez la valeur sur 1. Si vous devez exécuter un grand nombre de vérifications (ou des vérifications lentes), le composant collector-queue peut prendre du retard et échouer au contrôle de santé. Vous pouvez augmenter le nombre de runners pour exécuter les vérifications en parallèle. DD_APM_ENABLED- Active la collecte de traces. Par défaut, c’est
true. Pour plus d’informations sur les variables d’environnement supplémentaires pour la collecte de traces, consultez Tracing Docker Applications. DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION- Dans certains environnements, les journaux initiaux des hôtes peuvent ne pas inclure les bons tags. Si vous manquez des tags sur de nouveaux hôtes dans vos journaux, incluez cette variable d’environnement et définissez-la sur
"10m".
Paramètres du proxy
À partir de l’Agent v6.4.0 (et v6.5.0 pour l’Agent de trace), vous pouvez remplacer les paramètres de proxy de l’Agent via les variables d’environnement suivantes :
DD_PROXY_HTTP- Une URL HTTP à utiliser comme proxy pour les requêtes
http. DD_PROXY_HTTPS- Une URL HTTPS à utiliser comme proxy pour les requêtes
https. DD_PROXY_NO_PROXY- Une liste d’URL séparées par des espaces pour lesquelles aucun proxy ne doit être utilisé.
Pour plus d’informations sur les paramètres du proxy, consultez la documentation du Proxy de l’Agent v6.
Agents de collecte optionnels
Les agents de collecte optionnels sont désactivés par défaut pour des raisons de sécurité ou de performance. Utilisez ces variables d’environnement pour les activer :
DD_APM_NON_LOCAL_TRAFFIC- Autoriser le trafic non local lors du traçage depuis d’autres conteneurs 11.
DD_LOGS_ENABLED- Activer la collecte de journaux avec l’Agent des Journaux.
DD_PROCESS_CONFIG_PROCESS_COLLECTION_ENABLED- Activer la collecte de processus en direct avec l’Agent des Processus. La vue des conteneurs en direct est déjà activée par défaut si le socket Docker est disponible.
DogStatsD (métriques personnalisées)
Envoyez des métriques personnalisées avec le protocole StatsD :
DD_DOGSTATSD_NON_LOCAL_TRAFFIC- Écoutez les paquets DogStatsD provenant d’autres conteneurs (nécessaire pour envoyer des métriques personnalisées).
DD_HISTOGRAM_PERCENTILES- Les percentiles de l’histogramme à calculer (séparés par des espaces). La valeur par défaut est
0.95. DD_HISTOGRAM_AGGREGATES- Les agrégats de l’histogramme à calculer (séparés par des espaces). La valeur par défaut est
"max median avg count". DD_DOGSTATSD_SOCKET- Chemin vers le socket unix à écouter. Doit être dans un volume
rw monté. DD_DOGSTATSD_ORIGIN_DETECTION- Activer la détection et le marquage des conteneurs pour les métriques de socket UNIX.
DD_DOGSTATSD_TAGS- Tags supplémentaires à ajouter à toutes les métriques, événements et vérifications de service reçus par ce serveur DogStatsD. Par exemple:
"env:golden group:retrievers". DD_USE_DOGSTATSD- Activer ou désactiver l’envoi de métriques personnalisées depuis la bibliothèque DogStatsD.
En savoir plus sur DogStatsD via les sockets de domaine Unix.
Marquage
En tant que meilleure pratique, Datadog recommande d’utiliser le marquage de service unifié lors de l’attribution des tags.
Datadog collecte automatiquement les tags courants de Docker, Kubernetes, ECS, Swarm, Mesos, Nomad et Rancher. Pour extraire encore plus de tags, utilisez les options suivantes :
DD_CONTAINER_LABELS_AS_TAGS- Extraire les étiquettes de conteneur. Cet environnement est équivalent à
DD_DOCKER_LABELS_AS_TAGS. DD_CONTAINER_ENV_AS_TAGS- Extraire les variables d’environnement du conteneur. Cet environnement est équivalent à
DD_DOCKER_ENV_AS_TAGS. DD_COLLECT_EC2_TAGS- Extraire des tags EC2 personnalisés sans utiliser l’intégration AWS.
Consultez la documentation sur l’extraction de tags Docker pour en savoir plus.
Utilisation de fichiers secrets
Les identifiants d’intégration peuvent être stockés dans des secrets Docker ou Kubernetes et utilisés dans des modèles d’Autodécouverte. Pour plus d’informations, consultez la documentation sur la gestion des secrets.
Ignorez les conteneurs
Excluez les conteneurs de la collecte des journaux, de la collecte des métriques et de l’Autodécouverte. Datadog exclut par défaut les conteneurs Kubernetes et OpenShift pause. Ces listes blanches et noires s’appliquent uniquement à l’Autodécouverte ; les traces et DogStatsD ne sont pas affectés. La valeur de ces variables d’environnement prend en charge les expressions régulières.
DD_CONTAINER_INCLUDE- Liste blanche des conteneurs à inclure (séparés par des espaces). Utilisez
.* pour inclure tout. Par exemple: "image:image_name_1 image:image_name_2", image:.* Lorsque vous utilisez des ImageStreams dans des environnements OpenShift, utilisez le nom du conteneur au lieu de l’image. Par exemple: "name:container_name_1 name:container_name_2", name:.* DD_CONTAINER_EXCLUDE- Liste noire des conteneurs à exclure (séparés par des espaces). Utilisez
.* pour exclure tout. Par exemple: "image:image_name_3 image:image_name_4", image:.* (Remarque: Cette variable n’est honorée que pour l’Autodécouverte.) DD_CONTAINER_INCLUDE_METRICS- Liste blanche des conteneurs dont vous souhaitez inclure les métriques.
DD_CONTAINER_EXCLUDE_METRICS- Liste de blocage des conteneurs dont vous souhaitez exclure les métriques.
DD_CONTAINER_INCLUDE_LOGS- Liste d’autorisation des conteneurs dont vous souhaitez inclure les journaux.
DD_CONTAINER_EXCLUDE_LOGS- Liste de blocage des conteneurs dont vous souhaitez exclure les journaux.
DD_AC_INCLUDE- Obsolète. Liste d’autorisation des conteneurs à inclure (séparés par des espaces). Utilisez
.* pour inclure tout. Par exemple: "image:image_name_1 image:image_name_2", image:.* DD_AC_EXCLUDE- Obsolète. Liste de blocage des conteneurs à exclure (séparés par des espaces). Utilisez
.* pour exclure tout. Par exemple : "image:image_name_3 image:image_name_4", image:.* (Remarque : Cette variable n’est prise en compte que pour Autodiscovery.)
Des exemples supplémentaires sont disponibles sur la page Container Discovery Management.
Remarque : Les métriques kubernetes.containers.running, kubernetes.pods.running, docker.containers.running, .stopped, .running.total et .stopped.total ne sont pas affectées par ces paramètres. Tous les conteneurs sont comptés. Cela n’affecte pas votre facturation par conteneur.
Remarque : Lors de l’utilisation de containerd, il est possible d’ignorer les conteneurs par espace de noms en utilisant DD_CONTAINERD_NAMESPACES et DD_CONTAINERD_EXCLUDE_NAMESPACES. Les deux sont une liste d’espaces de noms séparés par des espaces. Lorsque DD_CONTAINERD_NAMESPACES est défini, l’agent rapporte des données pour les conteneurs appartenant à un espace de noms présent dans la liste. Lorsque DD_CONTAINERD_EXCLUDE_NAMESPACES est défini, l’agent rapporte des données pour tous les conteneurs sauf ceux appartenant à un espace de noms de la liste.
Autodiscovery
DD_LISTENERS- Autodiscovery listeners à exécuter.
DD_EXTRA_LISTENERS- Autodiscovery listeners supplémentaires à exécuter. Ils sont ajoutés en plus des variables définies dans la section
listeners du fichier de configuration datadog.yaml. DD_CONFIG_PROVIDERS- Les fournisseurs que l’Agent doit appeler pour collecter les configurations de vérification. Le fournisseur par défaut est
docker. Le fournisseur Docker gère les modèles intégrés dans les étiquettes des conteneurs. DD_EXTRA_CONFIG_PROVIDERS- Fournisseurs de configuration d’autodécouverte supplémentaires à utiliser. Ils sont ajoutés en plus des variables définies dans la section
config_providers du fichier de configuration datadog.yaml.
Divers
DD_PROCESS_AGENT_CONTAINER_SOURCE- Remplace la détection automatique de la source du conteneur pour forcer une seule source. par exemple
"docker", "ecs_fargate", "kubelet". Cela n’est plus nécessaire depuis l’Agent v7.35.0. DD_HEALTH_PORT- Réglez cela sur
5555 pour exposer le contrôle de santé de l’Agent au port 5555.
Commands
Consultez les Agent Commands guides pour découvrir toutes les commandes de l’Agent Docker.
Données collectées
Métriques
Par défaut, l’Agent Docker collecte des métriques avec les vérifications de base suivantes. Pour collecter des métriques d’autres technologies, consultez la section Intégrations.
Événements
L’Agent Docker envoie des événements à Datadog lorsqu’un Agent est démarré ou redémarré.
Vérifications de service
datadog.agent.up
Renvoie CRITICAL si l’Agent ne peut pas se connecter à Datadog, sinon renvoie OK.
datadog.agent.check_status
Renvoie CRITICAL si une vérification de l’Agent ne peut pas envoyer de métriques à Datadog, sinon renvoie OK.
Désinstaller l’instrumentation APM en une seule étape
Si vous avez installé l’Agent Docker Datadog avec l’instrumentation APM en une seule étape, et que vous souhaitez désinstaller l’Agent, vous devez exécuter des commandes supplémentaires pour désinstaller l’instrumentation APM.
Lectures complémentaires
Documentation, liens et articles supplémentaires utiles: