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

최종 업데이트 날짜: 2021년 2월 4일

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!

참고: 게시된 시스템(콘솔) 로그 출력은 지속적으로 업데이트되지 않습니다. Nitro 시스템에 구축된 인스턴스는 최신 직렬 콘솔 출력의 검색을 지원합니다. 자세한 내용은 인스턴스 콘솔 출력를 참조하세요.


이 문서가 도움이 되었나요?


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