Cómo administrar AWS Cloudwatch usando aws-cli
En este artículo, le mostraré los comandos aws-cli para administrar Cloudwatch desde la terminal. Esta guía lo ayudará a comenzar a usar aws-cli para crear y administrar alarmas de Cloudwatch. Veremos comandos para crear, administrar, eliminar una alarma de monitoreo de CPU EC2. Se supone que ya está familiarizado con AWS EC2, los servicios de Cloudwatch.
Los siguientes son los comandos aws-cli para Cloudwatch que veremos en este artículo.
- métrica de listas: este comando enumera las métricas especificadas.
- poner-metrica-alarma: puede crear y actualizar una alarma con este comando.
- describir-alarmas: Obtener detalles de la alarma especificada.
- establecer estado de alarma: cambie el estado de la alarma temporalmente con fines de prueba usando este comando.
- describir-historial-de-alarmas: Verifique el historial de la alarma especificada usando este comando.
- eliminar-alarmas: use este comando para eliminar una alarma en particular.
Visita la documentación oficial aquí para saber qué comandos están disponibles para administrar Cloudwatch.
requisitos previos
- Cuenta AWS (Crear si no tienes uno).
- Comprensión básica de la instancia EC2 (Haga clic aquí para aprender a crear una instancia EC2).
- Comprensión básica de Cloudwatch (haga clic aquí para aprender a crear alarmas para una instancia EC2 desde la consola de AWS).
- Usuario de AWS IAM con AdministradorAcceso política adjunta y sus claves secretas y de acceso (Haga clic aquí para obtener información sobre cómo crear un usuario de IAM).
- AWS CLI instalado en su máquina local.
- Tema de SNS (Haga clic aquí para aprender a crear un tema de SNS usando Cloudformation).
¿Que haremos?
- Verifique aws cli y exporte la clave secreta y de acceso de AWS en su máquina local.
- Administre Cloudwatch mediante aws-cli
Verifique aws cli y exporte la clave secreta y de acceso de AWS en su máquina local.
Antes de continuar, asegúrese de tener aws-cli instalado en su máquina local.
aws --verson #aws-cli/2.0.0 Python/3.8.2 Darwin/19.2.0 botocore/2.0.0dev7
Obtenga sus claves secretas y de acceso de usuario de AWS IAM y expórtelas a su terminal.
export AWS_ACCESS_KEY_ID=<your-iam-user-access-key-here>
export AWS_SECRET_ACCESS_KEY=<your-iam-user-secret-key-here>
Verifique la identidad de las claves que exportó.
aws sts get-caller-identity
Verá mis claves en la captura de pantalla anterior, no podrá usarlas porque ya no están activas. Además, tome nota de que nunca comparte sus llaves con nadie.
Administre Cloudwatch mediante aws-cli
De nada sirve crear una alarma si no nos llegan las notificaciones cuando salta la alarma. Para enviar alertas, necesitamos un tema de SNS con una suscripción. Ya tengo algunos temas de SNS con una suscripción por correo electrónico a uno de ellos. Lo usaré para fines de demostración. Si no tiene un tema de SNS, créelo antes de continuar.
Obtenga una lista de los temas de SNS existentes en su cuenta.
aws sns list-topics
Obtenga ID de las instancias para crear una alarma para cualquiera de ellas.
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"
Conserve el ID de instancia y el ARN de SNS. Verifique las métricas disponibles para las instancias EC2.
aws cloudwatch list-metrics --namespace "AWS/EC2"
Ahora, creemos una alarma denominada «cpu-mon» que se activará cuando la utilización de la CPU supere el «70 por ciento» durante «300 segundos» para la instancia especificada. Cuando se activa la alarma, se enviará una notificación al SNS especificado.
aws cloudwatch put-metric-alarm --alarm-name cpu-mon --alarm-description "Test Alarm when CPU exceeds 70 percent" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions "Name=InstanceId,Value=<instance-id>" --evaluation-periods 2 --alarm-actions <sns-arn> --unit Percent
Describa la alarma que acabamos de crear y vea sus detalles.
aws cloudwatch describe-alarms --alarm-names cpu-mon
Puede cambiar el estado de la alarma. Para activarlo con fines de prueba, cambiemos el estado a «ALARMA». Esto cambiará el estado de alarma a «ALARMA» y se enviará una notificación al tema SNS.
aws cloudwatch set-alarm-state --alarm-name "cpu-mon" --state-value ALARM --state-reason "testing purposes"
Consultar el historial de estados de alarma.
aws cloudwatch describe-alarm-history --alarm-name "cpu-mon" --history-item-type StateUpdate
Cuando ya no necesite la alarma que creó, puede eliminarla con el siguiente comando.
aws cloudwatch delete-alarms --alarm-names cpu-mon
Verifique si la alarma ha sido eliminada.
aws cloudwatch describe-alarms
Conclusión
En este artículo vimos los comandos para crear y administrar alarmas desde la terminal usando aws-cli. Creamos una alarma para la instancia EC2 para monitorear la utilización de la CPU. Vimos cómo cambiar el estado de la alarma manualmente para probar la alarma que creamos. También vimos el comando para eliminar la alarma que creamos. Esta guía puede ayudarlo a comenzar con AWS Cloudwatch, puede probar diferentes comandos y opciones disponibles para administrar Cloudwatch usando aws-cli.