Cloud & IT Cert Prep · leksjon

CloudWatch-alarmer og sammensatte alarmer

Angi terskelbaserte alarmer som utløser Auto Scaling- eller SNS-varsler, og kombiner flere alarmer i en sammensatt alarm for å redusere varslingsstøy

Leksjon 2 av 413 trinn

CloudWatch-alarmer og sammensatte alarmer er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva er en CloudWatch-alarm?

En CloudWatch-alarm overvåker én enkelt metrikk eller resultatet av et uttrykk for metrikkberegning over en tidsperiode som De angir. Når metrikken krysser en terskel De har definert, endrer alarmen tilstand og kan automatisk utløse en handling, for eksempel å sende et SNS-varsel, skalere en Auto Scaling-gruppe, stoppe en EC2-instans eller opprette et Systems Manager OpsItem. Alarmer er den primære mekanismen for automatiserte driftsreaksjoner i AWS.

Alarmtilstander

En CloudWatch-alarm er alltid i én av tre tilstander: OK — metrikken er innenfor den definerte terskelen; ALARM — metrikken har overskredet terskelen i det nødvendige antallet evalueringsperioder; INSUFFICIENT_DATA — alarmen er nettopp opprettet, metrikken er ikke tilgjengelig, eller det er ennå ikke samlet inn nok data. Overganger mellom tilstander utløser handlinger som er konfigurert for den aktuelle tilstandsendringen — De kan ha ulike SNS-emner for tilstandene OK, ALARM og INSUFFICIENT_DATA.

# View all alarms and their current state
aws cloudwatch describe-alarms \
  --query 'MetricAlarms[].{Name:AlarmName,State:StateValue,Metric:MetricName}' \
  --output table

# List only alarms currently in ALARM state
aws cloudwatch describe-alarms \
  --state-value ALARM \
  --query 'MetricAlarms[].AlarmName'

Opprette en CloudWatch-alarm

Når De oppretter en alarm, angir De: metrikken og navneområdet, statistikken (Average, Sum, Maximum osv.), perioden (hvor ofte metrikken evalueres, i sekunder), evalueringsperiodene (hvor mange påfølgende perioder som må overskride terskelen), terskelverdien og sammenligningsoperatoren. Alarmen utløses når metrikken overskrider terskelen i det angitte antallet påfølgende evalueringsperioder.

# Create an alarm: trigger when CPU > 70% for 2 consecutive 5-min periods
aws cloudwatch put-metric-alarm \
  --alarm-name HighCPUAlarm \
  --alarm-description 'Trigger when EC2 CPU exceeds 70%' \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 2 \
  --threshold 70 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:AlertTeam

Alarmhandlinger: SNS, Auto Scaling, EC2

Alarmhandlinger kan rette seg mot flere mål: Amazon SNS-emner (for å sende e-post eller SMS, eller utløse Lambda), Auto Scaling-policyer (for å skalere en ASG inn eller ut) og EC2-handlinger (for å stoppe, avslutte, starte på nytt eller gjenopprette en EC2-instans). For hver tilstand (OK, ALARM, INSUFFICIENT_DATA) kan De angi et annet sett med handlinger — for eksempel varsle teamet ved ALARM, varsle om gjenoppretting med OK og varsle ved INSUFFICIENT_DATA for å oppdage hull i overvåkingen.

# Alarm that stops an idle EC2 instance when CPU < 1% for 30 min
aws cloudwatch put-metric-alarm \
  --alarm-name LowCPUStopInstance \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --statistic Average \
  --period 300 \
  --evaluation-periods 6 \
  --threshold 1 \
  --comparison-operator LessThanThreshold \
  --alarm-actions arn:aws:swf:us-east-1:111122223333:action/actions/AWS_EC2.InstanceId.Stop/1.0

Håndtering av manglende data

