برنامج مفتوح المصدر لنظام إدارة التعلم (LMS): كيف يساعد برنامج soft free في إدارة أنظمة الأعمال الحيوية في VTB

إن نظام دعم الوثائق في مصرفنا يتطور باستمرار ويتم توسيع نطاقه ، في حين أن متطلبات السرعة والتسامح مع الخطأ تتزايد فقط. في مرحلة ما ، أصبحت خدمة LMS دون مراقبة مركزية فعالة مخاطرة كبيرة. لتأمين العمليات التجارية في VTB وتبسيط عمل المسؤولين ، قمنا بتنفيذ حل يستند إلى مجموعة من التقنيات المفتوحة. مع ذلك ، يمكننا الاستجابة بشكل استباقي للحوادث ، ومنع المشاكل المحتملة. تحت القص - قصة عن تجربتنا في استخدام البرمجيات الحرة لرصد أنظمة الأعمال واسعة النطاق.



لماذا مراقبة نظام سير العمل


منذ عام 2005 ، تمت إدارة نظام الوثائق في بنك VTB من قبل نظام CompanyMedia. توظف SDO أكثر من 60 ألف مستخدم يقومون شهريًا بإنشاء أكثر من مليون مستند جديد. يجب أن تعمل خوادمنا على مدار 24 ساعة يوميًا: في أي لحظة تقريبًا ، هناك 2500-3000 شخص في النظام يقومون بالاتصال في جميع أنحاء البلاد ، من بتروبافلوفسك كامتشاتسكي إلى كالينينغراد. كل ثانية من عملية LMS هي 10-15 التغييرات.

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

  • حساب الوقت الذي يقضيه في تنفيذ سيناريوهات العمل ؛
  • تتبع ديناميات أداء النظام وتحميله ؛
  • ابحث عن الانحرافات في مكونات النظام عن المتطلبات غير الوظيفية المعتمدة.

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

في عام 2016 ، بدأنا في تقديم أدوات للتحديد السريع للمشاكل في تشغيل LMS ، بما في ذلك مراقبة المعلمات في الوقت الفعلي التي تهمنا. سابقًا ، تم نشر نظام مراقبة التطبيقات واختباره في إطار البنية التحتية لشركة InterTrust.

كيف بدأ كل شيء


اليوم ، يساعد نظام مراقبة التطبيقات المركزي لـ VTB SDO المستند إلى برنامج مفتوح المصدر على منع معظم الأخطاء المرتبطة بإدارة المستندات ، وتصنيف المشكلات بسرعة وبدقة ، والاستجابة السريعة لأية حوادث. ويشمل نظامين فرعيين:

  • لمراقبة البنية التحتية لتكنولوجيا المعلومات لخدمات النظام ؛
  • لمراقبة حدوث الأخطاء في عمل LMS.

بدأ كل شيء مع تطبيق المراقبة المجاني الوحيد. بعد الاطلاع على العديد من الخيارات ، استقرنا على برنامج Zabbix المجاني ، والذي كان مكتوبًا في الأصل للخدمات والمعدات المصرفية. هذا النظام المستند إلى الويب PHP ، والذي يمكنه تخزين البيانات في MySQL أو PostgreSQL أو SQLite أو Oracle Database ، يلائم احتياجاتنا تمامًا.

تدير Zabbix عملائها على كل خادم وتقوم بجمع معلومات حول مقاييس الاهتمام في الوقت الفعلي في قاعدة بيانات واحدة. باستخدام التطبيق ، يكون من المناسب جمع البيانات عن الحمل على المعالجات وذاكرة الوصول العشوائي ، وعن استخدام الشبكة والمكونات الأخرى ، والتحقق من توافر رد فعل الخدمات القياسية (SMTP أو HTTP) ، وتنفيذ البرامج الخارجية ، ودعم المراقبة عبر SNMP.

