Amazon ECS 컨테이너 로그가 Amazon CloudWatch Logs로 전송되지 않은 이유는 무엇입니까?

3분 분량
0

Amazon CloudWatch Logs에서 Amazon Elastic Container Service(Amazon ECS)의 컨테이너 서비스 작업을 찾을 수 없습니다.

간략한 설명

다음 이유 중 하나 이상으로 인해 Amazon ECS 컨테이너 로그가 CloudWatch 로그로 전송되지 않습니다.

  • awslogs 로그 드라이버가 Amazon ECS 작업 정의에서 올바르게 구성되지 않았습니다.
  • AWS Identity and Access Management(IAM) 역할에 필요한 권한이 없습니다.
  • 네트워킹 구성에 문제가 있습니다.
  • 컨테이너의 로그 수준이 올바르게 구성되지 않았습니다.

해결 방법

awslogs 로그 드라이버가 제대로 구성되지 않았습니다.

  • 컨테이너 로그 정보를 CloudWatch Logs로 전송하려면 작업의 컨테이너를 올바르게 구성해야 합니다. 컨테이너에 대한 파라미터를 정의할 때 logConfiguration 파라미터를 올바르게 구성했는지 확인하십시오. Amazon ECS 작업 정의에 여러 컨테이너가 포함된 경우 각 컨테이너에 대해 이 파라미터를 구성해야 합니다.
  • 작업 정의의 logConfiguration 파라미터에 awslogs 로그 드라이버를 추가했는지 확인합니다.
  • Amazon Elastic Compute Cloud(Amazon EC2) 시작 유형의 경우 다음 추가 확인을 수행합니다.
  • Amazon ECS 컨테이너 인스턴스에 최소 1.9.0 버전의 컨테이너 에이전트가 포함되었는지 확인합니다. 에이전트 버전을 확인하고 최신 버전으로 업데이트하는 방법에 대한 자세한 내용은 Amazon ECS 컨테이너 에이전트 업데이트 단원을 참조하십시오.
  • 컨테이너 인스턴스에 Amazon ECS 최적화 AMI를 사용하지 않는 경우 다음 환경 변수를 사용하여 에이전트를 시작할 때 컨테이너 인스턴스에 awslogs 로그 드라이버가 지정되어 있는지 확인합니다. 자세한 내용은 Amazon ECS 컨테이너 에이전트 설치 단원을 참조하십시오.
ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

IAM 역할에 필요한 권한이 없습니다.

  • Amazon ECS 컨테이너 인스턴스의 IAM 역할에 logs:CreateLogStreamlogs:PutLogEvents 권한이 있는지 확인합니다.
  • Fargate 시작 유형의 경우 logs:CreateLogStreamlogs:PutLogEvents 권한으로 Amazon ECS 작업 실행 IAM 역할을 사용합니다. 자세한 내용은 Amazon ECS 작업 실행 IAM 역할 단원을 참조하십시오.
  • Amazon EC2 시작 유형의 경우 다음을 확인하십시오.
  • 작업 정의에서 Amazon ECS 작업 실행 IAM 역할을 사용하지 않는 경우 컨테이너 인스턴스에서 사용하는 IAM 역할에 대해 logs:CreateLogStreamlogs:PutLogEvents 권한이 부여되었는지 확인합니다.
  • Amazon ECS 작업 실행 IAM 역할을 사용하는 경우 컨테이너 에이전트 파라미터 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE의 값이 true로 설정되어 있는지 확인합니다.
    참고: ecs-init 패키지 버전 1.16.0 -1 이상에서 Amazon ECS에 최적화된 AMI를 사용하는 경우 이 파라미터의 기본값은 true입니다. Windows에서 이 파라미터의 기본값은 false입니다. 자세한 내용은 Amazon ECS 컨테이너 에이전트 구성 단원을 참조하십시오.

네트워크 구성에 문제가 있습니다.

Amazon Virtual Private Cloud(Amazon VPC)에 인터넷 게이트웨이가 없고 작업에서 awslogs 로그 드라이버를 사용하여 로그 정보를 CloudWatch 로그에 전송하는 경우 CloudWatch Logs에 인터페이스 Amazon VPC 엔드포인트를 생성했는지 확인하십시오. 자세한 내용은 인터페이스 VPC 엔드포인트로 CloudWatch Logs 사용 단원을 참조하십시오.

컨테이너의 로그 수준이 올바르게 구성되지 않았습니다.

awslogs 로그 드라이버는 단순히 STDOUT 및 STDERR I/O 스트림인 컨테이너 로그를 Docker에서 CloudWatch Logs로 전달하기만 하면 됩니다. 따라서 애플리케이션에서 로그를 STDOUT 및 STDERR I/O 스트림으로 전송하는지 확인합니다. 컨테이너 구축 중에 애플리케이션에 올바른 로그 수준을 설정해야 합니다. 애플리케이션에 따라 환경 변수 또는 구성 파일을 통해 로그 수준을 설정할 수 있습니다.


관련 정보

컨테이너 인스턴스 모니터링

Amazon ECS 또는 Amazon EKS에 대한 누락된 컨테이너 로그 문제를 해결하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