0Pricing
Cloud & IT Cert Prep · Lezione

Allarmi CloudWatch e allarmi compositi

Impostare allarmi basati su soglie per attivare Auto Scaling o notifiche SNS e combinare più allarmi in un allarme composito per ridurre il rumore degli avvisi

Allarmi CloudWatch e allarmi compositi è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Che cos'è un allarme CloudWatch?

Un allarme CloudWatch monitora una singola metrica o il risultato di un'espressione di matematica delle metriche per un intervallo di tempo specificato. Quando la metrica supera una soglia definita, l'allarme cambia stato e può automaticamente attivare un'azione, ad esempio inviare una notifica SNS, dimensionare un gruppo Auto Scaling, arrestare un'istanza EC2 o eseguire un OpsItem di Systems Manager. Gli allarmi sono il principale meccanismo per la risposta operativa automatizzata in AWS.

Stati degli allarmi

Un allarme CloudWatch si trova sempre in uno dei tre stati seguenti: OK — la metrica rientra nella soglia definita; ALARM — la metrica ha superato la soglia per il numero di periodi di valutazione richiesto; INSUFFICIENT_DATA — l'allarme è stato appena creato, la metrica non è disponibile oppure non sono ancora stati raccolti dati sufficienti. Le transizioni tra gli stati attivano le azioni configurate per quel cambiamento di stato — è possibile avere argomenti SNS diversi per gli stati OK, ALARM e 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'

Creazione di un allarme CloudWatch

Quando crea un allarme, specifica: la metrica e lo spazio dei nomi, la statistica (Average, Sum, Maximum e così via), il periodo (la frequenza di valutazione della metrica, in secondi), i periodi di valutazione (il numero di periodi consecutivi che devono superare la soglia), il valore di soglia e l'operatore di confronto. L'allarme si attiva quando la metrica supera la soglia per il numero specificato di periodi di valutazione consecutivi.

# 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

Azioni degli allarmi: SNS, Auto Scaling, EC2

