#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/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
Cek status service
sudo systemctl status amazon-cloudwatch-agent
✅ 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.
Cara attach IAM Role ke Instance EC2 kamu
Bukan Instance kamu
Klik Action, kemudian pilih security, kemudian pilih "Modify Iam Role"
di Form IAM Role pilih EC2CloudWatchAgentRole
Klik Update IAM role
✅ 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.
No Comments