Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Agent Docker

Présentation

L’Agent Docker Datadog est la version conteneurisée de l’Agent pour host. L’image Docker officielle est disponible sur Docker Hub.

Implémentation

Si vous n’avez pas installé l’Agent Docker, consultez les informations ci-dessous ou les instructions d’installation intégrées à l’application. Consultez la documentation de l’Agent pour connaître les versions prises en charge.

Installation

Utilisez la commande d’installation en une étape. Remplacez <VOTRE_CLÉ_API_DATADOG> par votre clé d’API Datadog.

DOCKER_CONTENT_TRUST=1 \
docker run -d -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_API_KEY=<VOTRE_CLÉ_API_DATADOG> \
              datadog/agent:latest
DOCKER_CONTENT_TRUST=1 \
docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro \
                              -v /proc/:/host/proc/:ro \
                              -v /cgroup/:/host/sys/fs/cgroup:ro \
                              -e DD_API_KEY=<VOTRE_CLÉ_API_DATADOG> \
                              datadog/agent:latest

Configuration

Le fichier de configuration principal de l’Agent est datadog.yaml. Pour l’Agent Docker, les options de configuration datadog.yaml sont envoyées via des variables d’environnement.

Variables d’environnement

Options globales
Variable d’environnementDescription
DD_API_KEYVotre clé d’API Datadog (obligatoire).
DD_HOSTNAMELe hostname à utiliser pour les métriques (si la détection automatique échoue).
DD_TAGSTags de host séparés par des espaces. Exemple : tag-simple-0 clé-tag-1:valeur-tag-1.
DD_SITELe site auquel vous transmettez vos métriques, traces et logs. Vous pouvez choisir entre datadoghq.com pour le site américain de Datadog et datadoghq.eu pour le site européen.
Agents de collecte facultatifs

Par défaut, les Agents de collecte facultatifs sont désactivés pour des raisons de sécurité et de performances. Utilisez les variables d’environnement suivantes pour les activer :

Variable d’environnementDescription
DD_APM_ENABLEDActive la collecte de traces avec l’Agent de trace.
DD_LOGS_ENABLEDActive la collecte de logs avec l’Agent de logs.
DD_PROCESS_AGENT_ENABLEDActive la collecte de live processes dans l’Agent de processus. Par défaut, la vue Live Container est déjà activée si le socket Docker est disponible. Si défini sur false, la collecte de live processes et la vue Live Container sont désactivées.
DogStatsD (métriques custom)

Envoie des métriques custom avec le protocole StatsD :

Variable d’environnementDescription
DD_DOGSTATSD_NON_LOCAL_TRAFFICEffectue une écoute de paquets DogStatsD à partir d’autres conteneurs (requis pour envoyer des métriques custom).
DD_HISTOGRAM_PERCENTILESLes centiles de l’histogramme à calculer (séparés par des espaces). Valeur par défaut : « 0.95 ».
DD_HISTOGRAM_AGGREGATESLes agrégations d’histogramme à calculer (séparées par des espaces). Valeur par défaut : « max median avg count ».
DD_DOGSTATSD_SOCKETChemin vers le socket Unix à écouter. Doit être dans le volume rw monté.
DD_DOGSTATSD_ORIGIN_DETECTIONActive la détection de conteneurs et l’ajout de tags pour les métriques de socket Unix.

En savoir plus sur l’utilisation de DogStatsD sur un socket de domaine Unix.

Tagging

Datadog recueille automatiquement les tags courants de Docker, Kubernetes, ECS, Swarm, Mesos, Nomad et Rancher. Pour extraire davantage de tags, utilisez les options suivantes :

Variable d’environnementDescription
DD_DOCKER_LABELS_AS_TAGSExtrait les étiquettes de conteneur Docker
DD_DOCKER_ENV_AS_TAGSExtrait les variables d’environnement de conteneur Docker
DD_KUBERNETES_POD_LABELS_AS_TAGSExtrait les étiquettes de pod
DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGSExtrait les annotations de pod
DD_COLLECT_EC2_TAGSExtrait les tags EC2 personnalisés sans utiliser l’intégration AWS

La clé de carte correspond au nom de la source (label/envvar), tandis que sa valeur correspond au nom du tag Datadog, par exemple :

DD_KUBERNETES_POD_LABELS_AS_TAGS='{"app":"kube_app","release":"helm_release"}'
DD_DOCKER_LABELS_AS_TAGS='{"com.docker.compose.service":"service_name"}'

Des exemples supplémentaires sont disponibles sur la page Appliquer et Extraire des tags.

Ignorer des conteneurs

