Wie kann ich Benutzerdatenausgaben an die Konsolenprotokolle einer EC2-Instance für Amazon Linux 1, Amazon Linux 2 oder Amazon Linux 2023 senden?

Lesedauer: 2 Minute
0

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

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren