PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

كلما كان النظام أكثر تعقيدًا، كلما أصبح متضخمًا بجميع أنواع التنبيهات. وهناك حاجة للرد على هذه التنبيهات نفسها، وتجميعها وتصورها. أعتقد أن هذا الوضع مألوف لدى الكثيرين لدرجة التوتر.

الحل الذي سيتم مناقشته ليس هو الحل غير المتوقع، لكن البحث لا يعرض مقالة كاملة حول هذا الموضوع.

لذلك، قررت مشاركة تجربة FunCorp والتحدث عن كيفية تنظيم عملية الواجب، ومن يتصل، ولماذا، وكيف يمكنك النظر إلى كل ذلك.

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

ما هو PagerDuty؟

لذا، لحل كل هذه المشاكل، بدأنا بالبحث عن أداة مناسبة. بعد بعض البحث، اخترنا PagerDuty. بدا لنا أن PD هو حل كامل وموجز إلى حد ما مع عدد كبير من عمليات التكامل والإعدادات. كيف تبدو؟

باختصار، PagerDuty عبارة عن منصة لمعالجة الحوادث يمكنها معالجة الحوادث الواردة من خلال عمليات تكامل مختلفة، وإعداد أوامر الواجب ثم تنبيه المهندس المناوب اعتمادًا على مستوى الحادث (على مستوى عالٍ - مكالمة، على مستوى منخفض - دفعة من التطبيق / الرسائل القصيرة).

من هو الضابط المناوب؟

ربما يكون هذا هو المكان الأول لبدء إعداد PD.

في FunCorp، مثل الشركات الأخرى، هناك منصب فخري للضابط المناوب. وينتقل من مهندس إلى مهندس مرة واحدة في اليوم. يوجد ما يسمى بسطر الاستجابة الأول والثاني لتنبيه PagerDuty. لنفترض وصول تنبيه ذي أولوية عالية، وإذا لم يكن هناك رد فعل عليه بعد 10 دقائق من الاتصال بالمهندس المناوب من السطر الأول (أي لم يتم تحويله إلى حالة الإقرار أو الحل)، فإن المكالمة تنتقل إلى الحالة الثانية مهندس واجب. تم تكوين هذا في PagerDuty نفسه من خلال سياسات التصعيد.

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

إذا لم يستجب الضابط المناوب الثاني، يعود الإخطار إلى الرئيسي إلى الضابط المناوب.

وبالتالي، لا يمكن أن يظل أي تنبيه وارد ذي أولوية عالية دون معالجة. 

الآن دعونا نرى من أين يمكن أن تأتي الحوادث.

ما التكامل الذي نستخدمه؟

يتلقى قسم الشرطة العديد من الحوادث المختلفة من مختلف الخدمات. لدينا حاليًا حوالي 25 خدمة من هذا القبيل، ولمعالجتها نستخدم بعض عمليات التكامل الجاهزة.

  • محب العمل

نظام جمع المقاييس الرئيسي هو بروميثيوس. لقد تم بالفعل كتابة الكثير عنها في حبري، وسأقول فقط أن لدينا العديد منها لبيئات مختلفة: يجمع أحدهما المقاييس من الأجهزة الافتراضية وعمال الإرساء، والآخر من خدمات أمازون، والثالث من أجهزة الأجهزة. يستخدم Telegraf بشكل أساسي كمصدر للمقاييس.

  • البريد إلكتروني:

هنا أيضًا، أعتقد أن كل شيء واضح من العنوان. يُستخدم هذا التكامل لإرسال إشعارات من بعض البرامج النصية التي يتم تنفيذها بواسطة cron. يمنحك PD عنوانًا معينًا ترسل إليه الرسائل. عند إنشاء خدمة بهذا التكامل، يمكنك تحديد الأولويات، وبأي ترتيب ستتم معالجة الأحداث الواردة، وكيفية إنشاء تنبيه بالضبط (لكل خطاب وارد، لحرف وارد + قاعدة معينة، وما إلى ذلك).

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

  • فترة ركود

في رأيي، تكامل مثير للاهتمام للغاية. هناك أوقات يحدث فيها شيء ما ولكن لا تغطيه الحوادث. لذلك أضفنا التكامل من Slack لإنشاء حادثة. أي أنه يمكنك الكتابة إلى شركة Slack /callofduty كل شيء بطيء وسيتعطل قريبًا وسيقوم PD بمعالجة الأمر وإرسال الحادث إلى المهندس المناوب.

نحن نفعل:

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

نحن نرى:

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

  • API

التكامل HTTP. في الواقع، لا يوجد شيء مثير للاهتمام بشكل خاص هنا، فقط طلب POST بنص بتنسيق JSON. على سبيل المثال، شيء مثير للاهتمام: نستخدمه للمراقبة الخارجية باستخدام https://www.statuscake.com/. تتحقق هذه الخدمة من إمكانية الوصول إلى مواقعنا من مختلف أنحاء العالم. في حالة تلقينا رمز استجابة غير مقبول (على سبيل المثال، 502)، يتم إنشاء حادث ثم يتبع كل شيء السلسلة الموضحة أعلاه. تتمتع StatusCake نفسها بالقدرة على مراقبة عناوين URL الداخلية أو شهادة SSL أو انتهاء صلاحية النطاق.

  • ليبر إن إم إس

هذا نظام مراقبة آخر، يمكنك قراءة المزيد عنه على موقعه على الإنترنت https://www.librenms.org/. وبمساعدتها، نقوم بمراقبة واجهات الشبكة وiDRAC من الخوادم.

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

كانت هناك أيضًا عمليات تكامل مثل Datadog وCloudWatch. ويمكنك معرفة المزيد عما حدث لهم هنا.

تصور

نظام الإبلاغ عن الحوادث الرئيسي هو Slack. تتم كتابة جميع الأحداث الواردة إلى PD في محادثة خاصة، وإذا تغيرت حالتها، فسيتم عرض ذلك أيضًا في الدردشة.

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

عندما سنحت الفرصة لعرض بيانات مفيدة على شاشات الشاشات المعلقة من السقف، أدركنا فجأة أننا (في قسم المطورين) ليس لدينا ما نعرضه عليها. هناك جرافانا رائعة، لكنها لا تغطي كل شيء، ويتفاعل الموظفون مع التنبيهات، وليس الرسوم البيانية.

بعد بحث شامل ولكن غير ناجح على GitHub للحصول على "لوحة" موجزة وغنية بالمعلومات لـ PD، قررنا أن نكتب لوحتنا الخاصة - فقط بما نحتاجه. على الرغم من أنه في البداية كانت هناك فكرة لعرض واجهة PD نفسها، إلا أنها بدت غير مريحة أكثر.

لكتابته، كل ما عليك فعله هو الحصول على مفتاح من PD الذي يتمتع بحقوق القراءة فقط.
وهذا ما حصلنا عليه:

PagerDuty، أو لماذا لا يستطيع قسم العمليات النوم ليلاً

تعرض الشاشة الأحداث المفتوحة الحالية، واسم المهندس الحالي المناوب من الجدول المحدد، والوقت بدون حادث ذي أولوية عالية (سيتم تمييز اللوحة ذات الأولوية العالية باللون الأحمر).

انظر مصادر هذا التنفيذ هنا.

ونتيجة لذلك، حصلنا على لوحة تحكم ملائمة لعرض جميع الأحداث التي أجريناها. سأكون سعيدًا إذا وجد البعض منكم تجربتنا مفيدة.

المصدر: www.habr.com

إضافة تعليق