통합 CloudWatch 에이전트가 로그 이벤트를 푸시하지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 4월 28일

통합 CloudWatch 에이전트를 사용하여 로그를 Amazon CloudWatch Logs로 푸시하고 있습니다. 하지만 CloudWatch Logs 콘솔에서 로그를 볼 수 없습니다. 통합 CloudWatch 에이전트가 로그 이벤트를 푸시하지 않는 이유는 무엇입니까?

간략한 설명

다음 문제는 통합 CloudWatch 에이전트가 로그 이벤트를 푸시하지 못하게 할 수 있습니다.

  • CloudWatch 에이전트를 설치한 후 Amazon Machine Image(AMI)를 생성함으로써 발생하는 동기화되지 않은 메타데이터
  • 오래된 버전의 CloudWatch 에이전트 사용
  • CloudWatch Logs 엔드포인트 연결 실패
  • 잘못된 계정, 지역 또는 로그 그룹 구성
  • AWS Identity and Access Management(IAM) 권한 부족
  • CloudWatch 에이전트 실행 오류
  • 타임스탬프 문제

​해결 방법

참고: 다음 문제 해결 단계는 Container Insights에는 적용되지 않습니다. Container Insights 문제 해결에 대한 자세한 내용은 Container Insights 문제 해결 및 Amazon EKS에서 Pod 상태 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

CloudWatch 에이전트에 대한 설치 방법 검토

시작 시 AWS CloudFormation, AWS Systems Manager Agent(SSM Agent), 사용자 데이터 스크립트 또는 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 CloudWatch 에이전트를 설치하는 것이 모범 사례입니다. CloudWatch 에이전트가 이미 설치되어 있는 AMI를 생성하는 것은 권장되지 않습니다. AMI는 일반적으로 원본 인스턴스에서 고유한 정보를 캡처합니다. 메타데이터가 동기화되지 않은 이 상태로 인해 CloudWatch 에이전트가 의도한 대로 작동하지 않을 수 있습니다. 동기화되지 않은 메타데이터는 많은 Windows 인스턴스가 AMI 작업 시 Sysprep을 필요로 하는 이유입니다. 자세한 내용은 Sysprep을 사용하여, 재사용 가능한 사용자 지정 Windows AMI를 생성하려면 어떻게 해야 합니까?를 참조하십시오.

최신 버전의 CloudWatch 에이전트를 사용 중인지 확인

CloudWatch 에이전트 출시 정보 및 최신 버전 번호에 대한 README 파일을 다운로드하여 검토합니다. 이전 버전의 CloudWatch 에이전트를 사용하는 경우 업그레이드해야 합니다. 최신 버전에는 발생하는 문제를 해결하는 업데이트가 포함될 수 있습니다.

CloudWatch Logs 엔드포인트에 대한 연결 테스트

다음 명령 중 하나를 사용하여 CloudWatch Logs 엔드포인트에 대한 연결을 테스트합니다.

telnet logs.<region>.amazonaws.com 443
nc -zv logs.<region>.amazonaws.com 443

연결 오류가 발생할 경우 다음을 확인하십시오.

  • 보안 그룹 및 네트워크 ACL(액세스 제어 목록) 규칙은 연결을 허용합니다.
  • 인스턴스는 인터넷 게이트웨이 또는 네트워크 주소 변환(NAT) 게이트웨이를 사용하여 퍼블릭 엔드포인트에 도달할 수 있습니다.
  • VPC 엔드포인트를 사용하는 경우 엔드포인트가 VPC IP로 확인되고 엔드포인트 보안 그룹은 원본 인스턴스로부터의 액세스를 허용합니다.

계정, 지역 및 로그 그룹 구성 검토

CloudWatch 에이전트 구성 파일에서:

  • 지정된 지역이 콘솔 지역과 일치해야 합니다.
  • 로그가 올바른 계정에서 확인되었는지 검증

선택적으로 common-config.toml 파일을 사용하여 CloudWatch 에이전트의 시스템 기본값을 재정의할 수 있습니다. 이러한 시스템 기본값에는 에이전트에 대한 프록시, 리전 및 자격 증명 정보가 포함됩니다. 파일은 다음 위치에서 사용할 수 있습니다.

Linux

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml 

--또는--

/etc/amazon/amazon-cloudwatch-agent/common-config.toml

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

IAM 권한 확인

CloudWatch 에이전트는 IAM 사용자 또는 IAM 역할 정책의 자격 증명을 사용하여 로그 이벤트를 CloudWatch 서비스로 푸시합니다. 로그 이벤트를 게시하려면 먼저 로그 그룹과 로그 스트림을 생성해야 합니다. 로그 그룹이나 로그 스트림이 없는 경우 CloudWatch 에이전트가 로그 그룹을 생성합니다.

정책에 다음 IAM 권한이 포함되어 있는지 확인합니다.

"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"

누락된 IAM 권한을 사용자 정책 또는 역할 정책에 추가합니다.

참고: IAM 역할 및 사용자를 생성할 때 사용자 지정 정책보다는 Amazon에서 생성한 CloudWatchAgentServerPolicy및 CloudWatchAgentAdminPolicy 정책을 사용하는 것이 모범 사례입니다.

CloudWatch 에이전트 실행 오류 해결

CloudWatch 에이전트가 실행 중인지 확인합니다. 에이전트가 실행되고 있지 않으면 로그 파일에서 오류가 있는지 확인하고 해결합니다. 로그 파일은 다음 위치에 있습니다.

Linux

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

Windows:

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

참고: 로그는 사용자 지정 logfile 위치에 지정될 수 있습니다. 에이전트 구성 파일을 확인하여 사용자 지정 로그 위치를 식별합니다.

에이전트 구성 파일에서 debug 파라미터를 사용하여 상세 디버그 로깅을 활성화합니다. run_as_user 파라미터를 사용하는 경우 사용자에게 로그 위치 경로에 대한 권한이 있는지 확인합니다. 필요한 권한이 없으면 CloudWatch 에이전트가 위치에 로그를 쓸 수 없습니다.

타임스탬프 문제 해결

14일 이상 경과했거나 예정 시간이 2시간 이상 남은 로그 이벤트 타임스탬프가 있는지 확인하십시오. PutLogEvents 명령은 어느 시간대든 로그 배치를 허용하지 않습니다.

또한 인스턴스의 시스템 시간 서비스가 올바르게 구성되었는지 확인하십시오. 자세한 내용은 다음을 참조하십시오.


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

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?