Despues de varios incidentes donde el disco duro de instancias EC2 bajo mi supervisión se llenaran, deteniendo los servicios de producción, fue necesario encontrar una manera de monitorear de mejor manera los mismos.
A continuación una guia de como configurar esto en instancias EC2 con ubuntu:
Paso 1 crear un rol con permisos para
- CloudWatchAgentServerPolicy
- AmazonSSMManagedInstanceCore
- + Politica de ec2:DescribeTags
Asignar este rol a la instancia deseada
Una vez activado el rol, continuamos con la configuración del agente
Descargamos el agente desde:
wget https://amazoncloudwatch-agent.s3.amazonaws.com/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
Instalamos el paquete .deb
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
Verificamos el estado del servicio
amazon-cloudwatch-agent-ctl -a status
ahí nos indicará que falta configurar el servicio
ejecutamos el asistente de configuración
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

Dependiendo de la configuración, y el usuario que escojamos deberemos dar permiso a este usuario:
sudo usermod -aG adm cwagent
Una vez configurado, se generará un archivo en:
/opt/aws/amazon-cloudwatch-agent/bin/config.json
Debe moverse a
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
Activamos e Iniciamos el servicio
sudo systemctl enable amazon-cloudwatch-agent
sudo systemctl start amazon-cloudwatch-agent
Verificamos el estado usando
amazon-cloudwatch-agent-ctl -a status

Si todo salió bien deberias ver lo siguiente en cloudwatch

Esto nos permitirá generar un dashboar similar a:
