HEX
Server: nginx/1.24.0
System: Linux ip-10-50-20-85 6.5.0-1022-aws #22~22.04.1-Ubuntu SMP Fri Jun 14 16:31:00 UTC 2024 x86_64
User: usefuloffices.org (1001)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
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 ==="