#1 Memonitor EC2 instance Linux/Ubuntu ke Amazon CloudWatch
Untuk memonitor EC2 instance ke Amazon CloudWatch, kamu bisa mengikuti langkah-langkah berikut. Secara default, EC2 sudah mengirimkan beberapa basic metrics ke CloudWatch, namun kamu juga bisa menambahkan detailed monitoring dan custom metrics.
✅ 1. Monitoring Dasar (Default)
Secara default, AWS CloudWatch akan mengumpulkan basic EC2 metrics setiap 5 menit, termasuk:
-
CPUUtilization
-
DiskReadBytes
,DiskWriteBytes
-
NetworkIn
,NetworkOut
-
StatusCheckFailed
❗ Default monitoring = interval 5 menit.
Cara melihatnya:
-
Masuk ke AWS Console > CloudWatch > Metrics
-
Pilih
EC2 > Per-Instance Metrics
✅ 2. Aktifkan Detailed Monitoring (Interval 1 Menit)
Jika kamu butuh granular data, aktifkan Detailed Monitoring:
-
Masuk ke EC2 > Instances
-
Pilih instance > Actions > Monitor and troubleshoot > Enable detailed monitoring
💰 Perlu biaya tambahan karena mengirim data setiap 1 menit.
✅ 3. Install CloudWatch Agent (Untuk Custom Metrics)
Jika kamu ingin mengirim custom metrics seperti:
-
Memory usage
-
Disk space usage
-
Log file metrics
Langkahnya:
A. Install CloudWatch Agent di Linux / Ubuntu
# Amazon Linux / Ubuntu
sudo yum install amazon-cloudwatch-agent -y # untuk Amazon Linux
# atau
sudo apt install amazon-cloudwatch-agent -y # untuk Ubuntu/Debian
atau bisa download source filesnya langsung
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb -O /tmp/amazon-cloudwatch-agent.deb
sudo dpkg -i /tmp/amazon-cloudwatch-agent.deb
B. Buat File Konfigurasi
Contoh file: /opt/aws/amazon-cloudwatch-agent/bin/
config.jsonnt.amazon-cloudwatch-agent.json
{
"agent": {
"metrics_collection_interval": 300,
"run_as_user": "root"
},
"metrics": {
"metrics_collected": {
"cpu": {
"measurement": ["cpu_usage_idle", "cpu_usage_user", "cpu_usage_system"],
"metrics_collection_interval": 300,
"totalcpu": true
},
"mem": {
"measurement": ["mem_used_percent"],
"metrics_collection_interval": 300
},
"disk": {
"measurement": ["used_percent"],
"resources": ["/"],
"metrics_collection_interval": 300
}
},
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
}
}
}
C. Jalankan 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/amazon-cloudwatch-agent.json \
-s
✅ 4. Pastikan Instance Punya IAM Role
Agar CloudWatch Agent bisa kirim data, EC2 instance harus punya IAM role dengan policy seperti:
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"ec2:DescribeTags",
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:CreateLogStream"
],
"Resource": "*"
}
IAM role ini perlu di-attach ke instance EC2 kamu.
✅ 5. (Opsional) Kirim Log ke CloudWatch Logs
Kalau kamu juga ingin kirim log file ke CloudWatch Logs (misal /var/log/nginx/access.log
):
Tambahkan di konfigurasi agent:
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/nginx/access.log",
"log_group_name": "nginx-access-log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
Kalau kamu ingin saya bantu generate file konfigurasi atau membuat script provisioning otomatis (pakai Ansible atau Terraform), tinggal bilang saja.
Mau monitoring apa saja dari EC2-mu? Saya bisa bantu buatkan template config-nya.