Cómo gestionar AWS Cloudwatch con aws-cli

En este artículo, te mostraré los comandos aws-cli para gestionar Cloudwatch desde el terminal. Esta guía te ayudará a empezar a utilizar aws-cli para crear y gestionar las alarmas de Cloudwatch. Veremos los comandos para crear, gestionar y eliminar una alarma de monitorización de la CPU de EC2. Se supone que ya estás familiarizado con los servicios de AWS EC2 y Cloudwatch.

A continuación se presentan los comandos aws-cli para Cloudwatch que veremos en este artículo.

  1. list-metrics: Este comando enumera las métricas especificadas.
  2. put-metric-alarm: Puedes crear y actualizar una alarma con este comando.
  3. describir-alarmas: Obtiene detalles de la alarma especificada.
  4. establecer-estado-de-alarma: Cambia el estado de la alarma temporalmente con fines de prueba utilizando este comando.
  5. describir-historia-de-alarma: Comprueba el historial de la alarma especificada utilizando este comando.
  6. borrar-alarmas: utiliza este comando para borrar una alarma concreta.

Visita la documentación oficial aquí para conocer todos los comandos disponibles para gestionar Cloudwatch.

Requisitos previos

  1. Cuenta de AWS(Créala si no tienes una).
  2. Conocimiento básico de la instancia EC2 (Haz clic aquí para aprender a crear una instancia EC2).
  3. Conocimiento básico de Cloudwatch (Haz clic aquí para aprender a crear alarmas para una instancia EC2 desde la consola de AWS).
  4. Usuario IAM de AWS con la política AdministratorAccess asociada a él y sus claves de acceso y secretas (Haz clic aquí para aprender a crear un usuario IAM).
  5. AWS CLI instalado en tu máquina local.
  6. Tema SNS(Haz clic aquí para aprender a crear un tema SNS utilizando Cloudformation).

¿Qué vamos a hacer?

  1. Comprueba aws cli y exporta la clave de acceso y secreta de AWS en tu máquina local.
  2. Gestiona Cloudwatch con aws-cli

Comprueba aws cli y exporta la clave de acceso y secreta de AWS en tu máquina local.

Antes de continuar, asegúrate de que tienes aws-cli instalado en tu máquina local.

aws --verson #aws-cli/2.0.0 Python/3.8.2 Darwin/19.2.0 botocore/2.0.0dev7

Obtén tu acceso de usuario de AWS IAM y las claves secretas y expórtalas a tu terminal.

export AWS_ACCESS_KEY_ID=<your-iam-user-access-key-here>
export AWS_SECRET_ACCESS_KEY=<your-iam-user-secret-key-here>

Comprueba la identidad de las claves que has exportado.

aws sts get-caller-identity

Conseguir la llamada identidad

Verás mis claves en la captura de pantalla anterior, no podrás utilizarlas porque ya no están activas. Además, ten en cuenta que nunca debes compartir tus claves con nadie.

Gestionar Cloudwatch con aws-cli

Crear una alarma no sirve de nada si las notificaciones no nos llegan cuando se activa la alarma. Para enviar alertas necesitamos un Tema SNS con una suscripción a él. Ya tengo unos cuantos temas SNS con una suscripción de correo electrónico a uno de ellos. Lo utilizaré para la demostración. Si no tienes un tema SNS, créalo antes de continuar.

Obtén una lista de los Temas SNS existentes en tu cuenta.

aws sns list-topics

Obtén los ID de las instancias para crear una alarma para cualquiera de ellas.

aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"

Lista de Temas SNS e IDs de instancias EC2

Conserva el ID de la instancia y el ARN del SNS. Comprueba las métricas disponibles para las instancias EC2.

aws cloudwatch list-metrics --namespace "AWS/EC2"

Ahora, vamos a crear una alarma llamada «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 active 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

Comprueba la alarma en el panel de control de Cloudwatch

Describe la alarma que acabamos de crear y mira sus detalles.

aws cloudwatch describe-alarms --alarm-names cpu-mon

Puedes cambiar el estado de la alarma. Para activarla con fines de prueba, vamos a cambiar el estado a «ALARMA». Esto cambiará el estado de la 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"

Comprueba el historial de estados de alarma.

aws cloudwatch describe-alarm-history --alarm-name "cpu-mon" --history-item-type StateUpdate

Establecer el estado de la alarma

Cuando ya no necesites esa alarma que has creado, puedes eliminarla con el siguiente comando.

aws cloudwatch delete-alarms --alarm-names cpu-mon

Comprueba si la alarma ha sido eliminada.

aws cloudwatch describe-alarms

Borrar la alarma

Conclusión

En este artículo, hemos visto los comandos para crear y gestionar alarmas desde el terminal utilizando aws-cli. Hemos creado una alarma para una Instancia EC2 para monitorizar la utilización de la CPU. Hemos visto cómo cambiar el estado de la alarma manualmente para probar la alarma que hemos creado. También vimos el comando para eliminar la alarma que creamos. Esta guía puede ayudarte a empezar con AWS Cloudwatch, puedes probar diferentes comandos y opciones disponibles para gestionar Cloudwatch usando aws-cli.

También te podría gustar...