Ich möchte den Benutzerdatenaufruf protokollieren und an die Konsolenprotokolle meiner Amazon-Elastic-Compute-Cloud-Linux-Instance (Amazon EC2) senden.
Kurzbeschreibung
Um Probleme beim Bootstrap Ihrer EC2-Instance zu beheben, ohne über SSH auf die Instance zugreifen zu müssen, können Sie Ihrem Benutzerdaten-Bash-Skript einen Code hinzufügen, der die gesamte Ausgabe sowohl an das /var/log/user-data.log als auch an die /dev/console umleitet. Wenn der Code ausgeführt wird, können Sie die Aufrufprotokolle Ihrer Benutzerdaten in Ihrer Konsole sehen.
**Hinweis:**Diese Auflösung gilt nur für Amazon Linux 1, Amazon Linux 2 und Amazon Linux 2023. Informationen zu Instances, auf denen RHEL 7 oder RHEL 8 ausgeführt wird, finden Sie unter Wie kann ich Benutzerdatenausgaben an die Konsolenprotokolle einer EC2-Instance senden, auf der RHEL 7 oder RHEL 8 ausgeführt wird?
Lösung
Geben Sie den folgenden Befehl ein, um die Benutzerdaten-Ausgabekonsole umzuleiten:
#!/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!"
In der folgenden Zeile wird die Benutzerdatenausgabe umgeleitet:
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
Standardmäßig werden Benutzerdaten-Skripts und Cloud-Init-Direktiven nur beim ersten Hochfahren beim Starten einer Instance ausgeführt. Weitere Informationen finden Sie unter Wie kann ich Benutzerdaten verwenden, um bei jedem Neustart meiner Amazon-EC2-Linux-Instance automatisch ein Skript auszuführen?
Im Folgenden finden Sie ein Beispiel für eine Konsolenausgabe:
<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!
**Hinweis:**Die veröffentlichte Systemprotokollausgabe (Konsole) wird nicht kontinuierlich aktualisiert. Instances, die auf dem Nitro-System basieren, unterstützen den Abruf der neuesten seriellen Konsolenausgabe. Weitere Informationen finden Sie unter Instance-Konsolenausgabe.
Weitere Informationen
Führen Sie Start-Befehle beim Hochfahren einer Linux-Instance aus