Når CloudWatch evaluerer en alarm og enkelte datapunkter mangler, må De bestemme hvordan de skal behandles. Alternativene er: notBreaching (behandle manglende data som om de er innenfor terskelen — alarmen forblir OK hvis øvrige data er OK), breaching (behandle manglende data som om terskelen er overskredet — alarmen går til ALARM), ignore (alarmtilstanden endres ikke) og missing (alarmen går til INSUFFICIENT_DATA). Feil valg kan føre til falske positiver eller ubemerkede feil — en viktig nyanse på SAA-C03-eksamenen.

# Set missing data treatment on an alarm
aws cloudwatch put-metric-alarm \
  --alarm-name WebsiteLatencyAlarm \
  --metric-name TargetResponseTime \
  --namespace AWS/ApplicationELB \
  --statistic Average \
  --period 60 \
  --evaluation-periods 3 \
  --threshold 2.0 \
  --comparison-operator GreaterThanThreshold \
  --treat-missing-data breaching \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:Ops

Alarmoppløsning og evalueringsperioder

Alarmoppløsningen er produktet av periode × evalueringsperioder. En periode på 60 sekunder med 5 evalueringsperioder betyr for eksempel at alarmen vurderer 5 påfølgende datapunkter på 1 minutt. Alarmen går som standard bare over til ALARM når alle fem periodene overskrider terskelen. De kan konfigurere datapoints-to-alarm slik at bare M av N perioder må overskride terskelen — for eksempel 3 av 5 — noe som reduserer falske positiver fra kortvarige topper.

# Alarm that requires 3 out of 5 periods to breach (reduces false positives)
aws cloudwatch put-metric-alarm \
  --alarm-name CPUSpike \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --statistic Average \
  --period 60 \
  --evaluation-periods 5 \
  --datapoints-to-alarm 3 \
  --threshold 80 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:autoscaling:us-east-1:111122223333:scalingPolicy:...

Sammensatte alarmer: kombinere flere alarmer

En sammensatt alarm evaluerer tilstanden til flere andre alarmer ved hjelp av boolsk logikk (AND, OR, NOT). Den går over til tilstanden ALARM bare når regeluttrykket evalueres til true. Sammensatte alarmer brukes til å redusere varselstøy — De kan for eksempel varsle bare hvis både alarmene for høy CPU-bruk og høy latenstid utløses samtidig, siden høy CPU-bruk alene kan være akseptabelt under batchbehandling. De kan også bruke sammensatte alarmer til å undertrykke underordnede alarmer under vedlikeholdsvinduer.

# Create a composite alarm (alerts only when BOTH CPU and latency are high)
aws cloudwatch put-composite-alarm \
  --alarm-name HighLoadComposite \
  --alarm-rule 'ALARM("HighCPUAlarm") AND ALARM("HighLatencyAlarm")' \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:CriticalOps \
  --alarm-description 'Alert only when both CPU and latency are elevated'

Undertrykking av alarmer med sammensatte alarmer

Sammensatte alarmer støtter handlinger for undertrykking av alarmer — De kan konfigurere en sammensatt alarm til å undertrykke de underordnede alarmene under planlagt vedlikehold. Under et distribusjonsvindu kan De for eksempel angi en sammensatt alarm som kombinerer en «MaintenanceMode»-alarm med OR-logikk, slik at alle varsler fra underordnede alarmer undertrykkes mens vedlikeholdet pågår. Dette hindrer en flom av varsler når De med hensikt tar tjenester offline for oppgraderinger.

# Composite alarm with suppression: alert UNLESS maintenance is active
aws cloudwatch put-composite-alarm \
  --alarm-name ProductionAlerts \
  --alarm-rule 'ALARM("HighCPUAlarm") AND NOT ALARM("MaintenanceModeAlarm")' \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:ProductionOps

Integrasjon med Auto Scaling-policyer

Auto Scaling-grupper bruker CloudWatch-alarmer som utløsere for policyer for trinnvis skalering og enkel skalering. Når alarmen går over til tilstanden ALARM, utføres skaleringspolicyen. Ved trinnvis skalering definerer De flere skaleringsjusteringer for ulike terskelområder — for eksempel legg til 1 instans hvis CPU-bruken er 70–80 %, legg til 3 hvis den er 80–90 %, og legg til 5 hvis den er over 90 %. Alarmen utløser det første relevante trinnet basert på overskridelsesnivået ved evalueringstidspunktet.

