0Pricing
Cloud & IT Cert Prep · درس

إنذارات CloudWatch والإنذارات المركّبة

اضبط إنذارات قائمة على الحدود لتشغيل Auto Scaling أو إرسال إشعارات SNS، واجمع عدة إنذارات في إنذار مركّب لتقليل ضوضاء التنبيهات

إنذارات CloudWatch والإنذارات المركّبة درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

ما هو إنذار CloudWatch؟

يراقب إنذار CloudWatch مقياسًا واحدًا أو نتيجة تعبير رياضي للمقاييس خلال فترة زمنية تحددها. عندما يتجاوز المقياس حدًا تحدده، يغيّر الإنذار حالته ويمكنه تشغيل إجراء تلقائيًا، مثل إرسال إشعار عبر SNS، أو تغيير حجم مجموعة Auto Scaling، أو إيقاف مثيل EC2، أو تنفيذ OpsItem في Systems Manager. تُعد الإنذارات الآلية الأساسية للاستجابة التشغيلية التلقائية في AWS.

حالات الإنذار

يكون إنذار CloudWatch دائمًا في واحدة من ثلاث حالات: OK — يكون المقياس ضمن الحد المحدد؛ ALARM — يكون المقياس قد تجاوز الحد خلال العدد المطلوب من فترات التقييم؛ INSUFFICIENT_DATA — أُنشئ الإنذار للتو، أو أن المقياس غير متاح، أو لم تُجمع بيانات كافية بعد. تؤدي الانتقالات بين الحالات إلى تشغيل الإجراءات المهيأة لذلك التغيير في الحالة — ويمكنك استخدام مواضيع SNS مختلفة لحالات OK وALARM و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

عند إنشاء إنذار، تحدد: المقياس ومساحة الأسماء، والإحصائية (Average وSum وMaximum وغير ذلك)، والفترة (عدد الثواني بين عمليات تقييم المقياس)، وفترات التقييم (عدد الفترات المتتالية التي يجب أن تتجاوز الحد)، وقيمة الحد، وعامل المقارنة. يُشغّل الإنذار عندما يتجاوز المقياس الحد خلال العدد المحدد من فترات التقييم المتتالية.

# 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

إجراءات الإنذار: SNS وAuto Scaling وEC2

يمكن أن تستهدف إجراءات الإنذار عدة وجهات: مواضيع Amazon SNS (لإرسال البريد الإلكتروني أو الرسائل النصية أو تشغيل Lambda)، وسياسات Auto Scaling (لتقليص ASG أو توسيعها)، وإجراءات EC2 (لإيقاف مثيل EC2 أو إنهائه أو إعادة تشغيله أو استعادته). ويمكنك تحديد مجموعة مختلفة من الإجراءات لكل حالة (OK وALARM وINSUFFICIENT_DATA) — فعلى سبيل المثال، أرسل إشعارًا إلى الفريق عند حالة ALARM، وأرسل إشعارًا عند التعافي مع حالة OK، ونبّه عند حالة INSUFFICIENT_DATA لاكتشاف فجوات المراقبة.

# 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

معالجة البيانات المفقودة

عندما يقيّم CloudWatch إنذارًا وتكون بعض نقاط البيانات مفقودة، يجب أن تقرر كيفية التعامل معها. الخيارات هي: notBreaching (اعتبار البيانات المفقودة ضمن الحد — يبقى الإنذار في حالة OK إذا كانت البيانات الأخرى سليمة)، وbreaching (اعتبار البيانات المفقودة متجاوزة للحد — ينتقل الإنذار إلى حالة ALARM)، وignore (لا تتغير حالة الإنذار)، وmissing (ينتقل الإنذار إلى حالة INSUFFICIENT_DATA). يؤدي اختيار الخيار الخاطئ إلى إنذارات إيجابية كاذبة أو أعطال صامتة — وهذه نقطة دقيقة مهمة في اختبار 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

دقة الإنذار وفترات التقييم

تساوي دقة الإنذار حاصل ضرب الفترة × فترات التقييم. فعلى سبيل المثال، تعني فترة مدتها 60 ثانية مع 5 فترات تقييم أن الإنذار يضع في اعتباره 5 نقاط بيانات متتالية مدة كل منها دقيقة واحدة. لا ينتقل الإنذار إلى حالة ALARM إلا عندما تتجاوز الفترات الخمس جميعها الحد (افتراضيًا). ويمكنك تهيئة datapoints-to-alarm لطلب تجاوز M من أصل N فترات فقط — مثل 3 من أصل 5 — مما يقلل الإنذارات الإيجابية الكاذبة الناتجة عن الارتفاعات المؤقتة.

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

الإنذارات المركبة: دمج إنذارات متعددة

