0Pricing
Cloud & IT Cert Prep · Aula

Alarmes e alarmes compostos do CloudWatch

Defina alarmes baseados em limites para acionar o Auto Scaling ou notificações do SNS e combine vários alarmes em um alarme composto para reduzir o excesso de alertas.

Alarmes e alarmes compostos do CloudWatch é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que é um alarme do CloudWatch?

Um alarme do CloudWatch monitora uma única métrica ou o resultado de uma expressão de matemática de métricas durante um período que você especifica. Quando a métrica ultrapassa um limite definido por você, o alarme muda de estado e pode acionar uma ação automaticamente, como enviar uma notificação do SNS, ajustar um grupo de Auto Scaling, interromper uma instância do EC2 ou executar um OpsItem do Systems Manager. Os alarmes são o principal mecanismo de resposta operacional automatizada na AWS.

Estados dos alarmes

Um alarme do CloudWatch está sempre em um de três estados: OK — a métrica está dentro do limite definido; ALARM — a métrica ultrapassou o limite durante o número necessário de períodos de avaliação; DADOS_INSUFICIENTES — o alarme acabou de ser criado, a métrica não está disponível ou ainda não foram coletados dados suficientes. As transições entre estados acionam as ações configuradas para essa mudança de estado — você pode ter tópicos do SNS diferentes para os estados OK, ALARM e DADOS_INSUFICIENTES.

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

Como criar um alarme do CloudWatch

Ao criar um alarme, você especifica: a métrica e o namespace, a estatística (Average, Sum, Maximum etc.), o período (com que frequência a métrica é avaliada, em segundos), os períodos de avaliação (quantos períodos consecutivos precisam ultrapassar o limite), o valor do limite e o operador de comparação. O alarme é acionado quando a métrica ultrapassa o limite durante o número especificado de períodos consecutivos de avaliação.

# 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

Ações de alarme: SNS, Auto Scaling, EC2

As ações de alarme podem ter vários destinos: tópicos do Amazon SNS (para enviar e-mails, SMS ou acionar o Lambda), políticas de Auto Scaling (para reduzir ou aumentar um ASG) e ações do EC2 (para interromper, encerrar, reinicializar ou recuperar uma instância do EC2). Para cada estado (OK, ALARM, DADOS_INSUFICIENTES), você pode especificar um conjunto diferente de ações — por exemplo, notificar a equipe no estado ALARM, enviar uma notificação de recuperação no estado OK e alertar no estado DADOS_INSUFICIENTES para identificar falhas de monitoramento.

# 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

Tratamento de dados ausentes

Quando o CloudWatch avalia um alarme e alguns pontos de dados estão ausentes, você precisa decidir como tratá-los. As opções são: notBreaching (considerar os dados ausentes como estando dentro do limite — o alarme permanece em OK se os outros dados estiverem OK), breaching (considerar os dados ausentes como acima do limite — o alarme passa para ALARM), ignore (o estado do alarme não muda) e missing (o alarme passa para DADOS_INSUFICIENTES). Escolher a opção errada causa falsos positivos ou falhas silenciosas — uma particularidade importante do exame 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

Resolução dos alarmes e períodos de avaliação

A resolução do alarme é o produto de período × períodos de avaliação. Por exemplo, um período de 60 segundos com 5 períodos de avaliação significa que o alarme considera 5 pontos de dados consecutivos de 1 minuto. Por padrão, o alarme só passa para ALARM quando todos os cinco períodos ultrapassam o limite. Você pode configurar datapoints-to-alarm para exigir que apenas M de N períodos ultrapassem o limite — por exemplo, 3 de 5 — reduzindo os falsos positivos causados por picos temporários.

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

Alarmes compostos: combinação de vários alarmes

