L’Agent Datadog 6 et ultérieur recueille des logs à partir des conteneurs. Pour recueillir des logs à partir des conteneurs ECS, il est recommandé d’activer la journalisation conteneurisée dans le fichier datadog-agent-ecs.json
ou datadog-agent-ecs1.json
. Cependant, si votre application génère des logs dans des fichiers de n’importe quelle capacité (logs qui ne sont pas écrits dans stdout
ou stderr
), il vous faudra déployer l’Agent Datadog sur votre host et utiliser la collecte de logs personnalisée pour suivre les fichiers.
Pour recueillir tous les logs écrits par des applications s’exécutant dans vos conteneurs ECS et les envoyer à votre application Datadog :
Suivez les instructions de configuration pour Amazon ECS.
Modifiez votre fichier datadog-agent-ecs.json (datadog-agent-ecs1.json si vous utilisez une AMI Amazon Linux d’origine) avec la configuration suivante :
{
"containerDefinitions": [
(...)
"mountPoints": [
(...)
{
"containerPath": "/opt/datadog-agent/run",
"sourceVolume": "pointdir",
"readOnly": false
},
(...)
],
"environment": [
(...)
{
"name": "DD_LOGS_ENABLED",
"value": "true"
},
{
"name": "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL",
"value": "true"
},
(...)
]
}
],
"volumes": [
(...)
{
"host": {
"sourcePath": "/opt/datadog-agent/run"
},
"name": "pointdir"
},
(...)
],
"family": "datadog-agent-task"
}
Assurez-vous que votre définition de conteneur ne contient pas de paramètre logConfiguration.logDriver
de façon à ce que les logs soient écrits dans stdout/stderr
et recueillis par l’Agent. Si ce paramètre est défini sur awslogs
, recueillez vos logs Amazon ECS sans l’Agent, en utilisant AWS Lambda pour effectuer la collecte à partir de CloudWatch.
Suivez les instructions de configuration pour Amazon ECS.
Modifiez votre fichier datadog-agent-ecs-win.json avec la configuration suivante :
{
"containerDefinitions": [
(...)
"environment": [
(...)
{
"name": "DD_LOGS_ENABLED",
"value": "true"
},
{
"name": "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL",
"value": "true"
},
(...)
]
}
],
"family": "datadog-agent-task"
}
Assurez-vous que votre définition de conteneur ne contient pas de paramètre logConfiguration.logDriver
de façon à ce que les logs soient écrits dans stdout/stderr
et recueillis par l’Agent. Si ce paramètre est défini sur awslogs
, recueillez vos logs Amazon ECS sans l’Agent, en utilisant AWS Lambda pour effectuer la collecte à partir de CloudWatch.
Si votre conteneur écrit des logs dans des fichiers, consultez la section Collecte de logs personnalisée pour suivre les fichiers de logs.
Pour rassembler les logs de votre application <NOM_APP>
stockés dans <CHEMIN_FICHIER_LOG>/<NOM_FICHIER_LOG>.log
, créez un fichier <NOM_APP>.d/conf.yaml
à la racine du répertoire de configuration de votre Agent avec le contenu suivant :
logs:
- type: file
path: "<CHEMIN_FICHIER_LOG>/<NOM_FICHIER_LOG>.log"
service: "<NOM_APP>"
source: "<SOURCE>"
Remarque : les métadonnées du conteneur ne sont pas récupérées via la collecte de logs personnalisée. Par conséquent, l’Agent n’attribue pas automatiquement de tag aux logs. Utilisez des tags personnalisés pour créer des tags de conteneur.
L’attribut source
est utilisé pour identifier l’intégration à utiliser pour chaque conteneur. Contournez-le directement dans vos étiquettes de conteneurs pour commencer à recueillir les logs d’une intégration. Lisez notre guide sur l’utilisation d’Autodiscovery pour les logs pour en savoir plus sur ce processus.
Documentation, liens et articles supplémentaires utiles: