Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
통합 CloudWatch 에이전트가 내 지표 또는 로그 이벤트를 CloudWatch로 푸시하지 않는 이유는 무엇입니까?
통합 Amazon CloudWatch 에이전트를 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 구성하여 Amazon CloudWatch로 지표와 로그를 게시했습니다. 하지만 CloudWatch 콘솔에서 지표나 로그를 볼 수 없습니다. CloudWatch에서 내 지표와 로그 이벤트를 확인하고 싶습니다
간략한 설명
통합된 CloudWatch 에이전트가 지표 또는 로그를 CloudWatch로 푸시하지 않는 데에는 여러 가지 이유가 있을 수 있습니다. 예를 들어, 권한 또는 연결 오류가 발생하여 에이전트가 지표를 게시하지 못할 수 있습니다. 통합된 CloudWatch 에이전트 로그를 검토할 때 다음 오류 중 하나가 나타날 수 있습니다.
- 에이전트 로그 오류: No Connectivity to Endpoint
- 에이전트 로그 오류: Insufficient Permissions
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
통합된 CloudWatch 에이전트 로그를 검토하세요.
에이전트 로그 파일을 사용하여 통합된 CloudWatch 에이전트 패키지에서 발생하는 문제를 해결할 수 있습니다.
다음과 같은 문제가 발생할 수 있습니다.
- 필수 AWS 서비스 엔드포인트 또는 Amazon Virtual Private Cloud(VPC) 엔드포인트에 대한 연결 문제가 발생합니다.
- ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html#cw-permissions-table)CloudWatch에 대한 지원 API 직접 호출을 할 수 있는 올바른 권한[이 없습니다.
다음 로그에서 이러한 오류 중 하나를 볼 수 있습니다.
에이전트 로그 오류: No Connectivity to Endpoint
2021-08-30T04:07:46Z E! cloudwatch: code: RequestError, message: send request failed, original error: Post "https://monitoring.us-east-1.amazonaws.com/": dial tcp 172.31.11.121:443: i/o timeout 2021-08-30T04:07:46Z W! 210 retries, going to sleep 1m0s before retrying. 2021-08-30T04:07:46Z E! cloudwatch: code: RequestError, message: send request failed, original error: Post "https://monitoring.us-east-1.amazonaws.com/": dial tcp 172.31.11.121:443: i/o timeout 2021-08-30T04:07:46Z W! 211 retries, going to sleep 1m0s before retrying.
에이전트 로그 오류: Insufficient Permissions
2021-08-30T02:15:45Z E! cloudwatch: code: AccessDenied, message: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: cloudwatch:PutMetricData, original error: 2021-08-30T02:15:45Z W! 1 retries, going to sleep 400ms before retrying. 2021-08-30T02:15:46Z E! WriteToCloudWatch failure, err: AccessDenied: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: cloudwatch:PutMetricData status code: 403, request id: f1171fd0-05b6-4f7d-bac2-629c8594c46e
CloudWatch 엔드포인트에 대한 연결 확인
CloudWatch로 향하는 트래픽이 퍼블릭 인터넷을 거치지 않는 경우 Amazon VPC 엔드포인트를 사용할 수 있습니다. Amazon VPC 엔드포인트를 사용하는 경우 다음 파라미터를 확인하세요.
- 프라이빗 네임서버를 사용하는 경우 DNS 확인이 정확한 응답을 제공했는지 확인하세요.
- CloudWatch 엔드포인트가 프라이빗 IP 주소로 확인되는지 확인하세요.
- 호스트로부터의 인바운드 트래픽을 허용하는 Amazon VPC 엔드포인트와 연결된 보안 그룹을 확인하세요.
CloudWatch 엔드포인트에 대한 연결을 확인하려면 다음 단계를 완료하세요.
-
지표 엔드포인트에 대한 연결을 확인하려면 다음 명령을 실행하세요.
$ telnet monitoring.us-east-1.amazonaws.com 443 Trying 52.46.138.115... Connected to monitoring.amazonaws.com. Escape character is '^]'. ^] telnet> quit Connection closed.
-
로그 엔드포인트에 대한 연결을 확인하려면 다음 명령을 실행하세요.
$ telnet logs.us-east-1.amazonaws.com 443 Trying 3.236.94.218... Connected to logs.us-east-1.amazonaws.com. Escape character is '^]'. ^] telnet> quit Connection closed
-
Amazon VPC 엔드포인트가 프라이빗 IP 주소로 확인되는지 확인하려면 다음 명령을 실행하세요.
$ dig monitoring.us-east-1.amazonaws.com +short172.31.11.121 172.31.0.13
통합된 CloudWatch 에이전트 구성 검토
에이전트 구성 파일은 CloudWatch에 게시되는 지표 및 로그를 자세히 설명합니다. 에이전트 구성 파일을 검토하여 게시하려는 로그와 지표가 포함되어 있는지 확인하세요.
호스트에 지표 및 로그를 게시할 권한이 있는지 확인
AWS 관리형 정책 CloudWatchAgentServerPolicy와 CloudWatch AgentAdminPolicy는 통합 CloudWatch 에이전트를 배포하는 데 도움이 될 수 있습니다. 정책을 통해 올바른 권한이 있는지 확인할 수도 있습니다. 이러한 정책을 참조하여 호스트가 올바른 권한을 가지고 있는지 확인하세요.
이 예제의 AWS CLI 출력은 권한이 충분하지 않다는 것을 보여줍니다.
다음 AWS CLI config 명령은 EC2 인스턴스에 연결된 AWS Identity and Access Management(IAM) 역할이 누락되었음을 보여줍니다.
$ /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:CWT-Web-Server -s ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source ssm:CWT-Web-Server --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Region: us-east-1 credsConfig: map[] Error in retrieving parameter store content: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors Fail to fetch/remove json config: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors Fail to fetch the config!
다음 AWS CLI config 명령은 잘못된 IAM 역할이 EC2 인스턴스에 연결되어 있음을 보여줍니다.
$ /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:CWT-Web-Server -s ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source ssm:CWT-Web-Server --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Region: us-east-1 credsConfig: map[] Error in retrieving parameter store content: AccessDeniedException: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789012:parameter/CWT-Web-Server status code: 400, request id: b85b0a7a-0fb1-47b4-924f-be8cf43a3b4d Fail to fetch/remove json config: AccessDeniedException: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789012:parameter/CWT-Web-Server status code: 400, request id: b85b0a7a-0fb1-47b4-924f-be8cf43a3b4d Fail to fetch the config!
다음 get-caller-identity 명령은 인스턴스와 연결된 IAM 사용자 또는 역할을 반환합니다.
$ aws sts get-caller-identity { "UserId": "AROA123456789012ABCDE:i-0744de7c842d2c2ba", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/CloudWatchAgentServerRole/i-0744de7c842d2c2ba" }
에이전트가 제대로 시작되는지 확인
인수로 전달된 구성 파일과 함께 AWS CLI를 사용하여 에이전트를 시작할 수 있습니다. 에이전트를 시작하려면 다음과 같은 유효한 시작 명령을 실행합니다.
Linux의 경우 다음 명령을 실행합니다.
- `$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path` - `$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name`
Windows의 경우 다음 명령을 실행합니다.
- `& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"` - `& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name`
중요: Windows 제어판에서 에이전트를 시작하지 마세요.
에이전트가 실행되는지 확인
지표와 로그를 게시하려면 에이전트가 활성 상태여야 합니다. 에이전트가 활성 상태인지 확인하려면 다음 명령을 실행합니다.
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "running", "starttime": "2021-08-30T02:13:44+00:00", "configstatus": "configured", "cwoc_status": "stopped", "cwoc_starttime": "", "cwoc_configstatus": "not configured", "version": "1.247349.0b251399" }
에이전트 구성을 업데이트한 후 에이전트를 다시 시작합니다
에이전트는 구성 파일에 변경 사항을 자동으로 등록하지 않습니다. 새로운 또는 다른 지표나 로그를 포함하도록 에이전트 구성을 업데이트한 경우 다음 명령을 사용하여 에이전트를 다시 시작해야 합니다.
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop ****** processing cwagent-otel-collector ****** cwagent-otel-collector has already been stopped ****** processing amazon-cloudwatch-agent ****** Redirecting to /bin/systemctl stop amazon-cloudwatch-agent.service $ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:config.json ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source file:config.json --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Successfully fetched the config and saved in /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp Start configuration validation... /opt/aws/amazon-cloudwatch-agent/bin/config-translator --input /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json --input-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --output /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default 2021/08/31 02:45:37 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp ... Valid Json input schema. I! Detecting run_as_user... Configuration validation first phase succeeded /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -schematest -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml Configuration validation second phase succeeded Configuration validation succeeded amazon-cloudwatch-agent has already been stopped Redirecting to /bin/systemctl restart amazon-cloudwatch-agent.service $ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "running", "starttime": "2021-08-31T02:45:37+0000", "configstatus": "configured", "cwoc_status": "stopped", "cwoc_starttime": "", "cwoc_configstatus": "not configured", "version": "1.247349.0b251399" }
관련 정보
EC2 인스턴스의 지표와 로그를 CloudWatch로 푸시할 수 있게 통합 CloudWatch 에이전트를 설치하고 구성하려면 어떻게 해야 하나요?

관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...