AWS Solutions Architect · Oppitunti

CloudWatch-hälytykset ja yhdistelmähälytykset

Määritä kynnysarvopohjaisia hälytyksiä käynnistämään automaattinen skaalaus tai SNS-ilmoituksia ja yhdistä useita hälytyksiä yhdistelmähälytykseksi hälytysmäärän vähentämiseksi.

Oppitunti 2/413 vaihetta

CloudWatch-hälytykset ja yhdistelmähälytykset on ilmainen AWS Solutions Architect-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS Solutions Architect-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mikä on CloudWatch-hälytys?

CloudWatch-hälytys valvoo yhtä mittaria tai mittarilausekkeen laskennan tulosta määrittämälläsi ajanjaksolla. Kun mittari ylittää määrittämäsi kynnysarvon, hälytyksen tila muuttuu ja se voi automaattisesti käynnistää toiminnon, kuten lähettää SNS-ilmoituksen, skaalata Auto Scaling -ryhmää, pysäyttää EC2-instanssin tai luoda Systems Manager OpsItem -kohteen. Hälytykset ovat AWS:n automaattisen operatiivisen reagoinnin ensisijainen mekanismi.

Hälytysten tilat

CloudWatch-hälytys on aina yhdessä kolmesta tilasta: OK — mittari on määritetyn kynnysarvon sisällä; ALARM — mittari on ylittänyt kynnysarvon vaaditun arviointijaksojen määrän ajan; INSUFFICIENT_DATA — hälytys on juuri luotu, mittari ei ole käytettävissä tai tietoja ei ole vielä kerätty riittävästi. Tilasiirtymät käynnistävät kyseiselle tilanmuutokselle määritetyt toiminnot — voit käyttää eri SNS-aiheita tiloille OK, ALARM ja 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'

CloudWatch-hälytyksen luominen

Hälytystä luodessasi määrität seuraavat: mittarin ja nimiavaruuden, tilastollisen suureen (Average, Sum, Maximum jne.), jakson (kuinka usein mittari arvioidaan sekunteina), arviointijaksot (kuinka monen peräkkäisen jakson on ylitettävä kynnysarvo), kynnysarvon sekä vertailuoperaattorin. Hälytys käynnistyy, kun mittari ylittää kynnysarvon määritetyn peräkkäisten arviointijaksojen määrän ajan.

# 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

Hälytystoiminnot: SNS, Auto Scaling ja EC2

Hälytystoiminnot voivat kohdistua useisiin kohteisiin: Amazon SNS -aiheisiin (sähköpostin tai tekstiviestin lähettämiseen tai Lambdan käynnistämiseen), Auto Scaling -käytäntöihin (ASG:n pienentämiseen tai suurentamiseen) sekä EC2-toimintoihin (EC2-instanssin pysäyttämiseen, lopettamiseen, uudelleenkäynnistämiseen tai palauttamiseen). Voit määrittää kullekin tilalle (OK, ALARM, INSUFFICIENT_DATA) eri toimintojoukon — esimerkiksi ilmoittaa tiimille ALARM-tilassa, ilmoittaa palautumisesta OK-tilassa ja ilmoittaa INSUFFICIENT_DATA-tilasta valvonnan aukkojen havaitsemiseksi.

# 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

Puuttuvien tietojen käsittely

Kun CloudWatch arvioi hälytystä ja joitakin datapisteitä puuttuu, sinun on päätettävä, miten niitä käsitellään. Vaihtoehdot ovat: notBreaching (puuttuvia tietoja käsitellään kynnysarvon sisällä olevina — hälytys pysyy OK-tilassa, jos muut tiedot ovat kunnossa), breaching (puuttuvia tietoja käsitellään kynnysarvon ylittävinä — hälytys siirtyy ALARM-tilaan), ignore (hälytyksen tila ei muutu) ja missing (hälytys siirtyy INSUFFICIENT_DATA-tilaan). Väärän vaihtoehdon valitseminen johtaa virheellisiin hälytyksiin tai huomaamatta jääviin vikatilanteisiin — tämä on keskeinen SAA-C03-kokeen yksityiskohta.

# 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

Hälytyksen tarkkuus ja arviointijaksot

Hälytyksen tarkkuus saadaan kertomalla jakso arviointijaksojen määrällä. Esimerkiksi 60 sekunnin jakso ja 5 arviointijaksoa tarkoittavat, että hälytys tarkastelee viittä peräkkäistä yhden minuutin datapistettä. Hälytys siirtyy ALARM-tilaan oletusarvoisesti vasta, kun kaikki viisi jaksoa ylittävät kynnysarvon. Voit määrittää asetuksen datapoints-to-alarm niin, että kynnysarvon on ylityttävä vain M:ssä N:stä jaksosta — esimerkiksi 3:ssa 5:stä — mikä vähentää hetkellisten piikkien aiheuttamia virheellisiä hälytyksiä.

# 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:...

Koostehälytykset: useiden hälytysten yhdistäminen

