Monitoring

[CloudWatch] CloudWatch Agent 설치하기 (Ubuntu)

ansmoon 2023. 4. 6. 14:05

< CloudWatch Agent 주요 명령어 >

1. 특정 설정 파일 이용 Cloudwatch agent 서비스 시작
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

2. 일반 Cloudwatch agent 서비스 시작
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a start

3. Cloudwatch agent 서비스 중지
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

4. Cloudwatch agent 서비스 상태 확인
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

* Wizard로 생성한 Cloudwatch agent 설정 파일 위치
/opt/aws/amazon-cloudwatch-agent/bin/config.json

* 실제로 Cloudwatch agent가 사용하는 설정 파일 위치
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

* Cloudwatch agent 로그파일 위치
/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

 

 

<< Basic, Standard, Advanced 수집 메트릭 목록 >>

 

 

 

 

1. CloudWatch Agent 패키지 다운로드

wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb

 

 

2. 패키지 설치

sudo dpkg -i -E ./amazon-cloudwatch-agent.deb

 

 

3. 설치파일 위치 이동

cd /opt/aws/amazon-cloudwatch-agent/bin

 

4. Cloudwatch agent 실행

./amazon-cloudwatch-agent-config-wizard

 

4-1) 

1. On which OS are you planning to use the agent?
 => Linux 기반 인스턴스를 사용하므로 1
2. Are you using EC2 or On-premises hosts?
 => EC2 인스턴스를 사용하므로 1
3. Which user are you planning to run the agent?
 => 루트 사용자로 설치할 것이므로 1
4. Do you want to turn on StatsD daemon?
 => 애플리케이션 또는 서비스에서 추가로 사용자 정의 측정항목을 수집하지 않으므로 2

 

 

4-2)

5. Do you want to monitor metrics from CollectD?
 => CollectD가 설치된다는 경고는 무시/ 애플리케이션 또는 서비스에서 추가로 사용자 정의 측정항목을 수집하지 않으므로 2
6. Do you want to monitor any host metrics? e.g. CPU, memory, etc.
 => 호스트 메트릭 수집은 표준으로 사용할 수 없는 메트릭을 수집할 수 있는 CloudWatch 에이전트의 핵심 측면이므로 1
7. Do you want to monitor cpu metrics per core?
 => 코어당 CPU 메트릭 수집하므로 1
8. Do you want to add ec2 dimensions (ImageId, InstanceId, InstanceType, AutoScalingGroupName) into all of your metrics if the info is available?
 => 모든 메트릭에 대한 차원을 추가하면 CloudWatch 콘솔에서 대시보드 및 필터링에 도움이 되므로 1
9. Do you want to aggregate ec2 dimensions (InstanceId)?
 => InstanceId 차원으로 집계하면 필터링 및 대시보드 작성에 도움이 되므로 1

 

4-3)

10. Would you like to collect your metrics at high resolution (sub-minute resolution)?
 => 이렇게 하면 모든 메트릭의 1분 미만 해결이 가능하지만 출력 json 파일에서 특정 메트릭에 대해 사용자 지정 가능.
 1분 미만의 해결 방법을 수집하지 않으므로 4를 입력하고 입력
11. Which default metrics config do you want?
 => mem_used_percent 및 disk_used_percent 메트릭을 캡처하는 Basic 구성을 사용하므로 1

 

4-4)

12. Are you satisfied with the above config?
 => 현재 구성이 표시되므로 1
13. Do you have any existing CloudWatch log agent?
 => CloudWatch 에이전트를 사용하여 애플리케이션 또는 서비스에서 로그를 수집하지 않으므로 2
 14. Do you want to monitor any log files?
 => 로그파일 모니터링 필요하므로 1

 

 

4-5)

15. Do you want to specify any additional log files to monitor?
 => 더 추가할 로그파일이 없으므로 2

 

4-6)

16. Do you want to store the config in the SSM parameter store?
 => config.json 파일을 Parameter Store에 저장하지 않으므로 2

 

 

5. CloudWatch Agent 실행

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

 

 

6. 메트릭 수집 확인

 1) mem 사용량, disk 사용량

 2) 로그