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 !

Utiliser Autodiscovery avec Kubernetes et Docker

Démarrage rapide

Cette page aborde la fonctionnalité Autodiscovery avec l’Agent version 6 uniquement. Reportez-vous à la documentation dédiée afin de configurer Autodiscovery avec l’Agent version 5.

Cette vidéo de 5 minutes (en anglais) offre une présentation générale de la fonction Autodiscovery avec l’Agent Datadog v6.

Fonctionnement

Dans un environnement traditionnel sans conteneur, la configuration de l’Agent Datadog est statique, tout comme l’environnement dans lequel il fonctionne. L’Agent analyse les fichiers de configuration des checks au démarrage, et il exécute continuellement chaque check configuré aussi longtemps qu’il s’exécute. Les fichiers de configuration sont statiques, et les options réseau configurées dans ces fichiers servent à identifier les instances spécifiques d’un certain service surveillé (p. ex., une instance Redis sur 10.0.0.61:6379). Lorsqu’un check de l’Agent ne parvient pas à se connecter au service en question, les métriques ne sont pas recueillies jusqu’au dépannage du problème. Le check de l’Agent répète ses tentatives de connexion jusqu’à ce qu’un administrateur rétablisse le service surveillé ou répare la configuration du check.

Une fois la fonctionnalité Autodiscovery activée, l’Agent exécute les checks différemment.

Le fonctionnement général de la fonction Autodiscovery de l’Agent Datadog est le suivant :

  1. Création et chargement du modèle d’intégration : lorsque l’Agent démarre avec Autodiscovery activé, il charge les modèles d’intégration ainsi que les identifiants de conteneur Autodiscovery depuis l’ensemble des sources disponibles. Les fichiers de configuration statiques ne conviennent pas aux checks qui recueillent des données en provenance d’endpoints réseau qui changent constamment, comme le host ou les ports. Autodiscovery utilise donc des Template Variables pour la configuration du modèle d’intégration. Ces configurations de modèle d’intégration peuvent être chargées dans l’Agent de quatre façons différentes :

  2. Application d’un modèle d’intégration à un conteneur spécifique : contrairement à une implémentation classique de l’Agent, l’Agent n’exécute pas tous les checks tout le temps : il détermine les checks à activer en examinant les conteneurs exécutés sur le même host que l’Agent et les modèles d’intégration chargés correspondants. L’Agent recherche alors les événements Kubernetes/Docker (création, destruction, démarrage et arrêt de conteneur) avant d’activer, de désactiver et de régénérer les configurations de check statiques lors de ces événements. Lorsque l’Agent inspecte les conteneurs en cours d’exécution, il vérifie si chaque conteneur correspond à l’un des identifiants de conteneur Autodiscovery présents dans les modèles d’intégration chargés. À chaque correspondance, l’Agent génère une configuration de check statique en remplaçant les Template Variables par les valeurs spécifiques du conteneur correspondant. Il active ensuite le check avec la configuration statique.

Configuration

Si vous exécutez l’Agent en tant que binaire sur un host, activez Autodiscovery en suivant les instructions de l’onglet Agent Host. Si vous exécutez l’Agent en tant que conteneur, activez Autodiscovery en suivant les instructions de l’onglet Agent conteneurisé.

Autodiscovery avec Docker

Pour activer Autodiscovery sur les conteneurs Docker, ajoutez le bloc de configuration suivant dans le fichier de configuration datadog.yaml de l’Agent :

listeners:
  - name: docker
config_providers:
  - name: docker
    polling: true

Pour activer automatiquement Autodiscovery sur les conteneurs Docker, montez /var/run/docker.sock dans l’Agent conteneurisé.

Autodiscovery avec Kubernetes

Pour activer Autodiscovery sur les conteneurs dans Kubernetes, ajoutez le bloc de configuration suivant dans le fichier de configuration datadog.yaml de l’Agent :

listeners:
  - name: kubelet
config_providers:
  - name: kubelet
    polling: true
  # nécessaire pour prendre en charge les anciens modèles de configuration d'étiquette docker
  - name: docker
    polling: true

Pour activer Autodiscovery sur les conteneurs dans Kubernetes, ajoutez la variable d’environnement suivante lors du démarrage de l’Agent conteneurisé :

KUBERNETES=true

Remarque : pour les utilisateurs de Kubernetes, une intégration CRI et une intégration CRI-O sont disponibles.

Autodiscovery avec ECS Fargate

ECS Fargate ne peut pas être surveillé lorsque l’Agent Datadog est exécuté en tant que binaire sur un host. Consultez les instructions de l’onglet Agent conteneurisé.

Pour activer Autodiscovery sur les conteneurs dans ECS Fargate, ajoutez la variable d’environnement suivante lors du démarrage de l’Agent conteneurisé :

ECS_FARGATE=true

Pour aller plus loin