من خلال نشر Zabbix ، قمنا بإعداد مقاييس قياسية للأجهزة ، وكانت في البداية كافية. ولكن VTB SDO يتطور باستمرار وينمو: في عام 2016 زاد عدد الخوادم بشكل ملحوظ ، ظهرت عمليات الترحيل ، بنك موسكو ، VTB Capital ، VTB24 متصلاً بالنظام. يوجد عدد أقل من المقاييس القياسية ، وقمنا بتدريس Zabbix لتتبع المعلومات حول وجود قوائم الانتظار على كل مجلد من وحدات التخزين المتصلة بالخادم (من مربع Zabbix ، يعكس فقط قائمة انتظار القرص العامة) ، وكذلك حول الوقت الذي يستغرقه معالجة إجراء معين.



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

اتصال جافا وتصور البيانات


لقد وسعنا نطاق البيانات التي تم تحليلها بشكل كبير ، ولكن سرعان ما لم يكن ذلك كافيًا للمراقبة الفعالة. من خلال الاستفادة من حقيقة أن CompanyMedia DLS هو تطبيق Java ، قمنا بالاتصال بجهاز Java Virtual Machine من خلال واجهة JMX وتمكنا من أخذ مقاييس Java مباشرة. علاوة على ذلك ، ليس فقط وظائف Java الأساسية القياسية ، مثل شدة استهلاك GC أو Heap ، ولكن أيضًا عينات محددة مرتبطة مباشرة بالكود القابل للتنفيذ الخاص بالتطبيق.



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



تذكرنا واجهة Grafana التفاعلية بنظام OLAP. يعرض النظام الفرعي البيانات التي يتلقاها Zabbix على شاشة واحدة ، ويقدم المعلومات في شكل رسوم بيانية ومخططات ملائمة للتحليل. يمكن للمسؤول تخصيص الشرائح التي يحتاجها بسهولة.



المراقبة واستكشاف الأخطاء وإصلاحها الوقائي في نظام LMS


تساعد عملية تصفية المعلومات التي تم تلقيها أثناء المراقبة وتحليلها على توفير نظام أساسي مفتوح المصدر لبرنامج ELK. يتكون هذا المنتج مفتوح المصدر من ثلاث أدوات قوية لجمع وتخزين وتحليل البيانات: Elasticsearch و Logstash و Kibana. يسمح تنفيذ هذا النظام الفرعي ، على وجه الخصوص ، برؤية عدد الأخطاء التي حدثت في النظام في الوقت الفعلي ، وأي خوادم وما إذا كانت هذه الأخطاء تتكرر.



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



مراقبة العمليات التجارية


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



تتيح لك مراقبة الوقت الإجمالي لعمليات الأعمال تحديد العوامل الجديدة وفهم تأثيرها على النظام.



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



توضح لقطة الشاشة أعلاه مثالًا لمراقبة مهمة خلفية من حيث انحرافها عن القاعدة.



تتيح لك قائمة المهام التي تتم مراقبتها من حيث نشاطها على خادم معين تحديد الأخطاء - بما في ذلك تكرار تنفيذ المهمة - عبر كافة الخوادم.



كما تراقب الاتجاهات في وقت تنفيذ إجراءات الخلفية.

ينمو النظام ويساعد على التغلب على المشكلات.


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

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

أصبحت البيانات المتعلقة بوقت استجابة الخادم متاحة للتحليل ، مما جعل من الممكن ربط تباطؤ LMS بالعمليات التي تحدث على الخادم. تم الكشف عن موقف مثير للاهتمام ، على وجه الخصوص: الخادم بطيء ، رغم أنه في هذه اللحظة لم يتم تحميله. من خلال تحليل الحالة الشاذة ، وجدنا انحرافات في تشغيل جافا Garbage Collector Java. في النهاية ، اتضح أن العملية غير الصحيحة لهذه الخدمة هي التي أدت إلى هذا الموقف. من خلال التحكم في جافا Garbage Collector ، قمنا بإصلاح المشكلة تمامًا.

هذه هي الطريقة التي يساعد بها البرنامج المجاني على تطوير وتنمية نظام إدارة المستندات في القطاع المصرفي. تطرقنا فقط إلى القضايا الرئيسية المتعلقة بنظام مراقبة VTB LMS. إذا كنت مهتمًا بالتفاصيل - اسأل في التعليقات ، سنكون سعداء بمشاركة تجربتنا معك.

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


All Articles