يقيّم الإنذار المركب حالة عدة إنذارات أخرى باستخدام المنطق البولياني (AND وOR وNOT). وينتقل إلى حالة ALARM فقط عندما تكون نتيجة تقييم تعبير قاعدته صحيحة. تُستخدم الإنذارات المركبة لتقليل ضوضاء التنبيهات — فعلى سبيل المثال، لا ترسل تنبيهًا إلا إذا كان إنذارا ارتفاع استخدام CPU وارتفاع زمن الاستجابة يعملان معًا، لأن ارتفاع استخدام CPU وحده قد يكون مقبولًا أثناء معالجة الدفعات. ويمكنك أيضًا استخدام الإنذارات المركبة لكبت إنذارات العناصر التابعة أثناء نوافذ الصيانة.

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

كبت الإنذارات باستخدام الإنذارات المركبة

تدعم الإنذارات المركبة إجراءات كبت الإنذارات — إذ يمكنك تهيئة إنذار مركب لكبت إنذاراته التابعة أثناء الصيانة المخطط لها. فعلى سبيل المثال، أثناء نافذة نشر، قد تهيئ إنذارًا مركبًا يضم إنذارًا باسم 'MaintenanceMode' باستخدام منطق OR، ليكبت جميع إشعارات الإنذارات التابعة أثناء تفعيل الصيانة. يمنع ذلك تدفقًا هائلًا من التنبيهات عندما توقف الخدمات عمدًا عن العمل لإجراء الترقيات.

# 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

تستخدم مجموعات Auto Scaling إنذارات CloudWatch كمشغلات لسياسات التوسعة التدريجية والتوسعة البسيطة. عندما ينتقل الإنذار إلى حالة ALARM، تُنفذ سياسة التوسعة. وبالنسبة إلى التوسعة التدريجية، تحدد تعديلات متعددة للتوسعة وفق نطاقات مختلفة للحد — فعلى سبيل المثال، أضف مثيلًا واحدًا إذا كان استخدام CPU بين 70 و80%، وأضف 3 مثيلات إذا كان بين 80 و90%، وأضف 5 مثيلات إذا تجاوز 90%. يشغّل الإنذار أول خطوة منطبقة استنادًا إلى مستوى التجاوز وقت التقييم.

# 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

يمكنك إنشاء إنذارات فوترة في CloudWatch لتلقي إشعار عندما تتجاوز رسوم AWS المقدّرة حدًا معينًا. لا تُنشر مقاييس الفوترة إلا في منطقة us-east-1 (بغض النظر عن مكان تشغيل مواردك)، وتُحدّث كل 6 ساعات تقريبًا. لتمكين إنذارات الفوترة، يجب أولًا تفعيل Billing Alerts في وحدة تحكم AWS Billing. وتُعد AWS Budgets الأداة الأكثر دقة، لكن إنذارات فوترة CloudWatch تظل خيارًا صالحًا يُختبر في الامتحان.

# 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

اختبار الإنذارات ومراقبتها

يمكنك تعيين حالة الإنذار يدويًا باستخدام الأمر set-alarm-state لاختبار إجراءات الإنذار دون انتظار تجاوز حقيقي للحد. ويفيد ذلك في التحقق من استجابة مواضيع SNS وسياسات Auto Scaling ووظائف Lambda بشكل صحيح. اختبر دائمًا إجراءات الإنذار في بيئة غير إنتاجية، وتحقق من تأكيد اشتراكات البريد الإلكتروني الصحيحة في موضوع SNS قبل الاعتماد على الإنذارات للتنبيه في بيئة الإنتاج.

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

تحقق سريع

اختبر مدى فهمك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلمت في هذا الدرس أن للإنذارات ثلاث حالات (OK وALARM وINSUFFICIENT_DATA)، وأنها تستطيع تشغيل إجراءات SNS وAuto Scaling وEC2، وأن datapoints-to-alarm يتيح التقييم بنمط M من N لتقليل الإنذارات الإيجابية الكاذبة، وأن الإنذارات المركبة تستخدم المنطق البولياني لدمج إنذارات متعددة وكبت ضوضاء التنبيهات. سنستكشف بعد ذلك CloudWatch Logs وLog Insights لإدارة السجلات مركزيًا.

الأسئلة الشائعة

هل درس «إنذارات CloudWatch والإنذارات المركّبة» مجاني؟

نعم — نص درس «إنذارات CloudWatch والإنذارات المركّبة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.

ماذا ستتعلم في «إنذارات CloudWatch والإنذارات المركّبة»؟

اضبط إنذارات قائمة على الحدود لتشغيل Auto Scaling أو إرسال إشعارات SNS، واجمع عدة إنذارات في إنذار مركّب لتقليل ضوضاء التنبيهات تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟

لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «إنذارات CloudWatch والإنذارات المركّبة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟

نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقاييس CloudWatch ومساحات الأسماء والأبعاد
  2. إنذارات CloudWatch والإنذارات المركّبة
  3. سجلات CloudWatch وLog Insights
  4. لوحات معلومات CloudWatch وContainer Insights
← العودة إلى Cloud & IT Cert Prep