Excluez des conteneurs de la collecte de logs, de la collecte de métriques et d’Autodiscovery. Par défaut, Datadog exclut les conteneurs pause de Kubernetes et d’OpenShift.

Variable d’environnementDescription
DD_AC_INCLUDEListe des conteneurs à inclure (séparés par des espaces). Utilisez .* pour les inclure tous. Exemple : "image:nom_image_1 image:nom_image_2", image:.*
DD_AC_EXCLUDEListe des conteneurs à exclure (séparés par des espaces). Utilisez .* pour les exclure tous. Exemple : "image:nom_image_3 image:nom_image_4". (Remarque : cette variable est seulement traitée pour Autodiscovery.), image:.*

Des exemples supplémentaires sont disponibles sur la page Gestion de la découverte de conteneurs.

Remarque : ces paramètres n’ont aucun effet sur les métriques docker.containers.running, .stopped, .running.total et .stopped.total. L’ensemble des conteneurs est pris en compte. Cela n’a aucune incidence sur le nombre de conteneurs facturés.

Divers
Variable d’environnementDescription
DD_PROCESS_AGENT_CONTAINER_SOURCERemplace la détection automatique des sources de conteneurs par une source unique, comme "docker", "ecs_fargate" ou "kubelet"
DD_HEALTH_PORTDéfinir cette variable sur 5555 pour exposer le check de santé de l’Agent sur le port 5555.

Validation

Exécutez la commande status de l’Agent Docker pour vérifier l’installation.

Commandes

Ces commandes sont exécutées sur le host.

TypeCommandes
DémarrerUtilisez la commande d’installation.
Arrêterdocker exec -it <NOM_CONTENEUR> agent stop
RedémarrerUtilisez la commande d’installation.
Statutdocker exec -it <NOM_CONTENEUR> agent status

Données collectées

Métriques

Par défaut, l’Agent Docker recueille les métriques associées aux checks principaux suivants. Pour recueillir les métriques associées à d’autres technologies, consultez la section Intégrations.

CheckMétriques
CPUSystem
DiskDisk
DockerDocker
File HandleSystem
IOSystem
LoadSystem
MemorySystem
NetworkNetwork
NTPNTP
UptimeSystem

Événements

L’Agent Docker envoie des événements à Datadog lorsqu’un Agent est démarré ou redémarré.

Checks de service

datadog.agent.up :
Renvoie CRITICAL si l’Agent n’est pas capable de se connecter à Datadog. Si ce n’est pas le cas, renvoie OK.

datadog.agent.check_status :
Renvoie CRITICAL si un check de l’Agent n’est pas capable d’envoyer des métriques à Datadog. Si ce n’est pas le cas, renvoie OK.

Intégrations

L’intégration Docker envoie automatiquement des métriques avec l’Agent Docker. Pour configurer d’autres intégrations, utilisez Autodiscovery ou le montage.

Autodiscovery

Pour activer Autodiscovery sur l’Agent Docker lorsque vous utilisez l’installation en une étape, montez /var/run/docker.sock.

Pour ajouter des intégrations avec Autodiscovery, consultez la page Modèles d’intégration Autodiscovery.

Monter conf.d

Les fichiers de configuration de votre intégration peuvent être copiés dans /etc/datadog-agent/conf.d/ lorsque l’Agent Docker démarre en montant un répertoire /conf.d.

  1. Créez un répertoire de configuration sur le host avec vos fichiers YAML :

    mkdir /opt/datadog-agent-conf.d
    touch /opt/datadog-agent-conf.d/http_check.yaml
  2. Lors de l’installation de l’Agent Docker, ajoutez -v /opt/datadog-agent-conf.d:/conf.d:ro, par exemple :

    DOCKER_CONTENT_TRUST=1 \
    docker run -d -v /var/run/docker.sock:/var/run/docker.sock:ro \
                  -v /proc/:/host/proc/:ro \
                  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
                  -v /opt/datadog-agent-conf.d:/conf.d:ro \
                  -e DD_API_KEY=<YOUR_DATADOG_API_KEY> \
                  datadog/agent:latest

Lorsque le conteneur démarre, tous les fichiers sur le host dans /opt/datadog-agent-conf.d qui possèdent l’extension .yaml sont copiés vers /etc/datadog-agent/conf.d/. Remarque : si vous ajoutez de nouveaux fichiers YAML dans /opt/datadog-agent-conf.d, redémarrez l’Agent Docker.

Il en va de même pour le dossier /checks.d. Tous les fichiers Python du dossier /checks.d sont automatiquement copiés vers /etc/datadog-agent/checks.d/ lorsque l’Agent Docker démarre.

Pour aller plus loin