Come posso inviare l'output dei dati utente ai log della console su un'istanza EC2 per Amazon Linux 1, Amazon Linux 2 o Amazon Linux 2023?

3 minuti di lettura
0

Desidero registrare l'invocazione dei dati utente e inviarla ai log della console sulla mia istanza Linux Amazon Elastic Compute Cloud (Amazon EC2).

Breve descrizione

Per risolvere i problemi con la tua istanza EC2, modifica lo script bash dei dati utente per reindirizzare tutto l'output alla console. Reindirizza l'output sia a /var/log/user-data.log che a /dev/console. Quando lo script viene eseguito, puoi visualizzare i log di invocazione dei dati utente direttamente nella console.

Nota: questa risoluzione è valida solo per Amazon Linux 1, Amazon Linux 2 e Amazon Linux 2023. Per informazioni sulle istanze che eseguono RHEL 7 o RHEL 8, consulta How can I send user-data output to the console logs on an EC2 instance that’s running RHEL? (Come posso inviare l'output dei dati utente ai log della console su un'istanza EC2 che esegue RHEL 7 o RHEL 8?)

Risoluzione

Completa i seguenti passaggi:

  1. Arresta l'istanza.

  2. Scegli Operazioni, quindi Impostazioni istanza, infine scegli Modifica dati utente.

  3. Aggiungi il seguente script, quindi scegli Salva.

    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!"
    
    --//--

    Nota: lo script per reindirizzare l'output dei dati utente inizia con la riga #!/bin/bash -xe. Lo script precedente è costituito da dati di configurazione cloud-init che eseguono uno script di shell ogni volta che l'istanza viene avviata. Per ulteriori informazioni, consulta Come posso utilizzare i dati utente per eseguire automaticamente uno script a ogni riavvio della mia istanza Linux Amazon EC2?Nel comando precedente, la riga seguente reindirizza l'output dei dati utente:

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

    Di seguito è riportato un esempio di output della console da un'istanza Amazon Linux 2023:

    <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!

    Nota: l'output del log di sistema (console) pubblicato non viene aggiornato continuamente. Le istanze basate sul sistema Nitro supportano il recupero dell'ultimo output della console seriale. Per ulteriori informazioni, consulta la sezione Output della console delle istanze.

Informazioni correlate

Esegui comandi all'avvio di un'istanza EC2 con input di dati utente

AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa