Como posso enviar a saída de dados do usuário para os logs do console em uma instância do EC2 para Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023?

3 minuto de leitura
0

Quero registrar a invocação de dados do usuário e enviá-la para os logs do console na minha instância do Linux do Amazon Elastic Compute Cloud (Amazon EC2).

Breve descrição

Para solucionar problemas no bootstrap da sua instância do EC2 sem precisar acessar a instância por meio de SSH, você pode adicionar código ao script bash de dados do usuário que redireciona toda a saída para /var/log/user-data.log e para /dev/console. Quando o código é executado, você pode ver seus logs de invocação de dados de usuário em seu console.

**Observação:**essa resolução é referente apenas ao Amazon Linux 1, Amazon Linux 2 e Amazon Linux 2023. Para obter informações sobre instâncias que executam o RHEL 7 ou o RHEL 8, consulte How can I send user-data output to the console logs on an EC2 instance running RHEL 7 or RHEL 8? (Como posso enviar a saída de dados de usuário para os logs do console em uma instância do EC2 que executa o RHEL 7 ou o RHEL 8?)

Resolução

Digite o comando a seguir para redirecionar o console de saída de dados do usuário:

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

A seguir está a linha que redireciona a saída de dados do usuário:

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

Por padrão, os scripts de dados do usuário e as diretivas cloud-init são executados somente durante a primeira inicialização, quando uma instância é executada. Para mais informações, consulte Como posso utilizar dados do usuário para executar automaticamente um script em cada reinicialização da minha instância do Linux do Amazon EC2?

Veja a seguir um exemplo de saída do 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!

Observação: a saída publicada do log do sistema (console) não é atualizada continuamente. As instâncias criadas no sistema Nitro suportam a recuperação da última saída do console serial. Para mais informações, consulte Saída do console da instância.

Informações relacionadas

Executar comandos na instância do Linux no lançamento

AWS OFICIAL
AWS OFICIALAtualizada há um ano