كيفية تعليم Zabbix لإرسال إشعارات المشكلة مباشرة إلى سطح المكتب


الصورة: المصدر

مرحبا يا هبر! اسمي إيليا أبليف ، أعمل في قسم المراقبة في Badoo.

يمكنك الانتظار لفترة طويلة حول نظام المراقبة الأكثر برودة. الأداة الرئيسية للاستجابة للمشكلات في Badoo هي Zabbix ، وقد شاركنا مرارًا وتكرارًا تجربة تخصيصها.

خارج الصندوق ، يمكنك التعرف على المشاكل الجديدة إما من خلال واجهة الويب أو عن طريق البريد / الرسائل القصيرة. هذا يعمل بشكل جيد ، وحتى نقطة معينة كنا مرتاحين مع هذه الأساليب.

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

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

لمن يناسب هذا الحل:

  • المسؤولين الإداريين ، الذين لا ينظرون على مدار الساعة إلى الشاشة فحسب ، بل يتعاملون أيضًا مع المهام الأخرى ؛
  • جميع المسؤولين الآخرين الذين لا يرغبون في عرض صحتي PROBLEM و OK في البريد أو الرسائل القصيرة ، ولكنهم يريدون معرفة المشكلات المهمة في الوقت المناسب.

سيكون عليك قضاء بعض الوقت في التثبيت ، ولكن أعتقد أنه إذا كنت تستخدم Zabbix واستخدمت بالفعل نصوصًا مخصصة ، فلن يكون الأمر صعبًا بالنسبة لك.

إنتباه! إن تلقي الإخطارات بهذه الطريقة يسبب الإدمان ، ويعطي استخدامه على المدى الطويل الانطباع بأنه جزء لا يتجزأ من Zabbix.

سأخبرك في خطوات ماذا وكيف فعلنا. التنفيذ الفني بسيط للغاية:

  1. يرسل Zabbix تنبيهًا إلى حدث ما.
  2. يرسل البرنامج النصي المرسل على الخادم البيانات إلى العميل على سطح المكتب عبر UDP.
  3. يتلقى النص البرمجي للمستلم الإشعار ، ويؤدي إلى ظهور رسالة منبثقة من خلال تطبيق إضافي.

قد يختلف العنصر الثالث بناءً على نظام التشغيل الذي تستخدمه والتطبيق الذي تفضله.

الخطوة الأولى: تكوين Zabbix


توضح الوثائق الرسمية كيفية إنشاء تنبيهاتك .

رمز المشروع متاح على GitHub: https://github.com/ableev/ZbxDsktp .

  1. ضع zbxpush.py في AlertScriptsPath مقدمًا على خادم Zabbix.
  2. المزيد في واجهة الويب: الإدارةأنواع الوسائطإنشاء .




3. سوف نسجل مقدمًا IP / FQDN الذي سنرسل إليه تنبيهات.

يمكن ترقية هذا البند
على سبيل المثال ، قمنا بذلك: هناك خادم مراقبة رئيسي ، مع تسجيل دخول SSH ، يتذكر البرنامج النصي عنوان IP للمتصل ويبدأ في إرسال تنبيهات إليه. وبالتالي ، لتنشيط تلقي البيانات في المنزل ، لا تحتاج إلى تغيير الإجراء في كل مرة.

في واجهة الويب: الإدارةالمستخدمون٪ username٪الوسائط .



4. إنشاء إجراء على المشغلات.

في واجهة الويب: التكوينالإجراءات .



تنسيق الإرسال


{TRIGGER.NSEVERITY}@@@{HOST.NAME}@@@{TRIGGER.NAME}

الأول هو تنسيق الرقم للمشغل (يؤثر 4 أو 5 على الرمز المعروض: مرتفع أو كارثي) ، والثاني هو رأس الإعلام ، والثالث هو نص الرسالة.

@- لجعلها ملائمة لاقتحام الأعمدة ، لأن أسماء المشغلات يمكن أن تقول أي شيء (على الأقل معنا :)) ، ولكن بالتأكيد ليس هذا المزيج.





الخطوة الثانية: يرسل الخادم البيانات إلى العميل


المنطق بسيط: نتلقى حدثًا ، ونعيد توجيهه إلى العميل.

zbxpush.py

هنا يمكنك تغيير UDP إلى TCP. لقد اخترنا UDP لسبب واحد بسيط: يرسل Zabbix جميع الإشعارات بالتسلسل ، مما يعني أنه في حالة عدم توفر جهاز الكمبيوتر الخاص بك ، في حالة استخدام TCP ، سيتم إرسال الإشعارات مع تأخير طويل.

