Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
CloudWatch 에이전트가 로그 이벤트를 전송하지 않는 이유는 무엇입니까?
통합 Amazon CloudWatch 에이전트가 로그 이벤트를 전송하지 않습니다. 이 문제를 해결하고 싶습니다.
해결 방법
다음 해결 방법은 CloudWatch Container Insights에는 적용되지 않습니다. CloudWatch Container Insights 문제를 해결하려면 Container Insights 문제 해결을 참조하십시오.
동기화되지 않은 메타데이터
동기화되지 않은 메타데이터는 CloudWatch 에이전트에 문제를 일으킬 수 있습니다.
이 문제를 해결하려면 다음 작업을 수행하십시오.
- CloudWatch 에이전트를 설치하기 전에 Amazon Machine Image(AMI)를 만들어 원본 인스턴스에서 고유 정보를 캡처합니다.
- 시작할 때 AWS CloudFormation, AWS Systems Manager, 사용자 데이터 스크립트 또는 명령줄을 사용하여 CloudWatch 에이전트를 설치합니다.
- Windows 인스턴스의 경우 AMI로 작업할 때 Sysprep을 사용하십시오.
오래된 버전의 CloudWatch 에이전트
현재 사용 중인 CloudWatch 에이전트의 버전을 확인하십시오. CloudWatch 에이전트가 오래된 경우 최신 버전의 CloudWatch 에이전트 패키지를 다운로드하여 설치하십시오. 최신 버전에는 문제를 해결하는 업데이트가 포함되어 있을 수 있습니다.
CloudWatch Logs 엔드포인트에 연결하지 못함
참고: 다음 명령에서 example-region을 AWS 리전으로 바꾸십시오.
CloudWatch Logs 엔드포인트에 대한 연결을 테스트하려면 다음 명령 중 하나를 실행하십시오.
telnet logs.example-region.amazonaws.com 443
nc -zv logs.example-region.amazonaws.com 443
기본적으로 netcat은 Windows 시스템에 설치되지 않습니다. 대신 Windows PowerShell에서 다음과 같은 Test-NetConnection 명령을 실행합니다.
Test-NetConnection -ComputerName logs.example-region.amazonaws.com -Port 443
연결에 실패하면 다음 작업을 수행하십시오.
- 보안 그룹 및 네트워크 액세스 제어 목록(네트워크 ACL)에서 연결을 허용하는지 확인합니다.
- 퍼블릭 엔드포인트의 경우 인스턴스에 인터넷 게이트웨이 또는 NAT 게이트웨이를 사용하십시오.
- Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 사용하는 경우 엔드포인트가 Amazon VPC IP 주소로 확인되어야 합니다. 또한 엔드포인트 보안 그룹이 소스 인스턴스에서 액세스를 허용하는지 확인하십시오.
잘못된 계정, 리전 또는 로그 그룹 구성
CloudWatch 에이전트 구성 파일의 경우, 지정된 지역이 콘솔 지역과 일치하는지 확인하십시오. 또한 올바른 AWS 계정에서 로그를 확인하십시오.
CloudWatch 에이전트에 대한 시스템 기본값을 재정의하려면 다음 common-config.toml 파일 위치를 사용합니다.
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 에이전트는 CloudWatch에 로그 이벤트를 전송하기 위해 AWS Identity and Access Management(IAM) 사용자 또는 IAM 역할 정책의 자격 증명을 사용합니다.
자격 증명 기반 정책에 다음 IAM 권한이 포함되어 있는지 확인하십시오.
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
- logs:DescribeLogStreams
사용자 정책 또는 역할 정책에 누락된 IAM 권한을 추가하십시오.
IAM 역할 또는 사용자를 만들 때는 CloudWatchAgentServerPolicy 또는 CloudWatchAgentAdminPolicy 정책을 사용하는 것이 가장 좋습니다.
로그 그룹이나 로그 스트림이 없는 경우 CloudWatch 에이전트가 이를 만듭니다. 로그 이벤트를 게시하기 전에 로그 그룹 및 로그 스트림을 만드십시오.
CloudWatch 에이전트 실행 오류
CloudWatch 에이전트가 실행 중인지 확인합니다. 에이전트가 실행되고 있지 않다면 로그 파일 위치에서 오류를 확인하십시오.
Linux의 로그 파일 위치는 ** /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log**입니다.
Windows의 로그 파일 위치는 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log입니다.
사용자 지정 로그 파일 위치에 로그를 지정했을 수 있습니다. 사용자 지정 로그 위치를 파악하려면 에이전트 구성 파일을 확인하십시오.
구성 파일에서 자세한 디버그 로깅을 사용 설정하려면 debug 파라미터를 사용합니다. run_as_user 파라미터를 사용하는 경우에는 사용자에게 로그 위치에 대한 권한이 있는지 확인하십시오. 사용자에게 필요한 권한이 없는 경우 CloudWatch가 해당 위치에 로그를 쓸 수 없습니다.
CloudWatch 에이전트를 시작할 때 International Material Data System(IMDS)에 문제가 발생하는 경우 다음 작업을 수행하십시오.
- Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 메타데이터에 액세스할 수 있는지 확인합니다. 메타데이터 엔드포인트에 대한 연결을 확인합니다.
- 운영 체제(OS) 수준 경로 및 방화벽에서 메타데이터 엔드포인트에 대한 연결을 차단하는 규칙을 만들었는지 확인합니다. Linux의 경우 EC2 Linux 인스턴스에서 인스턴스 메타데이터 문제를 해결하려면 어떻게 합니까?를 참조하십시오. Windows의 경우 Amazon EC2 Windows 인스턴스의 "Waiting for the metadata service" 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
타임스탬프 문제
CloudWatch 에이전트는 PutLogEvents API 작업을 사용하여 CloudWatch 로그 그룹에 로그 이벤트를 게시합니다. 로그 이벤트가 PutLogEvents API 작업 제약 조건을 충족하는지 확인합니다. 또한 인스턴스의 시간대를 올바르게 구성했는지 확인합니다.
로그의 상태 파일에 누락된 값이 있음
로그의 상태 파일에서 누락되었거나 잘못된 값을 해결하려면 다음 단계를 완료하십시오.
-
상태 파일이 올바른 위치에 있는지 확인합니다.
Linux의 경우 다음 파일 위치를 사용하십시오.
/opt/aws/amazon-cloudwatch-agent/logs/state
Windows의 경우 다음 파일 위치를 사용하십시오.
C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state
참고: CloudWatch 에이전트가 새 데이터를 읽고 CloudWatch 로그 그룹에 게시할 수 있도록 이전 상태 파일에 로그 파일과 동일한 크기 값이 포함되어 있는지 확인하십시오. -
상태 파일의 크기 값을 확인하십시오.
Linux의 경우 다음 sudo 명령을 실행합니다.sudo cat /opt/aws/amazon-cloudwatch-agent/logs/state/_var_log_httpd_access_logWindows의 경우 다음 Windows PowerShell 명령을 실행합니다.
gc 'C:\ProgramData\Amazon\AmazonCloudWatchAgent\Logs\state\C__Program_Files_log.log'참고: 위의 명령 출력에는 현재 오프셋의 숫자 값이 포함됩니다. 예를 들어 출력이 34이면 현재 오프셋은 로그 파일의 34번째 바이트에 있습니다. CloudWatch 에이전트가 로그 파일에 새 로그를 기록하면 CloudWatch Logs는 식별된 바이트에서 읽습니다.
-
로그 파일의 크기 값을 확인합니다.
Linux의 경우 다음 명령을 실행합니다.stat /var/log/httpd/access_log | grep Size | awk '{print $2}'Windows의 경우 다음 명령을 실행합니다.
Get-Item 'C:\Program Files\log.log' | Format-List | findstr Length -
2단계와 3단계의 출력이 동일한지 확인합니다.
잘못된 소스 로그 파일 구성
잘못된 소스 로그 파일 구성으로 인한 문제를 해결하려면 다음 작업을 수행하십시오.
- CloudWatch 에이전트 구성에 모니터링하려는 로그 파일이 포함되어 있는지 확인하십시오.
- 로그 파일의 파일 형식이 올바른지, 올바른 이름과 위치가 사용되었는지 확인하십시오.
- 현재 구성에서 데이터를 검색하려는 것과 동일한 로그 그룹 및 로그 스트림으로 전송되도록 로그를 구성했는지 확인하십시오.
- 인스턴스에서 모니터링 중인 로그 파일을 검토합니다. 소스 로그 파일에 로그 그룹에 게시하려는 데이터가 포함되어 있는지 확인하십시오.
높은 force_flush_interval 값
로그 크기가 최대 버퍼인 1MB에 도달하면 CloudWatch는 사용자가 설정한 force_flush_interval 간격에 관계없이 즉시 로그를 수신합니다. 자세한 내용을 보려면 CloudWatch 에이전트 구성 파일: 지표 섹션 탭을 선택하십시오.
간격을 높은 값으로 설정했는데 로그 크기가 1MB에 도달하지 않으면 로그가 버퍼에 남아 있습니다. CloudWatch 에이전트는 버퍼가 가득 차거나 간격이 경과한 후에만 서버에 로그를 전송합니다. 이 간격 동안에는 CloudWatch에서 로그를 사용할 수 없습니다. 간격 값을 올바른 크기로 설정했는지 확인하십시오. 로그 크기와 원하는 게시 간격에 따라 간격 값을 설정하는 것이 가장 좋습니다.
관련 정보
Amazon Elastic Kubernetes Service(Amazon EKS)에서 포드 상태 문제를 해결하려면 어떻게 해야 합니까?
- 언어
- 한국어
