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

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

Ändere dein Bash-Skript „user-data“ so, dass alle Ausgaben auf die Konsole umgeleitet werden, um Probleme mit deiner EC2-Instance zu beheben. Leite die Ausgabe sowohl nach /var/log/user-data.log als auch nach /dev/console um. Sobald das Skript ausgeführt wird, kannst du die Protokolle der Benutzerdatenaufrufe direkt in deiner Konsole einsehen.

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, findest du unter Wie kann ich Benutzerdatenausgaben an die Konsolenprotokolle einer EC2-Instance senden, auf der RHEL 7 oder RHEL 8 ausgeführt wird?

Lösung

Führe die folgenden Schritte aus:

  1. Stoppe die Instance.

  2. Wähle Aktionen, Instance-Einstellungen und dann Benutzerdaten bearbeiten aus.

  3. Füge das folgende Skript hinzu und wähle dann Speichern aus.

    Content-Type: multipart/mixed; boundary="//
    "MIME-Version: 1.0
    
    --//
    Content-Type: text/cloud-config; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="cloud-config.txt"
    
    #cloud-config
    cloud_final_modules:
    - [scripts-user, always]
    
    --//
    Content-Type: text/x-shellscript; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="userdata.txt"
    
    #!/bin/bash -xe
    
    exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
    cat /etc/os-release | grep PRETTY_NAME
    echo "Hello from user-data!"
    
    --//--

    Hinweis: Das Skript zur Umleitung der Benutzerdatenausgabe beginnt mit der Zeile #!/bin/bash -xe. Das vorherige Skript ist eine Cloud-Init-Konfigurationsdatei, die bei jedem Start der Instance ein Shell-Skript ausführt. Weitere Informationen findest du unter Wie kann ich Benutzerdaten verwenden, um bei jedem Neustart meiner Amazon-EC2-Linux-Instance automatisch ein Skript auszuführen? Im vorherigen Befehl leitet die folgende Zeile die Benutzerdatenausgabe um:

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

    Es folgt eine Beispiel-Konsolenausgabe einer Amazon Linux 2023-Instance:

    <13>Aug 13 18:43:39 user-data: + cat /etc/os-release
    <13>Aug 13 18:43:39 user-data: + grep PRETTY_NAME
    <13>Aug 13 18:43:39 user-data: PRETTY_NAME="Amazon Linux 2023.5.20240805"
    <13>Aug 13 18:43:39 user-data: + echo 'Hello from user-data!'
    <13>Aug 13 18:43:39 user-data: 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 findest du unter Instance-Konsolenausgabe.

Ähnliche Informationen

Befehle ausführen, wenn du eine EC2-Instance mit Benutzerdateneingabe startest

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 9 Monaten