لكن UDP ليست موثوقة
سوف يلاحظ القارئ ، الذي يأتي إلى نكتة حول UDP ، أنه في حالة إرسال تنبيهات عبر UDP ، هناك فرصة لفقدها في مكان ما بين الخادم وسطح المكتب. وسيكون على حق. لكن الهدف ليس توصيل رسالة مضمونة ، ولكن لفت الانتباه ببساطة وبسرعة إلى لوحة القيادة التي بها مشاكل: "مرحبًا ، حدث شيء هناك ، اذهب وشاهد."

تذكر أن تجعل البرنامج النصي قابل للتنفيذ!

الخطوة الثالثة: استلام الحدث وعرض الإخطارات


zbxlistenerd.py - نص برمجي يدور في الخلفية zbxlistenerd.py تشغيل الإشعارات

settings.cfg - ملف بإعدادات العميل

icons/5.png ، icons/4.png - أيقونات icons/4.png المختلفة icons/4.png
كذلك تتباعد مساراتنا. ينطوي جزء "العميل" على القليل من الإبداع ، حيث يخلق الجميع بيئة لأنفسهم.

ما هو ضروري:

  • الرموز المقابلة لخطورة المحفزات ؛
  • إخطارات الصوت المنبثقة ؛
  • تنفيذ إجراء من خلال النقر على إشعار (تسجيل الدخول إلى SSH ، وفتح رابط ، وبدء تذكرة حول مشكلة ، وما إلى ذلك).

تستخدم شركتنا بشكل أساسي Linux و Mac OS كنظام تشغيل مكتبي ، لذلك دعونا نلقي نظرة على بعض الأمثلة لهم. إذا قمت بتطبيق نفس الشيء لنظام التشغيل Windows ، فمرحبًا بالتعليق! نحن سعداء لتكملة المنشور.

لينكس




دعني أعطيك مثالاً حدث للاستخدام: إعلام - إرسال في Xfce (في لقطة الشاشة أعلاه). لماذا أخطر وأرسل وليس نفس بايثون باستخدام libnotify؟ نعم ، لأنه موجود في جميع توزيعات سطح المكتب الشائعة (Ubuntu و Fedora و SUSE) ويعمل مع جميع DEs (على الأقل الشائعة) (Gnome و KDE و Xfce).

نصيحة: إذا واجهت فترات من عدم التوافر الجماعي لشيء ما (على سبيل المثال ، توقف مفتاح ما وغمرتك مجموعة من المشغلات حول عدم توفر الخادم) ، فقم على الفور بتكوين مفتاح الاختصار لإكمال عملية الإخطار والإرسال.

نظام التشغيل Mac OS


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

المخطر النهائي




بعد بحث قصير ، تم اختيار مخطر طرفية مجاني.

الإيجابيات:

  • يمكنك تعيين رموز مختلفة لأهمية مختلفة ؛
  • يمكنك إنشاء روابط إلى الرسوم البيانية في Zabbix وفتحها بالنقر على إشعار ؛
  • يمكنك تنفيذ فتح روابط SSH: لقد رأوا إشعارًا -> نقروا -> ذهبوا على الفور إلى المضيف.

السلبيات: لا شيء (خاصة بعد إضافة دعم الرمز).

الهدير



للتمكين ، قم بتعيين Growl_enabled = True في settings.cfg.

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

الإيجابيات:

  • قد يكون التطبيق مثبتًا بالفعل ؛
  • يمكنك اختيار أيقونات مختلفة لأهمية مختلفة ؛
  • تمامًا كما هو الحال في أداة الإخطار الطرفي ، يمكنك تكوين الإجراءات بالنقر على الإشعارات.

ناقص: مدفوع.

إذا لم يكن لديك Growl ، ما زلت أوصي باستخدام منبه الطرفية.

الخلاصة


لذا ، بمساعدة الأجهزة البسيطة ...

ما حصلنا عليه نتيجة لذلك:

  • تسليم سريع للإخطارات للمسؤولين ؛
  • تقليل وقت رد الفعل تجاه الأحداث (من لحظة "اكتشافهم" إلى "تم إصلاحها" أو "تمريرها") ؛
  • القدرة على أداء إجراءات شبه آلية بسيطة:

علاوة على ذلك ، كل هذا يتوقف على إبداعك.

ذات مرة ، عندما كنت أعمل في شركة موفرة ، عندما سقطت قناة الإنترنت من جميع مكبرات الصوت وسماعات الرأس في مكان العمل ، تم سماع صوت صفارات الإنذار. أدى هذا بالمرافقة (أنا) إلى الذهول ، ولم يعط تقريرًا كافيًا عن المشكلة عبر الهاتف ، لكنه (أنا) حاول حل هذه المشكلة في أقرب وقت ممكن.

أنا شخصياً أعرف بالفعل حالات الشد على صوت خنزير من مضاد فيروسات شائع ومتحدثين من مترجم شائع. :)

إذا كان لديك وقت فراغ ورغبة وتكنولوجيا حديثة ، فيمكنك القيام بذلك


ردود فعل سريعة للحوادث!

Source: https://habr.com/ru/post/ar418907/


All Articles