0Pricing
AWS Solutions Architect · Ders

CloudWatch Alarmları ve Bileşik Alarmlar

Otomatik Ölçeklendirmeyi veya SNS bildirimlerini tetikleyecek eşik tabanlı alarmlar ayarlayın ve uyarı gürültüsünü azaltmak için birden fazla alarmı bileşik alarmda birleştirin.

CloudWatch Alarmları ve Bileşik Alarmlar, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

CloudWatch Alarmı Nedir?

Bir CloudWatch alarmı, belirttiğiniz zaman aralığında tek bir metriği veya bir metrik matematiği ifadesinin sonucunu izler. Metrik, tanımladığınız eşiği aştığında alarm durumu değişir ve alarm, SNS bildirimi gönderme, bir Auto Scaling grubunu ölçeklendirme, bir EC2 örneğini durdurma veya bir Systems Manager OpsItem yürütme gibi bir eylemi tetikleyebilir. Alarmlar, AWS'de otomatik operasyonel yanıt için temel mekanizmadır.

Alarm Durumları

Bir CloudWatch alarmı her zaman üç durumdan birindedir: OK — metrik tanımlanan eşik dahilindedir; ALARM — metrik, gereken sayıda değerlendirme dönemi boyunca eşiği aşmıştır; INSUFFICIENT_DATA — alarm yeni oluşturulmuştur, metrik kullanılamıyordur veya henüz yeterli veri toplanmamıştır. Durumlar arasındaki geçişler, söz konusu durum değişikliği için yapılandırılmış eylemleri tetikler — OK, ALARM ve INSUFFICIENT_DATA durumları için farklı SNS konuları kullanabilirsiniz.

# 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 Alarmı Oluşturma

Bir alarm oluştururken şunları belirtirsiniz: metrik ve ad alanı, istatistik (Average, Sum, Maximum vb.), dönem (metriğin saniye cinsinden ne sıklıkla değerlendirileceği), değerlendirme dönemleri (eşiğin aşılması gereken ardışık dönem sayısı), eşik değeri ve karşılaştırma işleci. Metrik, belirtilen sayıda ardışık değerlendirme dönemi boyunca eşiği aştığında alarm tetiklenir.

# 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

Alarm Eylemleri: SNS, Auto Scaling, EC2

Alarm eylemleri birkaç hedefe yönlendirilebilir: Amazon SNS konuları (e-posta veya SMS göndermek ya da Lambda'yı tetiklemek için), Auto Scaling ilkeleri (bir ASG'yi küçültmek veya büyütmek için) ve EC2 eylemleri (bir EC2 örneğini durdurmak, sonlandırmak, yeniden başlatmak veya kurtarmak için). Her durum (OK, ALARM, INSUFFICIENT_DATA) için farklı bir eylem kümesi belirtebilirsiniz — örneğin ALARM durumunda ekibe bildirim gönderin, OK ile kurtarma gerçekleştiğinde bildirin ve izleme boşluklarını yakalamak için INSUFFICIENT_DATA durumunda uyarın.

# 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

Eksik Veri İşleme

CloudWatch bir alarmı değerlendirirken bazı veri noktaları eksikse bunların nasıl işleneceğine karar vermeniz gerekir. Seçenekler şunlardır: notBreaching (eksik veriyi eşik dahilindeymiş gibi işler — diğer veriler uygunsa alarm OK durumunda kalır), breaching (eksik veriyi eşiği aşmış gibi işler — alarm ALARM durumuna geçer), ignore (alarm durumu değişmez) ve missing (alarm INSUFFICIENT_DATA durumuna geçer). Yanlış seçeneği belirlemek yanlış pozitiflere veya fark edilmeyen hatalara yol açar — bu, SAA-C03 sınavında önemli bir ayrıntıdır.

# 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

Alarm Çözünürlüğü ve Değerlendirme Dönemleri

Alarm çözünürlüğü, dönem × değerlendirme dönemi sayısının çarpımıdır. Örneğin 60 saniyelik bir dönem ve 5 değerlendirme dönemi, alarmın art arda gelen 5 adet 1 dakikalık veri noktasını dikkate aldığı anlamına gelir. Alarm, varsayılan olarak yalnızca beş dönemin tamamı eşiği aştığında ALARM durumuna geçer. Eşiğin aşılması için N dönemin yalnızca M tanesinin yeterli olmasını sağlayan datapoints-to-alarm seçeneğini yapılandırabilirsiniz — örneğin 5 dönemin 3'ü. Bu, geçici ani yükselişlerden kaynaklanan yanlış pozitifleri azaltır.

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

Bileşik Alarmlar: Birden Çok Alarmı Birleştirme

