728x90
AWS EC2 인스턴스 디스크 용량 부족으로 인하여 서비스 정지 상태가 발생했었다.
일차적으로는 docker 컨테이너 로그 logrotate 설정을 해줬고([Docker] Docker 컨테이너 로그 관리)
더 나아가 디스크 용량이 부족할 경우 SLACK 으로 알람을 보내게끔 설정을 해주려고 한다.
순서는 아래와 같이 진행하려고 한다.
1. AWS EC2 인스턴스에 CloudWatch Agent 설치하기
2. Slack에 알람 보내는 AWS SNS & AWS Lambda 함수 생성하기
AWS EC2 인스턴스에 CloudWatch Agent 설치하기
1. CloudWatch Agent 설치하기
$ cd /tmp
$ wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
$ sudo rpm -U amazon-cloudwatch-agent.rpm
2. config 파일 설정하기
$ sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
▷ config.json
{
"agent":{
"metrics_collection_interval":60,
"run_as_user":"ubuntu"
},
"metrics":{
"append_dimensions":{
"ImageId":"${aws:ImageId}",
"InstanceId":"${aws:InstanceId}",
"InstanceType":"${aws:InstanceType}"
},
"metrics_collected":{
"procstat":[
{
"pattern":"python",
"measurement":[
"memory_rss",
"cpu_usage"
]
},
{
"pattern":"python3",
"measurement":[
"memory_rss",
"cpu_usage"
]
},
{
"pattern":"node",
"measurement":[
"memory_rss",
"cpu_usage"
]
},
{
"pattern":"java",
"measurement":[
"memory_rss",
"cpu_usage"
]
}
],
"collectd":{
"metrics_aggregation_interval":60
},
"disk":{
"measurement":[
"used_percent",
"inodes_free"
],
"metrics_collection_interval":60,
"resources":[
"*"
]
},
"diskio":{
"measurement":[
"io_time"
],
"metrics_collection_interval":60,
"resources":[
"*"
]
},
"mem":{
"measurement":[
"mem_used_percent"
],
"metrics_collection_interval":60
},
"statsd":{
"metrics_aggregation_interval":60,
"metrics_collection_interval":10,
"service_address":":8125"
}
}
}
}
3. config 파일 연결해 주기
$ 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
* 아래와 같이 types.db 가 없다는 에러가 발생한다면,
Configuration validation second phase failed
======== Error Log ========
2021-07-11T23:56:56Z E! [telegraf] Error running agent: Error parsing /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml, open /usr/share/collectd/types.db: no such file or directory
types.db 파일을 만들어주면 된다 ☆
$ sudo mkdir -p /usr/share/collectd/
$ sudo touch /usr/share/collectd/types.db
4. CloudWatch 재시작
$ sudo systemctl restart amazon-cloudwatch-agent
+ 로그 확인하기
$ tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
+ 상태 확인하기
$ /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
728x90
'AWS' 카테고리의 다른 글
[CloudWatch] CloudWatch 경보 설정하기 - 3 (0) | 2021.06.21 |
---|---|
[CloudWatch] CloudWatch 경보 설정하기 - 2 (0) | 2021.06.17 |
[DDB] DynamoDB Streams + Lambda (0) | 2021.06.08 |
[S3] AWS S3 버킷 만들기 (0) | 2021.06.02 |
[DDB] DynamoDB 에 데이터 쓰기 (0) | 2021.05.26 |