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

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 환경 문제를 해결하거나 AWS Support에 케이스를 개설하고 있는데 컨테이너 인스턴스에서 다양한 로그를 수집해야 합니다.

간략한 설명

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

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

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

해결 방법


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

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

  1. 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 패키지를 설치합니다.

  1. Amazon ECS 로그 수집기 스크립트를 다운로드하려면 다음 명령을 실행합니다.
curl -O https://raw.githubusercontent.com/awslabs/ecs-logs-collector/master/ecs-logs-collector.sh
  1. 로그를 수집하고 스크립트가 포함된 아카이브를 생성하려면 다음 명령을 실행합니다.
[ec2-user ~]$ sudo bash ./ecs-logs-collector.sh

스크립트를 실행한 후 스크립트에 의해 생성된 collect 폴더에서 수집된 로그를 검사할 수 있습니다. 이 폴더에서 모든 로그의 압축된 아카이브인 collect.tgz 파일을 찾을 수 있습니다.

Linux용 디버그 모드에서 Amazon ECS 로그 수집기를 실행합니다.

로그가 필요한 모든 정보를 제공하지 않는 경우 --mode=enable-debug 옵션을 사용하여 Docker 대몬(daemon) 및 Amazon ECS 컨테이너 에이전트에 대한 디버그 로깅을 설정할 수 있습니다. 이 옵션을 사용하면 스크립트가 디버그 모드를 켜기 전에 로그를 수집할 수 있습니다. 이 스크립트는 Docker 데몬과 Amazon ECS 에이전트를 다시 시작한 다음 인스턴스에서 실행 중인 모든 컨테이너를 종료합니다. 다음 명령을 실행하기 전에 컨테이너 인스턴스를 비우고 중요한 작업을 다른 컨테이너 인스턴스로 이동하는 것을 고려하세요. 자세한 내용은 컨테이너 인스턴스 드레이닝을 참조하세요.

스크립트를 실행할 때 디버그 모드를 켜려면 다음 명령을 실행합니다.

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

Windows용 Amazon ECS 로그 수집기를 다운로드하여 실행합니다.

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

  1. 스크립트를 다운로드하려면 관리자 권한으로 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
  1. 같은 창에서 다음 스크립트를 실행하여 로그를 수집하고 아카이브를 생성합니다.
.\ecs-logs-collector.ps1

스크립트를 실행한 후 스크립트에 의해 생성된 collect 폴더에서 수집된 로그를 검사할 수 있습니다. 이 폴더에서 모든 로그의 압축된 아카이브인 collect.tgz 파일을 찾을 수 있습니다.

Windows용 디버그 모드에서 Amazon ECS 로그 수집기를 실행합니다.

로그가 필요한 모든 정보를 제공하지 않는 경우 -RunMode debug 옵션을 사용하여 Docker 대몬(daemon) 및 Amazon ECS 컨테이너 에이전트에 대한 디버그 로깅을 설정할 수 있습니다. 이 옵션을 사용하면 스크립트가 디버그 모드를 켜기 전에 로그를 수집할 수 있습니다. 이 스크립트는 Docker 데몬과 Amazon ECS 에이전트를 다시 시작한 다음 인스턴스에서 실행 중인 모든 컨테이너를 종료합니다. 다음 명령을 실행하기 전에 컨테이너 인스턴스를 비우고 중요한 작업을 다른 컨테이너 인스턴스로 이동하는 것을 고려하세요. 자세한 내용은 컨테이너 인스턴스 드레이닝을 참조하세요.

스크립트를 실행할 때 디버그 모드를 켜려면 관리자 권한이 있는 Windows PowerShell을 사용하여 다음 명령을 실행합니다.

.\ecs-logs-collector.ps1 -RunMode debug
AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