Prometheus / المتقدم: التوسع والحفظ والتحقق الآمن / الدرس 17
توجيه Alertmanager وتجميعه وكتمه
تتبع التنبيه المطلق عبر التوجيه والتجميع، وميّز إزالة التكرار والتثبيط والكتم والتوصيل من تقييم القاعدة.
في هذه الصفحة
أهداف الدرس
- اقرأ شجرة التوجيه وتسميات التجميع الثابتة.
- قارن التجميع والتثبيط والكتم المؤقت.
- حدد تحقق توصيل آمناً دون الاتصال بمستجيبين.
يبدأ إطلاق التنبيه عمل نظام آخر
يقيّم Prometheus قواعد التنبيه ويرسل حالتها إلى نقاط Alertmanager المهيأة. يطبق Alertmanager بعد ذلك سلوكه الخاص للتوجيه والتجميع وإزالة التكرار والإشعارات. لا يثبت نجاح تقييم القاعدة نجاح التسليم بين النظامين، ولا يثبت قبول التنبيه توصيله إلى المستقبل. احفظ الهويات وافتراضات التسميات الخارجية ظاهرة عبر النسخ المتكررة. قد تساعد تسميات وصفية مثل team في التوجيه، لكنها يجب أن تأتي من عقد مراجع؛ وليست دليلاً على توافر شخص أو تفويضه. سمِّ مالكاً للقاعدة وآخر لمسار التوصيل.
اقرأ التوجيه من الافتراضي إلى الفروع
يحتوي المقطع غير التنفيذي مستقبلاً افتراضياً وفرع توجيه لتسمية فريق محدودة. لا تحوي المستقبلات تكاملات إشعار، ولذلك لا يقدم المقطع وجهة توصيل حقيقية. يغفل المثال إعدادات التوقيت كيلا يعرض قيماً عامة للانتظار أو التكرار. راجع مطابقة الفروع وترتيب المرور على الأشقاء وسلوك continue في النسخة الثابتة قبل توسيع الشجرة. قد يفيد الافتراضي الواسع المراجعة، لكن يجب ألا يسقط تنبيهات عاجلة بصمت في نظام فعلي. اختبر التسميات المجهولة والناقصة والمتعارضة، لا الفرع المتوقع وحده.
route:
receiver: training-default
group_by: [alertname, job]
routes:
- matchers: ['team="stock-team"']
receiver: training-stock
receivers:
- name: training-default
- name: training-stock
لا تعرف المستقبلات بريداً أو webhook أو دردشة أو استدعاء. لا يُحمّل المقطع ولا يرسل رسالة.
اختبر قرار التسمية المعلن محلياً
يختار الموجه المحلي اسماً من اسمين افتراضيين بناء على قيمة team ثابتة. يوضح الفرع المتوقع وافتراضي التسمية المفقودة، ولا يمثل لغة مطابقة Alertmanager أو المرور على الشجرة أو التجميع أو التوصيل كاملة. اجعل هذا الحد صريحاً عند مراجعة النتيجة. يجب أن يحفظ اختبار توجيه فعلي مجموعة التسميات ونسخة الإعداد بدقة، وأن يتجنب الاتصال بمستجيبين حقيقيين ما لم يؤذن بذلك صراحة. لا تستنتج من نجاح اختيار فرع محلي تحقق بيانات الاعتماد أو الشبكة أو قوالب المستقبل أو إعادة الإشعارات.
def receiver(labels):
return "training-stock" if labels.get("team") == "stock-team" else "training-default"
print(receiver({"team": "stock-team", "alertname": "WarehouseTargetScrapeFailed"}))
print(receiver({"alertname": "WarehouseTargetScrapeFailed"}))
print(receiver({"team": "other-team"}))
training-stock
training-default
training-default
تقيّم الدالة قواميس ثابتة وتعيد أسماء فقط. ليست اختبار Alertmanager ولا تحدث أثراً إشعارياً.
تحتاج آليات الكتم المختلفة أدلة مختلفة
يجمع grouping تنبيهات مترابطة في إشعارات؛ وتدير إزالة التكرار الإشعارات المتكررة لهوية تنبيه مطابقة؛ ويكتم inhibition تنبيه هدف عندما تنطبق حالة مصدر وقواعد مساواة؛ وتطابق silence تنبيهات خلال فترة محددة. لا تصلح هذه الآليات ضرر المستخدم ولا توقف تقييم القواعد. قد توسع التسميات المفقودة المطابقة على نحو غير متوقع، خصوصاً عندما تكون افتراضات المساواة ضعيفة. ضيق نطاق التثبيط وراجعه. حدد للكتم مدة وسبباً ومالكاً وفق سياسة التشغيل الفعلية، وتحقق من عودة التغطية بدلاً من ترك كتم منسي بعد الصيانة.
تحقق من التوصيل المفيد وعودته بأمان
يجب أن تغطي خطة اختبار مخولة كاملة الفروع المعروفة والمجهولة، ومفاتيح التجميع، ومصادر التنبيه المكررة، والحالات المثبطة وغير المثبطة، وانتهاء الكتم، ومحتوى الرسالة، وفشل المستقبل. أبعد الأسرار والحمولات الخاصة عن annotations والروابط. راجع هل يحصل المستلم على نطاق وسياق خطوة تالية كافيين للتصرف. ينفذ هذا الدرس دالة توجيه محلية فقط؛ ولا يبدأ Alertmanager أو يرسل تنبيهاً أو ينشئ silence أو يتصل بشخص أو تكامل. يظل الإعداد الثابت مادة تعليمية دون ضمان توصيل تشغيلي.
الأخطاء الشائعة وإصلاحها
يُعلن الإطلاق إشعاراً موصلاً.
- لماذا يحدث؟
- لم يُتحقق من التسليم والمستقبل.
- كيف تصلحه؟
- افحص كل مرحلة مخولة مستقلة.
- كيف تتجنب تكراره؟
- احفظ أدلة القاعدة والتوصيل بمالكين واضحين.
يخفي التجميع فرقاً تحتاجه الاستجابة.
- لماذا يحدث؟
- اختيرت المفاتيح للشكل لا الفعل.
- كيف تصلحه؟
- احفظ النطاق اللازم للقرار.
- كيف تتجنب تكراره؟
- اختبر تعدد المثيلات والخدمات.
يخفي كتم حادثاً لاحقاً.
- لماذا يحدث؟
- غاب انتهاء مراجع ومالك.
- كيف تصلحه؟
- أعد التغطية وافحص الفترة المخفية.
- كيف تتجنب تكراره؟
- اشترط كتماً محدوداً مبرراً وفحص العودة.
اختبر فهمك
1. لماذا ينبغي إدراج حالة غياب team ضمن عينة اختبار التوجيه؟
اعرض الحل المشروح
قد يغفل المنتج أو القاعدة أو تغيير إعادة التسميات هذه التسمية. يجب أن يتبع التوجيه عندئذ مساراً افتراضياً أو مسار فشل مراجعاً صراحة، لا وجهة عرضية. لا يثبت مثال الفريق المتوقع وحده التعامل مع ملكية مجهولة أو الحفاظ على التغطية العاجلة.
2. هل تثبت قاعدة تثبيط inhibition أن العرض الذي تكتم إشعاره غير ضار؟
اعرض الحل المشروح
لا. تقلل ضوضاء الإشعارات وفق علاقة محددة، لكنها لا تثبت تعافي الخدمة أو صحة نتائجها. تحقق من مطابقة المصدر والهدف وتسميات المساواة والتوقعات التشغيلية. قد يخفي تثبيط واسع أو خاطئ ضرراً مستقلاً، لذلك احفظ الأدلة وراجع النطاق.
أهم ما تعلمته
- توصيل Alertmanager مستقل عن تقييم القاعدة.
- يعتمد التوجيه والكتم على تسميات ثابتة مراجعة.
- لا تتصل الاختبارات بالمستجيبين بلا تفويض.