disqus: brainbackdoor | false
kakaoChannel: false
floatFirstTOC: right
1. Cloudwatch로 수집하기
A. EC2에 IAM role 설정

- IAM role로 CloudWatchAgentServerPolicy 권한을 가진 역할을 생성해두고 시작합니다. EC2 서버에 IAM role 권한을 부여합니다.
B. Cloudwatch agent 설정
$ wget <https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb>
$ sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
# /opt/aws/amazon-cloudwatch-agent/bin/config.json
# 아래는 예시입니다. 필요한 지표를 추가해서 수집하세요~
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/syslog",
"log_group_name": "syslog",
"log_stream_name": "{instance_id}",
"timezone": "Local"
}
]
}
}
},
"metrics": {
"metrics_collected": {
"disk": {
"measurement": [
"used_percent",
"used",
"total"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_available"
],
"metrics_collection_interval": 60
},
"netstat": {
"measurement": [
"tcp_syn_sent",
"tcp_syn_recv"
],
"metrics_collection_interval": 60
},
}
}
}
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
{
"status": "running",
"starttime": "2023-11-27T22:01:10+00:00",
"configstatus": "configured",
"version": "1.300031.0b313"
}
2. 지표

- 위젯 추가 > 유형으로 행 선택 > 원본데이터로 지표 선택 > CPU Utilization, Network In / Out, mem_used_percent, disk_used_percent 등 대시보드 추가
- 메트릭 지표는 링크를 참고해보세요. USE 방법론에 맞춰 대시보드를 구성하려면 어떤 지표들을 수집해야 할까요?
- 위의 캡쳐는 예시일 뿐이에요. 추가로 수집할만한 시스템 메트릭들도 있고, was, nginx, mysql 지표들과 로그 등도 표현 가능합니다. 물론 용도에 맞게 대시보드를 나눠서 구성해도 좋구요.