Amazon Linux 또는 Amazon Linux 2를 실행하는 EC2 인스턴스의 콘솔 로그로 사용자 데이터 출력을 전송하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 14일

Amazon EC2(Amazon Elastic Compute Cloud) Linux 인스턴스 부트스트랩 문제를 해결하려고 합니다. 사용자 데이터 호출을 로깅한 다음 콘솔 로그로 전송하려면 어떻게 해야 합니까?

간략한 설명

SSH를 통해 인스턴스에 액세스하지 않고 EC2 인스턴스 부트스트랩의 문제를 해결하려면 모든 출력을 /var/log/user-data.log/dev/console로 리디렉션하는 코드를 사용자 데이터 bash 스크립트에 추가할 수 있습니다. 코드가 실행되면 콘솔에서 사용자 데이터 호출 로그를 볼 수 있습니다.

참고: 이 해결 방법은 Amazon Linux 및 Amazon Linux 2에만 적용됩니다. RHEL 7 또는 RHEL 8을 실행하는 인스턴스에 대한 자세한 내용은 RHEL 7 또는 RHEL 8을 실행하는 EC2 인스턴스의 사용자 데이터를 로깅한 다음 콘솔 로그로 전송하려면 어떻게 해야 합니까? 를 참조하십시오. 

​해결 방법

사용자 데이터 출력 콘솔을 리디렉션하려면 다음 명령을 입력합니다.

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

다음은 사용자 데이터 출력을 리디렉션하는 줄입니다.

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

다음은 샘플 콘솔 출력입니다.

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

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?