File: //proc/thread-self/root/proc/thread-self/root/opt/cwagent.sh
#!/bin/bash
set -e
echo "=== CloudWatch Agent Installer ==="
read -p "⚠️ This will install or overwrite your existing CloudWatch Agent setup. Continue? (y/N): " confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "Aborted."
exit 0
fi
echo "=== Downloading the latest CloudWatch Agent package ==="
wget -O amazon-cloudwatch-agent.deb https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
echo "=== Installing CloudWatch Agent ==="
sudo dpkg -i amazon-cloudwatch-agent.deb
echo "=== Creating CloudWatch configuration file ==="
sudo mkdir -p /opt/aws/amazon-cloudwatch-agent/bin
cat <<'EOC' | sudo tee /opt/aws/amazon-cloudwatch-agent/bin/config.json > /dev/null
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}",
"InstanceName": "${aws:InstanceTag_Name}"
},
"metrics_collected": {
"mem": {
"measurement": ["mem_used_percent"],
"metrics_collection_interval": 60
},
"disk": {
"measurement": ["free"],
"metrics_collection_interval": 60,
"resources": ["/"]
}
}
}
}
EOC
echo "=== Applying CloudWatch Agent configuration ==="
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json \
-s
echo "=== Restarting CloudWatch Agent ==="
cd /opt/aws/amazon-cloudwatch-agent/bin
sudo ./amazon-cloudwatch-agent-ctl -m ec2 -a stop
sudo ./amazon-cloudwatch-agent-ctl -m ec2 -a start
echo "✅ CloudWatch Agent setup completed successfully ==="