Koostehälytys arvioi useiden muiden hälytysten tilan Boolen logiikan avulla (AND, OR, NOT). Se siirtyy ALARM-tilaan vain, kun sen sääntölausekkeen tulos on tosi. Koostehälytyksiä käytetään hälytysmelun vähentämiseen — esimerkiksi hälytys lähetetään vain, jos sekä korkean suorittimen käyttöasteen että korkean viiveen hälytykset ovat aktiivisia samanaikaisesti, koska pelkkä korkea suorittimen käyttöaste voi olla hyväksyttävää eräkäsittelyn aikana. Koostehälytysten avulla voit myös vaimentaa alihälytykset huoltoikkunoiden ajaksi.

# 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'

Hälytysten vaimennus koostehälytyksillä

Koostehälytykset tukevat hälytysten vaimennustoimintoja — voit määrittää koostehälytyksen vaimentamaan alihälytyksensä suunnitellun huollon aikana. Voit esimerkiksi määrittää käyttöönottovaiheen ajaksi koostehälytyksen, joka yhdistää 'MaintenanceMode'-hälytyksen OR-logiikalla ja vaimentaa kaikki alihälytysten ilmoitukset huollon ollessa käynnissä. Näin estetään ilmoitusten tulva, kun palvelut poistetaan tarkoituksellisesti käytöstä päivityksiä varten.

# 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

Integrointi Auto Scaling -käytäntöihin

Auto Scaling -ryhmät käyttävät CloudWatch-hälytyksiä step scaling- ja simple scaling -käytäntöjen käynnistiminä. Kun hälytys siirtyy ALARM-tilaan, skaalauskäytäntö suoritetaan. Step scaling -toimintoa varten määrität useita skaalausmuutoksia eri kynnysarvoalueille — esimerkiksi lisäät yhden instanssin, jos suorittimen käyttöaste on 70–80 %, kolme, jos se on 80–90 %, ja viisi, jos se on yli 90 %. Hälytys käynnistää arviointihetken ylitystasoon perustuvan ensimmäisen soveltuvan vaiheen.

# 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-laskutushälytykset

Voit luoda CloudWatchissa laskutushälytyksiä, jotka ilmoittavat, kun arvioidut AWS-kulusi ylittävät kynnysarvon. Laskutusmittarit julkaistaan vain us-east-1-alueella (riippumatta siitä, missä resurssisi ovat käynnissä), ja ne päivittyvät noin kuuden tunnin välein. Laskutushälytysten käyttöön ottamiseksi sinun on ensin otettava Billing Alerts käyttöön AWS Billing -konsolissa. Tarkempi työkalu on AWS Budgets, mutta CloudWatch-laskutushälytykset ovat edelleen kokeessa testattava kelvollinen vaihtoehto.

# 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

Hälytysten testaaminen ja valvonta

Voit asettaa hälytyksen tilan manuaalisesti set-alarm-state-komennolla ja testata hälytystoimintoja odottamatta todellista kynnysarvon ylitystä. Tämä on hyödyllistä, kun varmistat, että SNS-aiheesi, Auto Scaling -käytäntösi ja Lambda-funktiosi reagoivat oikein. Testaa hälytystoiminnot aina tuotantoympäristön ulkopuolella ja varmista ennen hälytysten käyttämistä tuotannon ilmoituksiin, että SNS-aiheeseen liitetyt sähköpostitilaukset on vahvistettu oikein.

# 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}'

Pikatarkistus

Testaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämistä.

Oppitunnin yhteenveto

Tässä oppitunnissa opit, että hälytyksillä on kolme tilaa (OK, ALARM, INSUFFICIENT_DATA) ja ne voivat käynnistää SNS-, Auto Scaling- ja EC2-toimintoja, datapoints-to-alarm mahdollistaa M:N:stä -arvioinnin virheellisten hälytysten vähentämiseksi ja koostehälytykset yhdistävät useita hälytyksiä Boolen logiikalla sekä vähentävät hälytysmelua. Seuraavaksi tutustumme CloudWatch Logsiin ja Log Insightsiin keskitettyä lokienhallintaa varten.

Aloita maksutta

Opi AWS Solutions Architect tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”CloudWatch-hälytykset ja yhdistelmähälytykset” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS Solutions Architect-oppimispolun 3 oppituntia, myös oppitunnin “CloudWatch-hälytykset ja yhdistelmähälytykset”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS Solutions Architect-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”CloudWatch-hälytykset ja yhdistelmähälytykset”?

Määritä kynnysarvopohjaisia hälytyksiä käynnistämään automaattinen skaalaus tai SNS-ilmoituksia ja yhdistä useita hälytyksiä yhdistelmähälytykseksi hälytysmäärän vähentämiseksi. Harjoittelet AWS Solutions Architect-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS Solutions Architect-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS Solutions Architect-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”CloudWatch-hälytykset ja yhdistelmähälytykset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä AWS Solutions Architect-oppitunnilla?

Kyllä. Jokainen AWS Solutions Architect-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. CloudWatch-mittarit, nimiavaruudet ja dimensiot
  2. CloudWatch-hälytykset ja yhdistelmähälytykset
  3. CloudWatch-lokit ja Log Insights
  4. CloudWatch-koontinäytöt ja Container Insights
← Takaisin: AWS Solutions Architect