Comment gérer AWS Cloudwatch à l’aide de aws-cli

Dans cet article, je vais te montrer les commandes aws-cli pour gérer Cloudwatch depuis le terminal. Ce guide t’aidera à commencer à utiliser aws-cli pour créer, gérer les alarmes Cloudwatch. Nous verrons des commandes pour créer, gérer et supprimer une alarme de surveillance des CPU EC2. Nous supposons que tu connais déjà les services AWS EC2 et Cloudwatch.

Voici les commandes aws-cli pour Cloudwatch que nous verrons dans cet article.

  1. list-metrics: Cette commande répertorie les métriques spécifiées.
  2. put-metric-alarm: Tu peux créer et mettre à jour une alarme à l’aide de cette commande.
  3. describe-alarms: Obtient des détails sur l’alarme spécifiée.
  4. set-alarm-state: Change l’état de l’alarme temporairement à des fins de test à l’aide de cette commande.
  5. describe-alarm-history: Vérifie l’historique de l’alarme spécifiée à l’aide de cette commande.
  6. delete-alarms: utilise cette commande pour supprimer une alarme particulière.

Visite la documentation officielle ici pour savoir quelles sont toutes les commandes disponibles pour gérer Cloudwatch.

Pré-requis

  1. Compte AWS (Créer si tu n’en as pas).
  2. Compréhension de base de l’instance EC2.
  3. Connaissance de base de Cloudwatch.
  4. Utilisateur AWS IAM avec la politique AdministratorAccess qui lui est attachée et ses clés d’accès et secrètes.
  5. AWS CLI installé sur ta machine locale.
  6. Sujet SNS.

Que ferons-nous ?

  1. Vérifie aws cli et exporte la clé d’accès et secrète AWS sur ta machine locale.
  2. Gérer Cloudwatch à l’aide d’aws-cli

Vérifie aws cli et exporte la clé secrète et d’accès AWS sur ta machine locale.

Avant de continuer, vérifie que tu as installé aws-cli sur ta machine locale.

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

Récupère les clés d’accès et secrètes de ton utilisateur AWS IAM et exporte-les sur ton terminal.

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

Vérifie l’identité des clés que tu as exportées.

aws sts get-caller-identity

Obtenir l'identité appelée

Tu verras mes clés dans la capture d’écran ci-dessus, tu ne pourras pas les utiliser car elles ne sont plus actives. Note également que tu ne dois jamais partager tes clés avec qui que ce soit.

Gère Cloudwatch à l’aide d’aws-cli

Créer une alarme est inutile si les notifications ne nous parviennent pas lorsque l’alarme est déclenchée. Pour envoyer des alertes, nous avons besoin d’un Sujet SNS avec un abonnement à celui-ci. J’ai déjà quelques sujets SNS avec un abonnement à l’un d’entre eux. Je vais l’utiliser à des fins de démonstration. Si tu n’as pas de sujet SNS, crée-le avant de continuer.

Obtiens une liste des sujets SNS existants dans ton compte.

aws sns list-topics

Récupère les ID des instances pour créer une alarme pour l’une d’entre elles.

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

Liste des sujets SNS et des ID d'instance EC2

Conserve l’ID de l’instance et l’ARN SNS. Vérifie les métriques disponibles pour les instances EC2.

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

Maintenant, créons une alarme nommée « cpu-mon » qui sera déclenchée lorsque l’utilisation du CPU franchira « 70 pour cent » pendant « 300 secondes » pour l’Instance spécifiée. Lorsque l’alarme sera déclenchée, une notification sera envoyée au SNS spécifié.

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

Vérifie l'alarme dans Cloudwatch Dashboard

Décris l’alarme que nous venons de créer et vois ses détails.

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

Tu peux modifier l’état de l’alarme. Pour la déclencher à des fins de test, changeons l’état en « ALARME ». Cela changera l’état de l’alarme en « ALARME » et une notification sera envoyée au sujet SNS.

aws cloudwatch set-alarm-state --alarm-name "cpu-mon" --state-value ALARM --state-reason "testing purposes"

Vérifie l’historique des états d’alarme.

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

Définir l'état de l'alarme

Lorsque tu n’as plus besoin de l’alarme que tu as créée, tu peux la supprimer avec la commande suivante.

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

Vérifie si l’alarme a été supprimée.

aws cloudwatch describe-alarms

Supp supprimer l'alarme

Dans cet article, nous avons vu les commandes permettant de créer et de gérer des alarmes depuis le terminal à l’aide d’aws-cli. Nous avons créé une alarme pour une Instance EC2 afin de surveiller l’utilisation du CPU. Nous avons vu comment modifier l’état de l’alarme manuellement pour tester l’alarme que nous avons créée. Nous avons également vu la commande permettant de supprimer l’alarme que nous avons créée. Ce guide peut t’aider à démarrer avec AWS Cloudwatch, tu peux essayer différentes commandes et options disponibles pour gérer Cloudwatch à l’aide d’aws-cli.

Vous aimerez aussi...