Comment puis-je envoyer les sorties de données utilisateur aux journaux de console d’une instance EC2 pour Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023 ?

Lecture de 3 minute(s)
0

Je souhaite enregistrer l’invocation de données utilisateur et l’envoyer dans les journaux de la console sur mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2).

Brève description

Pour résoudre les problèmes liés à l’amorçage de votre instance EC2 sans avoir à accéder à l’instance via SSH, vous pouvez ajouter du code à votre script bash de données utilisateur qui redirige toutes les sorties à la fois vers le fichier /var/log/user-data.log et vers /dev/console. Lorsque le code s’exécute, vous pouvez consulter les journaux d’invocation des données utilisateur dans votre console.

Remarque : cette résolution concerne uniquement Amazon Linux 1, Amazon Linux 2 et Amazon Linux 2023. Pour en savoir plus sur les instances exécutant RHEL 7 ou RHEL 8, consultez la page Comment envoyer les sorties de données utilisateur aux journaux de la console sur une instance EC2 exécutant RHEL 7 ou 8 ?

Résolution

Saisissez la commande suivante pour rediriger la console de sortie des données utilisateur :

#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
  yum -y update
  echo "Hello from user-data!"

Voici la ligne qui redirige la sortie des données utilisateur :

exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1

Par défaut, les scripts de données utilisateur et les directives cloud-init sont exécutés uniquement lors du premier démarrage d’une instance. Pour en savoir plus, consultez la page Comment puis-je utiliser des données utilisateur pour exécuter automatiquement un script à chaque redémarrage de mon instance Linux Amazon EC2 ?

Voici un exemple de sortie de console :

<13>Nov 13 13:49:59 user-data:   amazon-ssm-agent.x86_64 0:2.3.228.0-1.amzn2
<13>Nov 13 13:49:59 user-data:   irqbalance.x86_64 2:1.5.0-2.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   kernel-tools.x86_64 0:4.14.77-80.57.amzn2
<13>Nov 13 13:49:59 user-data:   kmod.x86_64 0:25-3.amzn2.0.2
<13>Nov 13 13:49:59 user-data:   kmod-libs.x86_64 0:25-3.amzn2.0.2
<13>Nov 13 13:49:59 user-data:   lz4.x86_64 0:1.7.5-2.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   nss.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   nss-sysinit.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   nss-tools.x86_64 0:3.36.0-7.amzn2
<13>Nov 13 13:49:59 user-data:   openssl.x86_64 1:1.0.2k-16.amzn2.0.1
<13>Nov 13 13:49:59 user-data:   openssl-libs.x86_64 1:1.0.2k-16.amzn2.0.1
<13>Nov 13 13:49:59 user-data:
<13>Nov 13 13:49:59 user-data: Complete!
<13>Nov 13 13:49:59 user-data: + echo 'Hello from user-data!

Remarque : la sortie du journal système (console) publiée n’est pas mise à jour en permanence. Les instances basées sur le système Nitro permettent de récupérer la dernière sortie de la console de série. Pour en savoir plus, consultez la page Sortie de la console d’instance.

Informations connexes

Exécuter des commandes au moment du lancement sur votre instance Linux

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans