مرحبا يا هبر! اسمي سيرجي بروتسكخ ، أنا المسؤول عن اتجاه مراقبة Sberbank-Technology. الهدف الرئيسي لمنظمتنا هو تطوير واختبار منتجات البرمجيات ل Sberbank. لهذا ، تمتلك الشركة بنية تحتية كبيرة لتكنولوجيا المعلومات - يتم تقسيم 15 ألف خادم إلى ما يقرب من 1500 بيئة اختبار ، والتي ترتبط بأكثر من 500 نظام مؤتمت. في المجموع ، يعمل معهم حوالي 10 آلاف متخصص.
في عام 2015 ، بدأنا في إنشاء خدمة مراقبة مركزية. علاوة على ذلك ، كان كل شيء يقتصر ليس فقط على التنفيذ. كان من الضروري وضع الكثير من اللوائح والتعليمات ، وكذلك العلاقة بين وحدات Sbertech في إطار المراقبة. في هذا المنشور ، سأخبرك بالتفصيل كيف اخترنا المنصة ، على أي مبادئ أنشأنا كل شيء وما انتهى به الأمر.

الأهداف الرئيسية وأيديولوجية المشروع
فيما يلي الأهداف التي سعينا إليها في المشروع:
- الحصول على بيانات موثوقة حول حجم وتكوين البنية التحتية لتكنولوجيا المعلومات ؛
- الاستخدام الأمثل لمرافق تكنولوجيا المعلومات ؛
- تخفيض تكاليف دعم وتشغيل البنية التحتية لتكنولوجيا المعلومات في بيئات التطوير والاختبار ؛
- دعم البنية التحتية لتكنولوجيا المعلومات استعدادًا للتطوير والاختبار ؛
- إبلاغ المتخصصين على الفور بالمشاكل في عمل بيئات الاختبار ؛
- مراجعة الامتثال لبيئات الاختبار و AFMs الصناعية ليست مهمة نموذجية للغاية بالنسبة لنا ؛
- جمع البيانات لتقارير نتائج الاختبار ، وتوفير قياس المعلمات الحرجة في جميع مراحل الاختبار.
واستشرافا للمستقبل ، أستطيع أن أقول إن جميع الأهداف بدرجة أو بأخرى قد اكتملت حتى الآن. كما ساعدت المراقبة في حل بعض المشكلات ذات الصلة.
بالإضافة إلى الأهداف ، قمنا بصياغة مبادئ ، أيديولوجية ، التزمنا بها طوال المشروع:
- رضا المستخدم هو أحد المؤشرات الرئيسية للرصد. في مؤتمر ITSMf 2017 ، تحدثت عن مراقبة البنية التحتية لتكنولوجيا المعلومات ، والخامس ليس في هذا التقرير: "لا تجبر موظفيك على العمل مع نظام المراقبة". الهدف هو التحفيز ، وليس الإلزام. يتم تحقيق ذلك من خلال مؤشرات الأداء الرئيسية المبنية بشكل صحيح. في بداية الخدمة ، قد لا تظهر مؤشرات الأداء الرئيسية هذه بعد. ومع ذلك ، من المهم جدًا منذ الأيام الأولى للمراقبة البدء في إفادة العملاء المحتملين.
- الحد الأدنى من الوقت للتنقيح. لهذا نستخدم عناصر رشيقة. فهي تساعد على توفير ميزات جديدة في أسرع وقت ممكن وتلقي تعليقات من العملاء.
- انفتاح النظام ، سواء من أجل التحسينات ، والذي يتم التعبير عنه في إنشاء تراكم واحد ، والطلبات التي يمكن لأي موظف الكتابة إليها ، ومن حيث توفير المعلومات - تسمح لك خدمتنا بالحصول على معلومات حول تكوين المراقبة ، والتي ، كقاعدة عامة ، مخفية.
- درجة عالية من الاندماج في العمل اليومي. أولويتنا هي تنفيذ الوظائف التي يحتاجها المستخدمون على أساس يومي. وقد ساعد ذلك في وقت قصير نسبيًا على تعميم خدمة المراقبة داخل الشركة.
اختيار نظام المراقبة
في جميع المشاريع التي شاركت فيها تقريبًا ، ظهر عاجلاً أم آجلاً جدولاً يقارن بين وظائف أنظمة مختلفة ، حيث تم منح نظام معين ميزة واضحة.

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

