Dans cet article, je vais vous montrer les commandes aws-cli pour gérer Cloudwatch depuis le terminal. Ce guide vous aidera à démarrer avec aws-cli pour créer et gérer des alarmes Cloudwatch. Nous verrons des commandes pour créer, gérer, supprimer une alarme de surveillance EC2 CPU. Il est supposé que vous êtes déjà familiarisé avec les services AWS EC2, Cloudwatch.
Voici les commandes aws-cli pour Cloudwatch que nous verrons dans cet article.
- list-metric s :cette commande répertorie les métriques spécifiées.
- put-metric-alarm : Vous pouvez créer et mettre à jour une alarme à l'aide de cette commande.
- description-alarmes :Obtenir les détails de l'alarme spécifiée.
- définir l'état de l'alarme :Modifiez temporairement l'état de l'alarme à des fins de test à l'aide de cette commande.
- describe-alarm-history :Vérifiez l'historique de l'alarme spécifiée à l'aide de cette commande.
- supprimer-alarmes : utilisez cette commande pour supprimer une alarme particulière.
Consultez la documentation officielle ici pour savoir quelles sont toutes les commandes disponibles pour gérer Cloudwatch.
Pré-requis
- Compte AWS (Créez si vous n'en avez pas).
- Compréhension de base de l'instance EC2 (Cliquez ici pour apprendre à créer une instance EC2).
- Compréhension de base de Cloudwatch (Cliquez ici pour apprendre à créer des alarmes pour une instance EC2 à partir de la console AWS).
- Utilisateur AWS IAM auquel est associée une stratégie d'accès administrateur, ainsi que ses clés d'accès et secrètes (Cliquez ici pour apprendre à créer un utilisateur IAM).
- AWS CLI installé sur votre ordinateur local.
- Sujet SNS (Cliquez ici pour apprendre à créer un sujet SNS à l'aide de Cloudformation).
Qu'allons-nous faire ?
- Vérifiez aws cli et exportez l'accès AWS et la clé secrète sur votre ordinateur local.
- Gérer Cloudwatch à l'aide d'aws-cli
Vérifiez aws cli et exportez l'accès AWS et la clé secrète sur votre local machine.
Avant de continuer, assurez-vous que aws-cli est installé sur votre machine locale.
aws --verson #aws-cli/2.0.0 Python/3.8.2 Darwin/19.2.0 botocore/2.0.0dev7
Obtenez votre accès utilisateur et vos clés secrètes AWS IAM et exportez-les vers votre terminal.
export AWS_ACCESS_KEY_ID=<your-iam-user-access-key-here>
export AWS_SECRET_ACCESS_KEY=<your-iam-user-secret-key-here>
Vérifiez l'identité des clés que vous avez exportées.
aws sts get-caller-identity
Vous verrez mes clés dans la capture d'écran ci-dessus, vous ne pourrez pas les utiliser car elles ne sont plus actives. Notez également que vous ne partagez jamais vos clés avec qui que ce soit.
Gérer 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. J'ai déjà quelques sujets SNS avec un abonnement par e-mail à l'un d'entre eux. Je vais l'utiliser à des fins de démonstration. Si vous n'avez pas de sujet SNS, créez-le avant de continuer.
Obtenez une liste des sujets SNS existants dans votre compte.
aws sns list-topics
Obtenez les ID des instances pour créer une alarme pour n'importe laquelle d'entre elles.
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"
Conservez l'ID d'instance et l'ARN SNS. Vérifiez 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 processeur dépasse "70 %" pendant "300 secondes" pour l'instance spécifiée. Lorsque l'alarme est 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
Décrivez l'alarme que nous venons de créer et consultez ses détails.
aws cloudwatch describe-alarms --alarm-names cpu-mon
Vous pouvez modifier l'état de l'alarme. Pour le 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 à la rubrique SNS.
aws cloudwatch set-alarm-state --alarm-name "cpu-mon" --state-value ALARM --state-reason "testing purposes"
Consultez l'historique des états d'alarme.
aws cloudwatch describe-alarm-history --alarm-name "cpu-mon" --history-item-type StateUpdate
Lorsque vous n'avez plus besoin de l'alarme que vous avez créée, vous pouvez la supprimer à l'aide de la commande suivante.
aws cloudwatch delete-alarms --alarm-names cpu-mon
Vérifiez si l'alarme a été supprimée.
aws cloudwatch describe-alarms
Conclusion
Dans cet article, nous avons vu les commandes pour créer et gérer les alarmes depuis le terminal à l'aide de aws-cli. Nous avons créé une alarme pour EC2 Instance afin de surveiller l'utilisation du processeur. Nous avons vu comment modifier manuellement l'état de l'alarme pour tester l'alarme que nous avons créée. Nous avons également vu la commande pour supprimer l'alarme que nous avons créée. Ce guide peut vous aider à démarrer avec AWS Cloudwatch. Vous pouvez essayer différentes commandes et options disponibles pour gérer Cloudwatch à l'aide d'aws-cli.