AWS Cloudwatch beheren met aws-cli

In dit artikel laat ik je aws-cli commando’s zien om Cloudwatch vanaf de terminal te beheren. Deze gids zal je op weg helpen met het gebruik van aws-cli voor het maken en beheren van Cloudwatch alarmen. We zullen commando’s zien om een EC2 CPU monitoring alarm aan te maken, te beheren, te verwijderen. Er wordt verondersteld dat je al bekend bent met AWS EC2, Cloudwatch diensten.

Hieronder volgen de aws-cli commando’s voor Cloudwatch die we in dit artikel zullen zien.

  1. list-metrics: Dit commando geeft een lijst van de opgegeven metrics.
  2. put-metric-alarm: Met dit commando kun je een alarm maken en bijwerken.
  3. describe-alarms: Krijg details van het gespecificeerde alarm.
  4. set-alarm-state: Verander de toestand van het alarm tijdelijk voor testdoeleinden met dit commando.
  5. beschrijf-alarm-geschiedenis: Bekijk de geschiedenis van het gespecificeerde alarm met dit commando.
  6. delete-alarms: gebruik dit commando om een bepaald alarm te verwijderen.

Bezoek hier de officiële documentatieom te weten welke commando’s er allemaal zijn om Cloudwatch te beheren.

Vereisten

  1. AWS Account (Maak aan als je er geen hebt).
  2. Basiskennis van EC2 instance(Klik hierom te leren hoe je een EC2 instance maakt).
  3. Basiskennis van Cloudwatch (Klik hier om teleren hoe je Alarms voor een EC2 instance kunt maken vanuit de AWS Console).
  4. AWS IAM gebruiker metAdministratorAccess beleid eraan gekoppeld en zijn toegangs- en geheime sleutels (Klik hier om te leren een IAMgebruiker te maken).
  5. AWS CLI geïnstalleerd op je lokale machine.
  6. SNS Topic(Klik hierom te leren hoe je een SNS topic maakt met Cloudformation).

Wat zullen we doen?

  1. Controleer aws cli en exporteer de AWS toegangs- & geheime sleutel op je lokale machine.
  2. Cloudwatch beheren met aws-cli

Controleer aws cli en exporteer de AWS access & secret key op je lokale machine.

Voordat je verder gaat, moet je zeker weten dat je aws-cli op je lokale machine geïnstalleerd hebt.

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

Haal je AWS IAM gebruikerstoegang en geheime sleutels op en exporteer ze naar je terminal.

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

Controleer de identiteit van de sleutels die je exporteerde.

aws sts get-caller-identity

Krijg opgeroepen identiteit

Je ziet mijn sleutels in de bovenstaande schermafdruk, je zult ze niet meer kunnen gebruiken omdat ze niet meer actief zijn. Maak ook een notitie dat je je sleutels nooit met iemand deelt.

Cloudwatch beheren met aws-cli

Het aanmaken van een alarm is zinloos als meldingen ons niet bereiken als het alarm afgaat. Om meldingen te versturen hebben we een SNS Topic nodig met een abonnement erop. Ik heb al een paar SNS topics met een e-mail abonnement op een ervan. Ik zal het gebruiken voor demodoeleinden. Als je nog geen SNS onderwerp hebt, maak het dan aan voordat je verder gaat.

Verkrijg een lijst van bestaande SNS Onderwerpen in je account.

aws sns list-topics

Verkrijg ID’s van de instanties om een alarm voor een van hen te maken.

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

Lijst SNS Onderwerpen en EC2 instantie ID's

Bewaar de instance ID en SNS ARN. Controleer de beschikbare statistieken voor EC2 instances.

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

Laten we nu een alarm maken met de naam “cpu-mon” dat zal afgaan als het CPU gebruik gedurende “300 seconden” “70 procent” overschrijdt voor de gespecificeerde Instance. Als het alarm afgaat, zal een melding naar de gespecificeerde SNS gestuurd worden.

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

Controleer het alarm in Cloudwatch Dashboard

Beschrijf het alarm dat we zojuist gemaakt hebben en bekijk de details.

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

Je kunt de toestand van het alarm veranderen. Om het voor testdoeleinden te activeren, veranderen we de toestand in “ALARM”. Dit verandert de alarmtoestand in “ALARM” en er wordt een melding naar het SNS Topic gestuurd.

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

Bekijk de geschiedenis van alarmtoestanden.

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

Alarmtoestand instellen

Als je het alarm dat je maakte niet meer nodig hebt, kan het met het volgende commando worden verwijderd.

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

Controleer of het alarm verwijderd is.

aws cloudwatch describe-alarms

Verwijder het alarm

Conclusie

In dit artikel zagen we de commando’s om alarmen vanaf de terminal te maken en te beheren met aws-cli. We maakten een alarm voor EC2 Instance om het CPU gebruik in de gaten te houden. We zagen hoe je de alarmtoestand handmatig kunt veranderen om het gemaakte alarm te testen. We zagen ook het commando om het door ons gemaakte alarm te verwijderen. Deze gids kan je helpen om met AWS Cloudwatch aan de slag te gaan, je kunt verschillende commando’s en opties uitproberen die beschikbaar zijn om Cloudwatch te beheren met aws-cli.