Amazon ECS est un service d’orchestration de conteneurs évolutif et à hautes performances qui prend en charge les conteneurs Docker. Grâce à l’Agent Datadog, vous pouvez surveiller des conteneurs et tâches ECS sur chaque instance EC2 de votre cluster.
Pour surveiller vos conteneurs et tâches ECS, déployez l’Agent Datadog en tant que conteneur une fois sur chaque instance EC2 de votre cluster ECS. Pour cela, créez une définition de tâche pour le conteneur de l’Agent Datadog et déployez-le en tant que service daemon. Chaque conteneur d’Agent Datadog surveille alors les autres conteneurs sur son instance EC2 respective.
Les instructions suivantes supposent que vous avez déjà configuré un cluster EC2. Consultez la documentation Amazon ECS pour découvrir comment créer un cluster.
Remarque : la fonction Autodiscovery de Datadog peut être utilisée avec ECS et Docker afin de découvrir et de surveiller automatiquement les tâches s’exécutant dans votre environnement.
Cette définition de tâche ECS lance le conteneur de l’Agent Datadog avec les configurations nécessaires. Pour modifier la configuration de l’Agent, modifiez la définition de cette tâche et redéployez le service daemon. Vous pouvez configurer la définition de cette tâche à l’aide de la console de gestion AWS ou de l’interface de ligne de commande AWS.
L’exemple suivant montre comment effectuer une surveillance générale de l’infrastructure avec une configuration minimale. Toutefois, si vous souhaitez découvrir d’autres exemples de définition de tâche où diverses fonctionnalités sont activées, consultez la section Configurer les fonctionnalités supplémentaires de l’Agent.
These files provide minimal configuration for core infrastructure monitoring. For more sample task definition files with various features enabled, see the Set up additional Agent features section on this page.
Modifier le fichier de définition de tâche de base
Une fois votre fichier de définition de tâche créé, exécutez la commande suivante afin d’enregistrer le fichier dans AWS.
aws ecs register-task-definition --cli-input-json file://<chemin vers datadog-agent-ecs.json>
Une fois votre fichier de définition de tâche créé, utilisez la console AWS pour l’enregistrer.
Connectez-vous à votre console AWS et accédez à la section Elastic Container Service.
Sélectionnez Task Definitions dans le volet de navigation. Depuis le menu Create new task definition, sélectionnez Create new task definition with JSON.
Dans la zone de l’éditeur JSON, collez le contenu du fichier de définition de votre tâche.
Les fichiers de définition de tâche fournis à la section précédente sont basiques. Ils déploient un conteneur d’Agent avec une configuration simplifiée permettant de recueillir des métriques générales à propos des conteneurs de votre cluster ECS. L’Agent peut également exécuter des intégrations d’Agent basées sur des étiquettes Docker découvertes sur vos conteneurs.
Si vous utilisez DogStatsD, modifiez la définition du conteneur de l’Agent Datadog afin d’ajouter le mappage du port du host pour 8125/udp et de définir la variable d’environnement DD_DOGSTATSD_NON_LOCAL_TRAFFIC sur true :
Cette configuration permet au trafic DogStatsD d’être acheminé depuis les conteneurs d’application jusqu’au conteneur de l’Agent Datadog en passant par le host et le port du host. Toutefois, le conteneur d’application doit utiliser l’adresse IP privée du host pour ce trafic. Pour ce faire, définissez la variable d’environnement DD_AGENT_HOST sur l’adresse IP privée de l’instance EC2, qui peut être récupérée depuis le système Instance Metadata Service (IMDS). Une autre solution consiste à définir l’adresse sous forme de code lors de l’initialisation. L’implémentation pour DogStatsD est la même que pour APM. Consultez la rubrique Configurer l’endpoint de l’Agent de trace pour obtenir des exemples de configuration de l’endpoint de l’Agent.
Assurez-vous que les paramètres des groupes de sécurité sur vos instances EC2 n’exposent pas publiquement les ports pour APM et DogStatsD.
Pour recueillir des informations sur les live processes pour l’ensemble de vos conteneurs, et les envoyer à Datadog, définissez la variable d’environnement DD_PROCESS_AGENT_ENABLED dans la définition de votre tâche :
Pour l’Agent 6.10 et les versions ultérieures, le mode awsvpc est pris en charge par les conteneurs d’application, tant que les groupes de sécurité autorisent le groupe de sécurité de l’instance de host de se connecter aux conteneurs d’application sur les ports concernés.
Vous pouvez exécuter l’Agent en mode awsvpc. Toutefois, Datadog vous le déconseille, car il serait difficile de récupérer l’IP de l’interface réseau Elastic (ENI) afin d’accéder à l’Agent pour les métriques DogStatsD et les traces APM. Exécutez plutôt l’Agent en mode bridge avec un mappage de port, afin de pouvoir récupérer plus facilement l’adresse IP du host via le serveur de métadonnées.
Cette fonctionnalité est uniquement disponible sous Linux.
Pour envoyer des données à Datadog pour le site gouvernemental, ajoutez le conteneur de sidecar fips-proxy et ouvrez les ports du conteneur afin que les fonctionnalités prises en charge fonctionnent correctement.