AWS Solutions Architect · Pelajaran

Penggera CloudWatch dan Penggera Komposit

Tetapkan penggera berasaskan ambang untuk mencetuskan Auto Scaling atau pemberitahuan SNS, dan gabungkan beberapa penggera menjadi penggera komposit bagi mengurangkan gangguan amaran.

Pelajaran 2 daripada 413 langkah

Penggera CloudWatch dan Penggera Komposit ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.

Apakah Itu alarm CloudWatch?

alarm CloudWatch memantau satu metrik atau hasil ungkapan matematik metrik dalam tempoh masa yang Anda tentukan. Apabila metrik melepasi ambang yang Anda tetapkan, alarm menukar keadaan dan boleh mencetuskan tindakan secara automatik, seperti menghantar pemberitahuan SNS, menskalakan kumpulan Auto Scaling, menghentikan tika EC2, atau melaksanakan OpsItem Systems Manager. alarm ialah mekanisme utama untuk tindak balas operasi automatik dalam AWS.

Keadaan alarm

alarm CloudWatch sentiasa berada dalam salah satu daripada tiga keadaan: OK — metrik berada dalam ambang yang ditetapkan; ALARM — metrik telah melepasi ambang untuk bilangan tempoh penilaian yang diperlukan; INSUFFICIENT_DATA — alarm baru sahaja dicipta, metrik tidak tersedia, atau data yang dikumpulkan masih belum mencukupi. Peralihan antara keadaan mencetuskan tindakan yang dikonfigurasikan untuk perubahan keadaan tersebut — Anda boleh mempunyai topik SNS yang berbeza untuk keadaan OK, ALARM dan 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'

Mencipta alarm CloudWatch

Semasa mencipta alarm, Anda menentukan: metrik dan ruang nama, statistik (Average, Sum, Maximum dan sebagainya), tempoh (kekerapan metrik dinilai dalam saat), tempoh penilaian (bilangan tempoh berturut-turut yang mesti melepasi ambang), nilai ambang dan operator perbandingan. alarm tercetus apabila metrik melepasi ambang untuk bilangan tempoh penilaian berturut-turut yang ditentukan.

# 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

Tindakan alarm: SNS, Auto Scaling, EC2

Tindakan alarm boleh menyasarkan beberapa destinasi: topik Amazon SNS (untuk menghantar e-mel, SMS atau mencetuskan Lambda), dasar Auto Scaling (untuk menskalakan ASG masuk atau keluar), dan tindakan EC2 (untuk menghentikan, menamatkan, memulakan semula atau memulihkan tika EC2). Bagi setiap keadaan (OK, ALARM, INSUFFICIENT_DATA), Anda boleh menentukan set tindakan yang berbeza — contohnya, maklumkan pasukan apabila ALARM, maklumkan apabila pulih dengan OK, dan beri amaran bagi INSUFFICIENT_DATA untuk mengesan jurang pemantauan.

# 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

Pengendalian Data yang Hilang

Apabila CloudWatch menilai alarm dan terdapat beberapa titik data yang hilang, Anda mesti menentukan cara mengendalikannya. Pilihannya ialah: notBreaching (anggap data yang hilang berada dalam ambang — alarm kekal OK jika data lain juga OK), breaching (anggap data yang hilang melebihi ambang — alarm beralih kepada ALARM), ignore (keadaan alarm tidak berubah), dan missing (alarm beralih kepada INSUFFICIENT_DATA). Pemilihan yang salah menyebabkan positif palsu atau kegagalan senyap — perkara penting dalam peperiksaan 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

Penyelesaian alarm dan Tempoh Penilaian

Penyelesaian alarm ialah hasil darab tempoh × tempoh penilaian. Contohnya, tempoh 60 saat dengan 5 tempoh penilaian bermaksud alarm mempertimbangkan 5 titik data berturut-turut yang masing-masing mewakili 1 minit. Secara lalai, alarm hanya beralih kepada ALARM apabila kelima-lima tempoh melepasi ambang. Anda boleh mengkonfigurasi datapoints-to-alarm supaya hanya M daripada N tempoh perlu melepasi ambang — contohnya, 3 daripada 5 — bagi mengurangkan positif palsu akibat lonjakan sementara.

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

alarm Komposit: Menggabungkan Berbilang alarm

