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 au bootstrap 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 plus d'informations sur les instances exécutant RHEL 7 ou RHEL 8, consultez la section 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

Entrez 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 plus d'informations, consultez la section 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 console série. Pour plus d'informations, consultez la section Sortie de la console de l'instance.

Informations connexes

Exécuter des commandes au lancement sur votre instance Linuxt

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