Amazon ECS 컨테이너 인스턴스에서 자동으로 로그를 수집하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 환경 문제를 해결하거나 AWS Support에 사례를 개설하는 중인데 컨테이너 인스턴스에서 다양한 로그를 수집해야 합니다. 어떻게 해야 합니까?

간략한 설명

Amazon ECS 로그 수집기는 컨테이너 인스턴스에서 로그를 자동으로 수집하는 스크립트입니다. 이 스크립트는 일반 운영 체제 로그와 도커 및 Amazon ECS 컨테이너 에이전트 로그를 수집합니다. 그런 다음 로그를 압축하여 문제를 해결할 때 공유할 수 있는 단일 파일로 아카이빙합니다.

또한 AWS Systems Manager Automation의 AWSSupport-CollectECSInstanceLogs 런북을 사용하여 ECS 인스턴스에서 로그를 수집할 수 있습니다. 런북을 사용하면 생성한 S3 버킷에 로그를 업로드할 수 있습니다. LogDestination 입력 파라미터에 S3 버킷의 위치를 제공해야 합니다.

참고: AWSSupport-CollectECSInstanceLogs는 디버그 모드를 지원하지 않습니다. 자세한 내용은 자동화 실행을 참조합니다.

해결 방법

Linux에서 Amazon ECS 로그 수집기 다운로드 및 실행

1.    컨테이너 인스턴스에 연결합니다.

2.    다음 명령을 실행하여 curl이 설치되어 있는지 확인합니다.

curl --version

다음과 유사한 명령 출력이 표시됩니다.

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3

참고: 명령 실행 시 예상한 결과가 반환되지 않을 경우 curl 패키지를 설치하십시오.

3.    다음 명령을 실행하여 Amazon ECS 로그 수집기 스크립트를 다운로드합니다.

curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh

4.    스크립트를 사용하여 로그를 수집하고 아카이브를 생성하려면 다음 명령을 실행합니다.

[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh

스크립트를 실행한 후 그 결과로 생성된 collect 폴더에서 수집된 로그를 확인할 수 있습니다. 이 폴더에는 collect.tgz 파일이 있는데, 이 파일이 바로 모든 로그의 압축된 아카이브입니다.

Linux에서 디버그 모드로 Amazon ECS 로그 수집기 실행

로그에 필요한 정보가 없는 경우 --mode=enable-debug 옵션을 사용하여 도커 데몬 및 Amazon ECS 컨테이너 에이전트의 디버그 로깅을 활성화할 수 있습니다. 이 옵션을 사용하면 스크립트가 디버그 모드를 활성화하기 전에 로그를 수집할 수 있습니다. 이 스크립트는 도커 데몬과 Amazon ECS 에이전트를 다시 시작한 후 해당 인스턴스에서 실행 중인 모든 컨테이너를 종료합니다. 다음 명령을 실행하기 전에 컨테이너 인스턴스를 드레이닝하고 중요한 작업을 다른 컨테이너 인스턴스로 이동하는 것이 좋습니다. 자세한 내용은 컨테이너 인스턴스 드레이닝을 참조하십시오.

다음 명령을 실행하여 스크립트 실행 시에 디버그 모드를 활성화합니다.

[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh --mode=enable-debug

Windows에서 Amazon ECS 로그 수집기 다운로드 및 실행

1.    컨테이너 인스턴스에 연결합니다.

2.    관리자 권한으로 Windows PowerShell을 열고 다음 명령을 실행하여 스크립트를 다운로드합니다.

Invoke-WebRequest -OutFile ecs-logs-collector.ps1 https://raw.githubusercontent.com/awslabs/aws-ecs-logs-collector-for-windows/master/ecs-logs-collector.ps1

3.    같은 창에서 다음 스크립트를 실행하여 로그를 수집하고 아카이브를 생성합니다.

.\ecs-logs-collector.ps1

스크립트를 실행한 후 그 결과로 생성된 collect 폴더에서 수집된 로그를 확인할 수 있습니다. 이 폴더에는 collect.tgz 파일이 있는데, 이 파일이 바로 모든 로그의 압축된 아카이브입니다.

Windows에서 디버그 모드로 Amazon ECS 로그 수집기 실행

로그에 필요한 정보가 없는 경우 -RunMode debug 옵션을 사용하여 도커 데몬 및 Amazon ECS 컨테이너 에이전트의 디버그 로깅을 활성화할 수 있습니다. 이 옵션을 사용하면 스크립트가 디버그 모드를 활성화하기 전에 로그를 수집할 수 있습니다. 이 스크립트는 도커 데몬과 Amazon ECS 에이전트를 다시 시작한 후 해당 인스턴스에서 실행 중인 모든 컨테이너를 종료합니다. 다음 명령을 실행하기 전에 컨테이너 인스턴스를 드레이닝하고 중요한 작업을 다른 컨테이너 인스턴스로 이동하는 것이 좋습니다. 자세한 내용은 컨테이너 인스턴스 드레이닝을 참조하십시오.

스크립트를 실행할 때 디버그 모드를 활성화하려면 관리자 권한으로 Windows PowerShell을 사용하여 다음 명령을 실행합니다.

.\ecs-logs-collector.ps1 -RunMode debug

AWS 공식
AWS 공식업데이트됨 6달 전
댓글 없음