كما ترون ، فإن مثيل Zabbix في Sbertech ليس أقل شأنا بكثير من أكبر المنشآت ، ومن حيث إجمالي الحمل فهو على قدم المساواة معهم.
فوائد زبكس
في النصف الثاني من عام 2017 ، أجرينا تجربة Zabbix لمراقبة البنية التحتية PROM. ثم قمنا بصياغة عدد من المعايير النوعية التي نعزوها إلى المزايا المطلقة لـ Zabbix:
- المصدر المفتوح إمكانيات غير محدودة للمعالجة والتخصيص.
- انفتاح الآلية ومصدر جمع المقاييس. في حلول المؤسسات التجارية ، تكون العديد من المقاييس غير مفهومة - شبكات الروبوت المختلفة ، وتسريبات الذاكرة ، والتي لا يمكن حتى للدعم الفني من البائع تفسيرها في كثير من الأحيان. لا تواجه Zabbix مثل هذه المشكلة - يمكنك دائمًا أن تقول بوضوح كيف تجمع مقاييس معينة. وبالتالي ، تزداد مصداقية النظام من قبل مسؤولي النظام.
- السهولة النسبية للتحجيم - ويرجع ذلك أساسًا إلى إدخال خوادم بروكسي إضافية ، والتي يمكنك نقل جزء من الحمل إليها. إذا وصلت إلى الحد الأقصى للأداء لمثيل واحد ، فمن الممكن رفع المستوى الثاني ودمج كل منهما تحت نظام تصور واحد (Grafana).
- Cool API - في رأيي ، هذه واحدة من المزايا الرئيسية لـ Zabbix. تفتح واجهة برمجة تطبيقات عالية الجودة ومتطورة ومفهومة فرصًا هائلة للتكامل مع الأنظمة ذات الصلة والأتمتة وما إلى ذلك.
- مراقبة الأشياء الديناميكية هي تافهة ، ولكنها جميلة. في Zabbix ، هذه المراقبة بسيطة وبديهية ، مما يتيح لك تحقيق نتائج جيدة بسرعة كبيرة. الكائنات الديناميكية هي أي كائنات تظهر وتختفي على الخوادم طوال عمرها: أنظمة الملفات ، وواجهات الشبكة ، وغيرها. لذلك ، هناك حاجة لأتمتة إعداد وإزالة هذه الكائنات من المراقبة.
- عدد صغير نسبيًا من المكونات. في الحلول التجارية ، كل مكون هو نظام فرعي منفصل مع قاعدته الخاصة ، والتي يجب تثبيتها بشكل منفصل. و Zabbix هو نظام واحد ، تتركز فيه جميع طرق المراقبة في وقت واحد: وكيل ، وكيل بدون شبكة ، وغيرها - 14 نوعًا فقط.
- تصور البيانات مع جرافانا. التكامل مع Grafana يجعل من الممكن بناء الرسوم البيانية وإنشاء لوحات تحكم مريحة حقًا.
- توافر مراقبة توفر خدمات تكنولوجيا المعلومات. لدى Zabbix نظام فرعي مدمج يمكنه حساب توفر خدمات تكنولوجيا المعلومات للاستخدام المستقبلي في اتفاقية مستوى الخدمة.
- المرونة في إنشاء المقاييس وقيم العتبة الخاصة بها. هنا لدى Zabbix فرصة كبيرة لتكوين مقاييس المراقبة المعقدة:
- بادئ ذي بدء ، يتم إنشاء مقاييس محسوبة : على أساس عدة مقاييس بسيطة ، يتم حساب واحد معقد.
- المعالجة المسبقة لقيمة المقاييس متاحة - هذا ، على سبيل المثال ، عندما تقوم بتحميل بعض مصفوفة البيانات الكبيرة إلى Zabbix ، ثم قبل وضع مقياس معين في قاعدة البيانات ، يقوم Zabbix بتحليل الصفيف وسحب البيانات التي تريد حفظها كمقياس بالضبط .
- مقاييس رئيسية. من الممكن تجميع مصفوفة من البيانات عن كائن في استطلاع واحد في مقياس واحد كبير ، ثم استخدامه كمصدر بيانات لمقاييس أخرى. هذا يسمح لك بتقليل عدد الاستعلامات ومزامنة مجموعة جميع المقاييس في الوقت المناسب.
- إمكانية المراقبة الداخلية. Zabbix ، كمنتج مفتوح المصدر ، لديه مشاكل في الأداء. ومع ذلك ، يساعد نظام المراقبة الداخلية المدروس جيدًا على التعامل مع هذه المشاكل بسرعة.
عيوب زبكس
في الإنصاف ، لا يسعني إلا أن أذكر أهم عيوب Zabbix ، في رأيي. يمكنك أيضًا إنشاء قائمة لائقة بها:
- درجة منخفضة من الأتمتة الخلفية. سوف أقوم بإجراء حجز لم تتح لي الفرصة لتجربة جميع المتغيرات من DBMS. تستخدم شركتنا Oracle DBMS كخلفية Zabbix. يمكن أن تستغرق العمليات الجماعية أكثر من ساعة - على سبيل المثال ، تحديث أو تغيير المقاييس ، التي ترتبط بعدد كبير من الكائنات (15 ألف عقد شبكة).
- عدم وجود أدوات إدارة عامل مراقبة مدمجة. هذه المنتجات متوفرة في المنتجات التجارية. Zabbix ليس لديه هذا حتى الآن. لا يوجد حتى تحديث لمجموعة أدوات للوكلاء. بالطبع ، يمكن القيام بكل شيء بشكل مستقل ، ولكن سيكون من الأفضل إخراج هذه الميزات من الصندوق.
- حتى الآن ، تفصيل منخفض لرصد توافر خدمات تكنولوجيا المعلومات. إنه لشيء رائع أن يكون هناك رصد ، ولكن يحتاج إلى مزيد من التطوير. ليس من الممكن الآن تقييد وصول المستخدم بطريقة أو بأخرى إلى أي جزء فردي من نموذج مورد الخدمة (المشار إليه فيما يلي بـ CPM). إذا كانت شجرة CPM كبيرة ، فإن واجهة الويب تبدأ في التباطؤ. ولا تزال إمكانيات تخصيص حساب التوافر في هذا النظام الفرعي منخفضة.
- تحديثات طويلة. استغرقنا آخر تحديث لقاعدة البيانات حوالي ثماني ساعات. في هذا الوقت ، كانت خدمة المراقبة غير متوفرة. بدلاً من ذلك ، يمكنك طلب البرامج النصية للدعم والتحديث بشكل منفصل.
- الوظائف المتواضعة لنظام التصور الفرعي المدمج. تحل Grafana هذه المشكلة ، لكن التصور المدمج يترك الكثير مما هو مرغوب فيه.
- مراقبة DBMS المتكاملة (ODBC). والحقيقة هي أن هذه المراقبة تفتح اتصالًا منفصلاً لـ Zabbix في كل مرة يتم فيها استطلاع المقياس. وإذا كانت قاعدة البيانات الخاصة بك كبيرة (مع وجود عدد كبير من المقاييس التي تم جمعها) ، فقد يصبح تجمع الاتصال فيها ممتلئًا وستتوقف قاعدة البيانات عن الاستجابة ، بما في ذلك للأنظمة المستهدفة. لدى Zabbix أداة مراقبة بديلة (على سبيل المثال ، DBforBIX) ، ولكن إعدادها لعدد كبير من الأشياء هي مهمة شاقة إلى حد ما. بالإضافة إلى ذلك ، تحتاج إلى كتابة أتمتة منفصلة.
- عدم وجود مرونة المخزون للبنية التحتية لتكنولوجيا المعلومات. من ناحية ، من الجيد الحصول عليها. من ناحية أخرى ، يبدو وكأنه علامة تبويب منفصلة لأي كائن مراقبة توجد عليه مجموعة ثابتة من حقول المخزون بأسماء مشفرة. من أجل تغيير شيء ما ، تحتاج إلى الدخول إلى التعليمات البرمجية المصدر للواجهة الأمامية. من المستحيل أيضًا تغيير عدد هذه الحقول والأحجام - هناك خطر كسر شيء ما أثناء التحديث التالي.
- عدم وجود أتمتة لبناء خرائط الشبكة. للمقارنة ، يمكننا الاستشهاد بـ HP OpenView Network Node Manager ، القادر تمامًا على إنشاء خرائط طوبولوجيا الشبكة في الوضع التلقائي. سيكون على Zabbix بناء كل شيء يدويًا. ربما ، لهذا السبب ، هذه الوظيفة ليست مطلوبة عمليا بيننا.
- انعدام المرونة في القدوة. يوفر Zabbix أربعة أدوار للمستخدم فقط بقدرات ثابتة. بالإضافة إلى ذلك ، لا توجد طريقة للخروج من الصندوق لتقييد وصول المستخدم إلى Zabbix API. أي أنه إذا كان المستخدم لديه حق الوصول إلى الواجهة الأمامية ، فسيكون لديه حق الوصول تلقائيًا إلى واجهة برمجة التطبيقات. بالنسبة لنا ، أدى ذلك إلى حقيقة أن المستخدمين الذين لديهم طلبات غير كفؤة قاموا بتحميل النظام بجدية. بالإضافة إلى ذلك ، لا توجد طريقة لمنح المستخدم حق الوصول ، على سبيل المثال ، لقراءة المقاييس بدون وصول ، لتعديل إعدادات كائن المراقبة.
بنية النظام
الآن بضع كلمات حول المؤشرات الكمية وبنية نظامنا.

في الوقت الحالي ، هناك أكثر من 16 ألف كائن (خوادم بشكل رئيسي) تحت المراقبة ، يتم جمع ما يقرب من مليوني ونصف مقاييس في المجموع. يبلغ إجمالي حملها على النظام حوالي 19 ألف قيمة في الثانية. يتم توزيع جميع كائنات المراقبة على أكثر من 1800 مجموعة من الأجهزة ، تتوافق أغلبيتها العظمى مع بيئات اختبار محددة. حاليا ، تم تسجيل أكثر من 1000 مستخدم في النظام ، والتي تنقسم إلى 365 مجموعة وظيفية.
كما ترون ، فإننا نولي الكثير من الاهتمام لتوزيع الأجهزة والمستخدمين في مجموعات. هذا يسمح لك بزيادة دقة التنبيهات من خدمتنا بشكل ملحوظ.

في المجموع ، لدينا ثلاث حالات Zabbix. يوضح الرسم البياني بنية أكبرها ، والتي تراقب البنية التحتية الرئيسية لتكنولوجيا المعلومات من التطوير والاختبار. يشرف مثال آخر على البنية التحتية للمراقبة. ويتم استخدام المثال الثالث معنا لتطوير واختبار أدوات مراقبة جديدة. يتم بناء الهيكل الافتراضي للمثيل الرئيسي بالكامل على أساس برنامج VMWare. بشكل عام ، إذا كان ذلك ممكنًا ، من الأفضل عدم استخدام أي نظام افتراضي ، لأنه من الصعب جدًا البحث عن مشاكل الأداء وحلها في حالة البنية التحتية الافتراضية.
تعتمد الواجهة الخلفية على Oracle Active Data Guard وتتكون من قاعدتي بيانات - الرئيسية والنسخة المتماثلة. لدينا ثلاث جبهات:
- بالنسبة للمهام الإدارية - تم تكوينه لإجراء عمليات ثقيلة ومعقدة وطويلة الأمد تقوم بتحميل الخادم بشكل كبير ؛
- مخصص - مع إعدادات أكثر صرامة لا تسمح للمستخدمين بزيادة التحميل على نظام المراقبة الرئيسي أكثر من اللازم ؛
- للإبلاغ ، ينظر في النسخة المتماثلة وقد تم تكييفه للتفاعل مع قواعد البيانات للقراءة فقط. جرافانا متصلة به ، مما يوفر تصوراً عالي الجودة لبيانات المراقبة.
ميزات التنفيذ
في هذه القصة ، قررت عدم التركيز على الوظائف الأساسية التي يتم تنفيذها في أي مراقبة تقريبًا - إصلاح الأعطال وجمع المعلومات حول أداء أنظمة تكنولوجيا المعلومات أو توفرها. سأركز على الميزات المميزة لخدمتنا.

تتضمن هذه الميزات في المقام الأول درجة عالية من أتمتة المهام النموذجية. لا ننفق عمليًا وقتًا في إعداد خوادم للمراقبة ، مما يوفر الوصول إلى نتائج المراقبة ، ولكننا نركز بشكل أساسي على تطوير الخدمة وإضافة ميزات جديدة غير قياسية إليها. تم تطوير أكثر من 200 من نصوص الأتمتة منذ اللحظة التي تم فيها تشغيل خدمة المراقبة بشكل كبير يساعدنا في ذلك.
ولكن قبل تسجيل الوكيل في Zabbix ، لا يزال يتعين تثبيته. كما كتبت أعلاه ، أحد عيوب Zabbix هو عدم وجود أدوات إدارة وكيل المراقبة. لذلك ، لتثبيت الوكلاء ، قمنا بتنظيم مهمة منفصلة كجزء من عمليات DevOps. يوضح الشكل أدناه مخطط تثبيت الوكيل.

لدينا نقطتا دخول رئيسيتان. هذا إما برنامج نصي Python - من خلال REST API ، يقوم بتمرير المعلومات إلى مهمة Jenkins حول المضيفين الذين تريد تثبيت الوكيل أو تحديثه ، وقائمة من المتغيرات الإضافية ، بالإضافة إلى اسم دليل التشغيل الذي تحتاج إلى تشغيله على Ansible. أو يمكن أن تأتي البيانات الافتراضية من Bitbucket. ولكن في جنكينز ، يمكن استبدالها بالكامل وفقًا للمتغيرات التي مررنا بها. وهذا يساعدنا ، على سبيل المثال ، على تحديث الوكلاء الذين تتم مراقبتهم من قبل خوادم بروكسي مختلفة. تكمن خصوصية عمليتنا في أن تكوين عامل Zabbix يتم تشكيله تقريبًا على الفور.
إعداد التقارير
في بداية المشروع ، أصبح من الواضح أن أدوات إعداد التقارير القياسية التي توفرها أدوات Zabbix لن تسمح لنا بتلبية جميع احتياجاتنا. وفي هذا الصدد ، واستناداً إلى بنية الخدمات الصغيرة ، تم تنفيذ نظام فرعي منفصل للإبلاغ ، مما يوسع بشكل كبير من قدرات تقارير الرصد الأساسية. الآن لدينا أكثر من عشرين تقريرًا قيد التشغيل. في ما يلي بعض الأمثلة جنبًا إلى جنب مع الأهداف التي يتم تنفيذها:

