운영서버에 서비스를 올리기 전에 앞으로 운영하면서 필요한 부분에 대한 실시간 모니터링을 위해 모니터링 환경을 구축해야 한다.
CloudWatch 를 사용하면 기본적으로 AWS/EC2
네임스페이스 에서 cpu 사용량은 모니터링 할 수 있다.
디스크와 메모리 모니터링은 CloudWatch Agent 를 통해서 모니터링을 할 수 있다.
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb
sudo dpkg -i -E ~/amazon-cloudwatch-agent.deb
sudo apt-get remove --purge amazon-cloudwatch-agent
선택 1. amazon-cloudwatch-agent-config-wizard 를 통해서 생성한다. 공식 문서
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
선택 2./opt/aws/amazon-cloudwatch-agent/bin/
에 직접 config.json 을 생성한다. 공식 문서
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path
sudo systemctl restart amazon-cloudwatch-agent
{
"agent": {
"metrics_collection_interval": 10,
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/etc/log/app/**.log",
"log_group_name": "shook-applicaton-log",
"log_stream_name": "{instance_id}",
"retention_in_days": 30
},
{
"file_path": "/etc/log/warn/**.log",
"log_group_name": "shook-warn-log",
"log_stream_name": "{instance_id}",
"retention_in_days": 30
},
{
"file_path": "/etc/log/error/**.log",
"log_group_name": "shook-error-log",
"log_stream_name": "{instance_id}",
"retention_in_days": 30
}
]
}
}
},
"metrics": {
"namespace": "2023-shook-prod",
"metrics_collected": {
"disk":{
"measurement":[
"disk_total",
"disk_used",
"disk_used_percent"
],
"resources":[
"/"
]
},
"mem": {
"measurement": [
"mem_total",
"mem_used_percent"
],
"metrics_collection_interval": 10
},
"swap": {
"measurement": [
"swap_used_percent"
],
"metrics_collection_interval": 10
}
}
}
}
{
"agent": {
"metrics_collection_interval": 10,
"run_as_user": "root"
},
"metrics": {
"namespace": "2023-shook-prod-db",
"metrics_collected": {
"disk":{
"measurement":[
"disk_total",
"disk_used",
"disk_used_percent"
],
"resources":[
"/"
]
},
"mem": {
"measurement": [
"mem_total",
"mem_used_percent"
],
"metrics_collection_interval": 10
},
"swap": {
"measurement": [
"swap_used_percent"
],
"metrics_collection_interval": 10
}
}
}
}
{
"agent": {
"metrics_collection_interval": 10,
"run_as_user": "root"
},
"metrics": {
"namespace": "2023-shook-dev",
"metrics_collected": {
"disk":{
"measurement":[
"disk_total",
"disk_used",
"disk_used_percent"
],
"resources":[
"/"
]
},
"mem": {
"measurement": [
"mem_total",
"mem_used_percent"
],
"metrics_collection_interval": 10
},
"swap": {
"measurement": [
"swap_used_percent"
],
"metrics_collection_interval": 10
}
}
}
}