Um alarme composto avalia o estado de vários outros alarmes usando lógica booleana (AND, OR, NOT). Ele entra no estado ALARM somente quando sua expressão de regra é avaliada como verdadeira. Os alarmes compostos são usados para reduzir o excesso de alertas — por exemplo, alertar somente se os alarmes de CPU alta E latência alta estiverem sendo acionados simultaneamente, pois uma CPU alta isoladamente pode ser aceitável durante o processamento em lote. Você também pode usar alarmes compostos para suprimir alarmes filhos durante janelas de manutenção.

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

Supressão de alarmes com alarmes compostos

Os alarmes compostos são compatíveis com ações de supressão de alarmes — você pode configurar um alarme composto para suprimir seus alarmes filhos durante uma manutenção planejada. Por exemplo, durante uma janela de implantação, você pode configurar um alarme composto que combine um alarme 'MaintenanceMode' com a lógica OR, suprimindo todas as notificações dos alarmes filhos enquanto a manutenção estiver ativa. Isso evita uma avalanche de alertas quando você coloca serviços intencionalmente offline para realizar atualizações.

# 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

Integração com políticas de Auto Scaling

Os grupos de Auto Scaling usam alarmes do CloudWatch como gatilhos para políticas de escalabilidade por etapas e de escalabilidade simples. Quando o alarme entra no estado ALARM, a política de escalabilidade é executada. Na escalabilidade por etapas, você define vários ajustes de escalabilidade para diferentes faixas de limite — por exemplo, adicionar 1 instância se a CPU estiver entre 70% e 80%, adicionar 3 se estiver entre 80% e 90% e adicionar 5 se estiver acima de 90%. O alarme aciona a primeira etapa aplicável com base no nível da violação no momento da avaliação.

# 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

Alarmes de cobrança do CloudWatch

Você pode criar alarmes de cobrança no CloudWatch para receber notificações quando os custos estimados da AWS ultrapassarem um limite. As métricas de cobrança são publicadas somente na região us-east-1, independentemente de onde seus recursos estejam em execução, e são atualizadas aproximadamente a cada 6 horas. Para habilitar os alarmes de cobrança, primeiro você precisa ativar os Billing Alerts no console de faturamento da AWS. A ferramenta mais precisa é o AWS Budgets, mas os alarmes de cobrança do CloudWatch continuam sendo uma opção válida cobrada no exame.

# 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

Testes e monitoramento de alarmes

Você pode definir manualmente o estado de um alarme usando o comando set-alarm-state para testar as ações do alarme sem esperar uma violação real do limite. Isso é útil para verificar se seus tópicos do SNS, políticas de Auto Scaling e funções do Lambda respondem corretamente. Sempre teste as ações dos alarmes em um ambiente que não seja de produção e confirme que as assinaturas de e-mail corretas do tópico do SNS foram confirmadas antes de depender dos alarmes para alertas de produção.

# 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ção rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) apresentados nesta lição.

Resumo da lição

Nesta lição, você aprendeu que: os alarmes têm três estados (OK, ALARM, DADOS_INSUFICIENTES) e podem acionar ações do SNS, Auto Scaling e EC2; datapoints-to-alarm permite a avaliação M-de-N para reduzir falsos positivos; e os alarmes compostos usam lógica booleana para combinar vários alarmes e suprimir o excesso de alertas. Em seguida, exploraremos o CloudWatch Logs e o Log Insights para o gerenciamento centralizado de registros.

Perguntas Frequentes

A aula “Alarmes e alarmes compostos do CloudWatch” é grátis?

Sim — o texto completo de “Alarmes e alarmes compostos do CloudWatch” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “Alarmes e alarmes compostos do CloudWatch”?

Defina alarmes baseados em limites para acionar o Auto Scaling ou notificações do SNS e combine vários alarmes em um alarme composto para reduzir o excesso de alertas. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Alarmes e alarmes compostos do CloudWatch”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métricas, namespaces e dimensões do CloudWatch
  2. Alarmes e alarmes compostos do CloudWatch
  3. Registros e Log Insights do CloudWatch
  4. Painéis do CloudWatch e Container Insights
← Voltar para Cloud & IT Cert Prep