# Create a scale-out alarm linked to an ASG scaling policy
aws cloudwatch put-metric-alarm \
  --alarm-name ScaleOutTrigger \
  --metric-name CPUUtilization \
  --namespace AWS/EC2 \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --statistic Average \
  --period 60 \
  --evaluation-periods 2 \
  --threshold 70 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:autoscaling:us-east-1:111122223333:scalingPolicy:POLICY_ARN

CloudWatch-faktureringsalarmer

De kan opprette faktureringsalarmer i CloudWatch for å bli varslet når de beregnede AWS-kostnadene overstiger en terskel. Faktureringsmetrikker publiseres bare i Region us-east-1, uavhengig av hvor ressursene kjører, og oppdateres omtrent hver sjette time. For å aktivere faktureringsalarmer må De først slå på Billing Alerts i AWS Billing-konsollen. Det mer presise verktøyet er AWS Budgets, men CloudWatch-faktureringsalarmer er fortsatt et gyldig alternativ som testes på eksamenen.

# Create a billing alarm for $100 threshold
aws cloudwatch put-metric-alarm \
  --region us-east-1 \
  --alarm-name MonthlyBillingAlert \
  --alarm-description 'Alert when estimated charges exceed $100' \
  --metric-name EstimatedCharges \
  --namespace AWS/Billing \
  --dimensions Name=Currency,Value=USD \
  --statistic Maximum \
  --period 86400 \
  --evaluation-periods 1 \
  --threshold 100 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:111122223333:BillingAlerts

Teste og overvåke alarmer

De kan angi alarmtilstanden manuelt ved hjelp av kommandoen set-alarm-state for å teste alarmhandlinger uten å vente på et reelt terskelbrudd. Dette er nyttig for å kontrollere at SNS-emnene, Auto Scaling-policyene og Lambda-funksjonene reagerer som de skal. Test alltid alarmhandlingene i et ikke-produksjonsmiljø, og kontroller at de riktige e-postabonnementene for SNS-emnet er bekreftet før De stoler på alarmer for varsling i produksjon.

# Manually trigger an alarm for testing (does NOT persist — reverts on next evaluation)
aws cloudwatch set-alarm-state \
  --alarm-name HighCPUAlarm \
  --state-value ALARM \
  --state-reason 'Testing alarm action'

# Watch alarm state history
aws cloudwatch describe-alarm-history \
  --alarm-name HighCPUAlarm \
  --history-item-type StateUpdate \
  --query 'AlarmHistoryItems[].{Time:Timestamp,Summary:HistorySummary}'

Hurtigsjekk

Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen har De lært at alarmer har tre tilstander (OK, ALARM, INSUFFICIENT_DATA) og kan utløse SNS-, Auto Scaling- og EC2-handlinger, at datapoints-to-alarm tillater M-av-N-evaluering for å redusere falske positiver, og at sammensatte alarmer bruker boolsk logikk til å kombinere flere alarmer og redusere varselstøy. Neste tema er CloudWatch Logs og Log Insights for sentralisert loggbehandling.

Gratis å komme i gang

Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
150
Leksjoner
600

Ofte stilte spørsmål

Er leksjonen «CloudWatch-alarmer og sammensatte alarmer» gratis?

Ja – hele teksten i «CloudWatch-alarmer og sammensatte alarmer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva lærer jeg i «CloudWatch-alarmer og sammensatte alarmer»?

Angi terskelbaserte alarmer som utløser Auto Scaling- eller SNS-varsler, og kombiner flere alarmer i en sammensatt alarm for å redusere varslingsstøy Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?

Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «CloudWatch-alarmer og sammensatte alarmer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?

Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. CloudWatch-metrikker, navnerom og dimensjoner
  2. CloudWatch-alarmer og sammensatte alarmer
  3. CloudWatch Logs og Log Insights
  4. CloudWatch-dashbord og Container Insights
← Tilbake til Cloud & IT Cert Prep