Le azioni degli allarmi possono indirizzare diverse destinazioni: argomenti Amazon SNS (per inviare e-mail o SMS oppure attivare Lambda), policy Auto Scaling (per aumentare o ridurre le dimensioni di un ASG) e azioni EC2 (per arrestare, terminare, riavviare o ripristinare un'istanza EC2). Per ogni stato (OK, ALARM, INSUFFICIENT_DATA) è possibile specificare un insieme diverso di azioni — ad esempio, notificare il team in caso di ALARM, inviare una notifica al ripristino con OK e generare un avviso in caso di INSUFFICIENT_DATA per rilevare lacune nel monitoraggio.

# 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

Gestione dei dati mancanti

Quando CloudWatch valuta un allarme e mancano alcuni punti dati, è necessario decidere come gestirli. Le opzioni sono: notBreaching (considerare i dati mancanti entro la soglia — l'allarme resta su OK se gli altri dati sono OK), breaching (considerare i dati mancanti oltre la soglia — l'allarme passa ad ALARM), ignore (lo stato dell'allarme non cambia) e missing (l'allarme passa a INSUFFICIENT_DATA). Scegliere l'opzione sbagliata può causare falsi positivi o errori silenziosi — una sottigliezza importante dell'esame SAA-C03.

# 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

Risoluzione degli allarmi e periodi di valutazione

La risoluzione dell'allarme è il prodotto di periodo × periodi di valutazione. Ad esempio, un periodo di 60 secondi con 5 periodi di valutazione significa che l'allarme considera 5 punti dati consecutivi di 1 minuto. Per impostazione predefinita, l'allarme passa ad ALARM solo quando tutti e cinque i periodi superano la soglia. È possibile configurare datapoints-to-alarm per richiedere che superino la soglia solo M periodi su N — ad esempio, 3 su 5 — riducendo così i falsi positivi dovuti a picchi transitori.

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

Allarmi compositi: combinazione di più allarmi

Un allarme composito valuta lo stato di diversi altri allarmi usando la logica booleana (AND, OR, NOT). Entra nello stato ALARM solo quando l'espressione della regola restituisce true. Gli allarmi compositi vengono usati per ridurre il rumore degli avvisi — ad esempio, per generare un avviso solo se gli allarmi di CPU elevata E latenza elevata sono attivi contemporaneamente, poiché una CPU elevata da sola può essere accettabile durante l'elaborazione batch. È inoltre possibile usare gli allarmi compositi per sopprimere gli allarmi figlio durante le finestre di manutenzione.

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

Soppressione degli allarmi con gli allarmi compositi

Gli allarmi compositi supportano le azioni di soppressione degli allarmi — è possibile configurare un allarme composito per sopprimere gli allarmi figlio durante la manutenzione pianificata. Ad esempio, durante una finestra di distribuzione, si potrebbe impostare un allarme composito che combina un allarme 'MaintenanceMode' con la logica OR, sopprimendo tutte le notifiche degli allarmi figlio mentre la manutenzione è attiva. In questo modo si evita una valanga di avvisi quando i servizi vengono intenzionalmente messi offline per gli aggiornamenti.

# 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

Integrazione con le policy Auto Scaling

I gruppi Auto Scaling usano gli allarmi CloudWatch come trigger per le policy di step scaling e simple scaling. Quando l'allarme entra nello stato ALARM, la policy di dimensionamento viene eseguita. Per lo step scaling, si definiscono più modifiche delle dimensioni per diversi intervalli di soglia — ad esempio, aggiungere 1 istanza se la CPU è al 70-80%, aggiungerne 3 se è all'80-90% e aggiungerne 5 se supera il 90%. L'allarme attiva il primo passaggio applicabile in base al livello di superamento rilevato al momento della valutazione.

# 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

Allarmi di fatturazione CloudWatch

È possibile creare allarmi di fatturazione in CloudWatch per ricevere una notifica quando i costi AWS stimati superano una soglia. Le metriche di fatturazione vengono pubblicate solo nella Regione us-east-1 (indipendentemente dalla posizione delle risorse) e vengono aggiornate circa ogni 6 ore. Per abilitare gli allarmi di fatturazione, è necessario prima attivare Billing Alerts nella console AWS Billing. Lo strumento più preciso è AWS Budgets, ma gli allarmi di fatturazione CloudWatch restano un'opzione valida e inclusa nell'esame.

# 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

Test e monitoraggio degli allarmi

È possibile impostare manualmente lo stato di un allarme usando il comando set-alarm-state per testare le azioni dell'allarme senza attendere il reale superamento di una soglia. Questa funzionalità è utile per verificare che gli argomenti SNS, le policy Auto Scaling e le funzioni Lambda rispondano correttamente. Esegua sempre i test delle azioni degli allarmi in un ambiente non di produzione e verifichi che le sottoscrizioni e-mail dell'argomento SNS siano state confermate correttamente prima di affidarsi agli allarmi per gli avvisi in produzione.

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

Verifica rapida

Verifichi la propria comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: gli allarmi hanno tre stati (OK, ALARM, INSUFFICIENT_DATA) e possono attivare azioni SNS, Auto Scaling ed EC2; datapoints-to-alarm consente una valutazione M-su-N per ridurre i falsi positivi; gli allarmi compositi usano la logica booleana per combinare più allarmi e ridurre il rumore degli avvisi. Nella prossima lezione esamineremo CloudWatch Logs e Log Insights per la gestione centralizzata dei log.

Domande Frequenti

La lezione «Allarmi CloudWatch e allarmi compositi» è gratuita?

Sì — il testo completo di «Allarmi CloudWatch e allarmi compositi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Allarmi CloudWatch e allarmi compositi»?

Impostare allarmi basati su soglie per attivare Auto Scaling o notifiche SNS e combinare più allarmi in un allarme composito per ridurre il rumore degli avvisi Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Allarmi CloudWatch e allarmi compositi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metriche, namespace e dimensioni di CloudWatch
  2. Allarmi CloudWatch e allarmi compositi
  3. Log CloudWatch e Log Insights
  4. Dashboard CloudWatch e Container Insights
← Torna a Cloud & IT Cert Prep