Bir bileşik alarm, Boolean mantığı (AND, OR, NOT) kullanarak birden çok alarmın durumunu değerlendirir. Kural ifadesi true olarak değerlendirildiğinde ALARM durumuna geçer. Bileşik alarmlar, uyarı gürültüsünü azaltmak için kullanılır — örneğin yalnızca yüksek CPU ve yüksek gecikme alarmları aynı anda etkinleştiğinde uyarı gönderebilirsiniz; çünkü tek başına yüksek CPU, toplu işleme sırasında kabul edilebilir olabilir. Bakım aralıklarında alt alarmları bastırmak için de bileşik alarmları kullanabilirsiniz.

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

Bileşik Alarmlarla Alarm Bastırma

Bileşik alarmlar alarm bastırma eylemlerini destekler — planlı bakım sırasında alt alarmlarını bastıracak şekilde bir bileşik alarm yapılandırabilirsiniz. Örneğin bir dağıtım aralığında, bir 'MaintenanceMode' alarmını OR mantığıyla birleştiren bir bileşik alarm ayarlayarak bakım etkin olduğu sürece tüm alt alarm bildirimlerini bastırabilirsiniz. Bu, yükseltmeler için hizmetleri kasıtlı olarak çevrimdışı aldığınızda uyarı yağmurunu önler.

# 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

Auto Scaling İlkeleriyle Entegrasyon

Auto Scaling grupları, kademeli ölçeklendirme ve basit ölçeklendirme ilkeleri için tetikleyici olarak CloudWatch alarmlarını kullanır. Alarm ALARM durumuna geçtiğinde ölçeklendirme ilkesi yürütülür. Kademeli ölçeklendirmede farklı eşik aralıkları için birden çok ölçeklendirme ayarı tanımlarsınız — örneğin CPU %70-80 arasındaysa 1 örnek, %80-90 arasındaysa 3 örnek, %90'ın üzerindeyse 5 örnek ekleyebilirsiniz. Alarm, değerlendirme anındaki aşım düzeyine göre geçerli ilk adımı tetikler.

# 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 Faturalandırma Alarmları

Tahmini AWS ücretleriniz bir eşiği aştığında bildirim almak için CloudWatch'ta faturalandırma alarmları oluşturabilirsiniz. Faturalandırma metrikleri, kaynaklarınız nerede çalışıyor olursa olsun yalnızca us-east-1 Bölgesinde yayımlanır ve yaklaşık 6 saatte bir güncellenir. Faturalandırma alarmlarını etkinleştirmek için önce AWS Faturalandırma konsolunda Billing Alerts özelliğini açmanız gerekir. Daha hassas araç AWS Budgets olsa da CloudWatch faturalandırma alarmları sınavda test edilen geçerli bir seçenektir.

# 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

Alarmları Test Etme ve İzleme

Gerçek bir eşik aşımını beklemeden alarm eylemlerini test etmek için set-alarm-state komutunu kullanarak bir alarm durumunu el ile ayarlayabilirsiniz. Bu, SNS konularınızın, Auto Scaling ilkelerinizin ve Lambda işlevlerinizin doğru yanıt verdiğini doğrulamak için kullanışlıdır. Alarm eylemlerinizi her zaman üretim dışı bir ortamda test edin ve üretim uyarıları için alarmlara güvenmeden önce SNS konusunun doğru e-posta aboneliklerinin onaylandığını doğrulayın.

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

Hızlı Kontrol

Bu derste AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: alarmların üç durumu vardır (OK, ALARM, INSUFFICIENT_DATA) ve SNS, Auto Scaling ile EC2 eylemlerini tetikleyebilirler; datapoints-to-alarm, yanlış pozitifleri azaltmak için M'den N değerlendirmesine olanak tanır; bileşik alarmlar ise birden çok alarmı birleştirmek ve uyarı gürültüsünü bastırmak için Boolean mantığı kullanır. Sırada, merkezi günlük yönetimi için CloudWatch Logs ve Log Insights'ı inceleyeceğiz.

Sıkça Sorulan Sorular

“CloudWatch Alarmları ve Bileşik Alarmlar” dersi ücretsiz mi?

Evet — “CloudWatch Alarmları ve Bileşik Alarmlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“CloudWatch Alarmları ve Bileşik Alarmlar” dersinde ne öğreneceğim?

Otomatik Ölçeklendirmeyi veya SNS bildirimlerini tetikleyecek eşik tabanlı alarmlar ayarlayın ve uyarı gürültüsünü azaltmak için birden fazla alarmı bileşik alarmda birleştirin. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“CloudWatch Alarmları ve Bileşik Alarmlar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. CloudWatch Ölçümleri, Ad Alanları ve Boyutlar
  2. CloudWatch Alarmları ve Bileşik Alarmlar
  3. CloudWatch Günlükleri ve Log Insights
  4. CloudWatch Panoları ve Container Insights
← AWS Solutions Architect Sayfasına Dön