Je suis en train de dépanner mon environnement Amazon Elastic Container Service (Amazon ECS) ou d’ouvrir un dossier auprès d’AWS Support, et je dois collecter divers journaux à partir de mes instances de conteneur.
Brève description
Le collecteur de journaux Amazon ECS est un script qui collecte automatiquement les journaux à partir de votre instance de conteneur. Le script collecte les journaux généraux du système d’exploitation ainsi que les journaux des agents de conteneur de Docker et d’Amazon ECS. Le script compresse et archive ensuite les journaux dans un fichier unique que vous pouvez partager lorsque vous résolvez un problème.
Vous pouvez également utiliser le runbook AWSSupport-CollectECSInstanceLogs dans AWS Systems Manager Automation pour collecter des journaux à partir de votre instance ECS. Le runbook vous permet de télécharger les journaux vers un compartiment S3 que vous avez créé. Vous devez indiquer l’emplacement du compartiment S3 dans le paramètre d’entrée LogDestination.
Remarque : AWSSupport-CollectECSInstanceLogs ne prend pas en charge le mode de débogage. Pour plus d’informations, consultez la section Exécuter une automatisation.
Résolution
Téléchargez et exécutez le collecteur de journaux Amazon ECS pour Linux
1. Connectez-vous à votre instance de conteneur.
2. Pour confirmer que curl est installé, exécutez la commande suivante :
curl --version
Le sortie de la commande doit être similaire à ce qui suit :
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Remarque : si la commande ne renvoie pas les résultats attendus, installez le package curl.
3. Pour télécharger le script de collecteur de journaux Amazon ECS, exécutez la commande suivante :
curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh
4. Pour collecter les journaux et créer une archive à l’aide du script, exécutez la commande suivante :
[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh
Après avoir exécuté le script, vous pouvez examiner les journaux collectés dans le dossier de collecte créé par le script. Dans le dossier, vous trouverez le fichier collect.tgz, qui est une archive compressée de tous les journaux.
Exécutez le collecteur de journaux Amazon ECS en mode débogage pour Linux
Si les journaux ne fournissent pas toutes les informations dont vous avez besoin, vous pouvez activer la journalisation du débogage pour le démon Docker et l’agent de conteneur Amazon ECS à l’aide de l’option --mode=enable-debug. Cette option permet au script de collecter les journaux avant d’activer le mode de débogage. Le script redémarre le démon Docker et l’agent Amazon ECS, puis met fin à tous les conteneurs exécutés sur l’instance. Avant d’exécuter la commande suivante, pensez à vider l’instance de conteneur et à déplacer toutes les tâches importantes vers d’autres instances de conteneur. Pour plus d’informations, consultez la section Drainage d’instances de conteneurs.
Pour activer le mode de débogage lorsque vous exécutez le script, exécutez la commande suivante :
[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh --mode=enable-debug
Téléchargez et exécutez le collecteur de journaux Amazon ECS pour Windows
1. Connectez-vous à votre instance de conteneur.
2. Pour télécharger le script, ouvrez Windows PowerShell avec les privilèges d’administrateur, puis exécutez la commande suivante :
Invoke-WebRequest -OutFile ecs-logs-collector.ps1 https://raw.githubusercontent.com/awslabs/aws-ecs-logs-collector-for-windows/master/ecs-logs-collector.ps1
3. Dans la même fenêtre, exécutez le script suivant pour collecter les journaux et créer l’archive :
.\ecs-logs-collector.ps1
après avoir exécuté le script, vous pouvez examiner les journaux collectés dans le dossier de collecte créé par le script. Dans le dossier, vous trouverez le fichier collect.tgz, qui est une archive compressée de tous les journaux.
Exécutez le collecteur de journaux Amazon ECS en mode débogage pour Windows
Si les journaux ne fournissent pas toutes les informations dont vous avez besoin, vous pouvez activer la journalisation du débogage pour le démon Docker et l’agent de conteneur Amazon ECS à l’aide de l’option de débogage -RunMode debug. Cette option permet au script de collecter les journaux avant d’activer le mode de débogage. Le script redémarre le démon Docker et l’agent Amazon ECS, puis met fin à tous les conteneurs exécutés sur l’instance. Avant d’exécuter la commande suivante, pensez à vider l’instance de conteneur et à déplacer toutes les tâches importantes vers d’autres instances de conteneur. Pour plus d’informations, consultez la section Drainage d’instances de conteneurs.
Pour activer le mode de débogage lorsque vous exécutez le script, exécutez la commande suivante à l’aide de Windows PowerShell avec les privilèges d’administrateur :
.\ecs-logs-collector.ps1 -RunMode debug