alarm komposit menilai keadaan beberapa alarm lain menggunakan logik Boolean (AND, OR, NOT). alarm ini memasuki keadaan ALARM hanya apabila ungkapan peraturannya dinilai sebagai benar. alarm komposit digunakan untuk mengurangkan hingar amaran — contohnya, hanya beri amaran jika alarm CPU tinggi DAN kependaman tinggi dicetuskan serentak, kerana CPU tinggi sahaja mungkin boleh diterima semasa pemprosesan kelompok. Anda juga boleh menggunakan alarm komposit untuk menyekat alarm anak semasa tetingkap penyelenggaraan.

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

Penyekatan alarm dengan alarm Komposit

alarm komposit menyokong tindakan penyekatan alarm — Anda boleh mengkonfigurasi alarm komposit untuk menyekat alarm anak semasa penyelenggaraan yang dirancang. Contohnya, semasa tetingkap penggunaan, Anda mungkin menetapkan alarm komposit yang menggabungkan alarm 'MaintenanceMode' dengan logik OR, lalu menyekat semua pemberitahuan alarm anak semasa penyelenggaraan aktif. Ini menghalang lambakan amaran apabila Anda sengaja mematikan perkhidmatan buat sementara waktu untuk naik taraf.

# 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

Integrasi dengan Dasar Auto Scaling

Kumpulan Auto Scaling menggunakan alarm CloudWatch sebagai pencetus untuk dasar penskalaan berperingkat dan penskalaan mudah. Apabila alarm memasuki keadaan ALARM, dasar penskalaan dilaksanakan. Untuk penskalaan berperingkat, Anda menentukan beberapa pelarasan penskalaan bagi julat ambang yang berbeza — contohnya, tambah 1 tika jika CPU ialah 70-80%, tambah 3 jika CPU ialah 80-90%, dan tambah 5 jika CPU melebihi 90%. alarm mencetuskan langkah pertama yang berkenaan berdasarkan tahap pelanggaran pada masa penilaian.

# 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

alarm Pengebilan CloudWatch

Anda boleh mencipta alarm pengebilan dalam CloudWatch untuk menerima pemberitahuan apabila caj AWS yang dianggarkan melebihi ambang. Metrik pengebilan hanya diterbitkan di rantau us-east-1 (tanpa mengira lokasi sumber Anda dijalankan) dan dikemas kini kira-kira setiap 6 jam. Untuk mendayakan alarm pengebilan, Anda mesti menghidupkan Billing Alerts terlebih dahulu dalam konsol AWS Billing. Alat yang lebih tepat ialah AWS Budgets, tetapi alarm pengebilan CloudWatch masih merupakan pilihan sah yang diuji dalam peperiksaan.

# 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

Menguji dan Memantau alarm

Anda boleh menetapkan keadaan alarm secara manual menggunakan perintah set-alarm-state untuk menguji tindakan alarm tanpa menunggu pelanggaran ambang sebenar. Ini berguna untuk mengesahkan bahawa topik SNS, dasar Auto Scaling dan fungsi Lambda Anda bertindak balas dengan betul. Sentiasa uji tindakan alarm dalam persekitaran bukan pengeluaran dan sahkan bahawa topik SNS mempunyai langganan e-mel yang betul serta telah disahkan sebelum bergantung pada alarm untuk amaran pengeluaran.

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

Semakan Pantas

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.

Rumusan Pelajaran

Dalam pelajaran ini Anda telah mempelajari bahawa: alarm mempunyai tiga keadaan (OK, ALARM, INSUFFICIENT_DATA) dan boleh mencetuskan tindakan SNS, Auto Scaling serta EC2, datapoints-to-alarm membolehkan penilaian M-daripada-N untuk mengurangkan positif palsu, dan alarm komposit menggunakan logik Boolean untuk menggabungkan berbilang alarm serta menyekat hingar amaran. Seterusnya, kita akan meneroka CloudWatch Logs dan Log Insights untuk pengurusan log berpusat.

Percuma untuk bermula

Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Penggera CloudWatch dan Penggera Komposit” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “Penggera CloudWatch dan Penggera Komposit”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penggera CloudWatch dan Penggera Komposit”?

Tetapkan penggera berasaskan ambang untuk mencetuskan Auto Scaling atau pemberitahuan SNS, dan gabungkan beberapa penggera menjadi penggera komposit bagi mengurangkan gangguan amaran. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?

Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Penggera CloudWatch dan Penggera Komposit” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Metrik CloudWatch, Ruang Nama dan Dimensi
  2. Penggera CloudWatch dan Penggera Komposit
  3. Log CloudWatch dan Log Insights
  4. Papan Pemuka CloudWatch dan Container Insights
← Kembali ke AWS Solutions Architect