التنبيهات
خلال عمل الخدمة ، تطورت تنبيهات البريد الإلكتروني. إليك ما تبدو عليه الآن:

هناك معلومات حول المشكلة وحالتها ، وكذلك حول كائن المراقبة. هناك روابط إلى المقاييس والأحداث ذات الصلة ، وحقل لوصف المشكلة ، وروابط للتعليمات ونموذج للتعليقات. بالنسبة للحوادث الأكثر خطورة ، بالطبع ، لدينا أيضًا توزيع الرسائل القصيرة.
سمحت لنا مثل هذه التنبيهات بالمعلومات بتقليل اتصال معظم مستخدمينا مع Zabbix نفسه. يكفي تلقي هذه القائمة البريدية. قمنا بتجميع المستخدمين جيدًا - هناك 365 مجموعة لـ 1080 شخصًا. لذلك ، فإن النشرة الإخبارية تتحول إلى نقاط جميلة - وبالتالي ، ليست مزعجة. لقد نسي العديد من مستخدمينا تقريبًا أننا ، في الواقع ، Zabbix - يستخدمون نشرة Grafana الإخبارية ونظام التصور.
التكامل مع عمليات الإدارة
تضمن المشروع في البداية مراقبة التكامل مع بعض عمليات إدارة البنية التحتية لتكنولوجيا المعلومات. إذا سجلت خدمة المراقبة حادثًا ، يمكنك إنشاء تذكرة له - لتلك الفرق التي تعمل أكثر مع Jira. بالنسبة لأقسام الخدمة ، من الممكن إنشاء حوادث في HP Service Manager:

استنادًا إلى Zabbix ، تم أيضًا تطوير منهجية لتحسين الاستفادة من البنية التحتية لتكنولوجيا المعلومات. تم تحسين ثلاث معلمات رئيسية: مقدار وحدة المعالجة المركزية وذاكرة الوصول العشوائي ومحركات الأقراص الثابتة. تعمل هذه التقنية على أساس متوسط متحرك ونسبة مئوية 90٪. استنادًا إلى هذه التقنية ، يقع أي كائن أو خادم في إحدى الفئات الثلاث: تحت التحميل ، التحميل الأمثل ، التحميل الزائد.

يوضح ما سبق كيف يتم تطبيق هذه التقنية على خادم معين. الممر الوردي هو قيمة المتوسط المتحرك. ممر أخضر عريض - بيانات أولية. والأزرق بنسبة 90 بالمائة.
جعل التكامل مع قاعدة بيانات التكوين من الممكن أتمتة معظم المهام المرتبطة بتوفير الوصول وبناء نموذج مورد الخدمة. , . , , , .
Zabbix . , .

, . , . .
, . 2017 :

2017 .
, :
, . 70% . , , , .
2016 . . , , .
2016 . - , . . ,

2016 , : 600 CPU, 7,5 50 .