سیستم پشتیبانی اسناد در بانک ما به طور مداوم در حال توسعه و گسترش است و الزامات سرعت و تحمل خطا فقط در حال افزایش است. در برخی موارد، حفظ یک LMS بدون نظارت متمرکز موثر بسیار خطرناک شد. برای ایمن سازی فرآیندهای تجاری در VTB و ساده کردن کار مدیران، راه حلی را بر اساس مجموعه ای از فناوری های باز اجرا کردیم. با کمک آن، ما می توانیم فعالانه به حوادث واکنش نشان دهیم و از مشکلات احتمالی جلوگیری کنیم. در زیر برش داستانی در مورد تجربه ما در استفاده از نرم افزار رایگان برای نظارت بر سیستم های تجاری در مقیاس بزرگ است.
چرا سیستم مدیریت اسناد خود را نظارت کنید؟
از سال 2005، پشتیبانی اسناد در بانک VTB توسط سیستم CompanyMedia "مدیریت" شده است. LMS بیش از 60 هزار کاربر را استخدام می کند که هر ماه بیش از یک میلیون سند جدید ایجاد می کنند. سرورهای ما باید 24 ساعت شبانه روز کار کنند: تقریباً در هر لحظه 2500-3000 نفر در سیستم وجود دارند که در سراسر کشور از Petropavlovsk-Kamchatsky تا کالینینگراد متصل هستند. هر ثانیه عملیات LMS به معنای 10-15 تغییر است.
برای اطمینان از اینکه سیستم به طور دقیق وظایف محول شده خود را انجام می دهد، یک زیرساخت مقاوم در برابر خطا را با استفاده از سرورهای پروکسی، تعادل درخواست، حفاظت از اطلاعات، جستجوی متن کامل، مسیرهای یکپارچه سازی و پشتیبان گیری مستقر کرده ایم. پشتیبانی و مدیریت پروژه ای در این مقیاس به منابع عظیمی نیاز دارد. مدیران اطلاعات اولیه در مورد عملکرد سرور، بار رم، زمان CPU، زیرسیستم ورودی/خروجی و غیره را به صورت شبانه روزی کنترل می کنند. اما علاوه بر این، تجزیه و تحلیل های ظریف تری مورد نیاز است:
- محاسبه زمان صرف شده برای اجرای سناریوهای تجاری؛
- نظارت بر پویایی عملکرد سیستم و بار روی آن؛
- جستجوی انحراف در اجزای سیستم از الزامات غیرعملکردی تایید شده
11 سال پس از معرفی LMS، موضوع پاسخ فعالانه به انواع مختلف خطاها به ویژه حاد شده است. مدیریت بانک متوجه شد که کار بدون مانیتور و کنسول زندگی سیستم با آتش بازی می کند: کوچکترین شکست در یک سیستم تجاری در این سطح می تواند میلیون ها ضرر را به همراه داشته باشد.
در سال 2016، ما شروع به معرفی ابزارهایی برای شناسایی سریع مشکلات در عملکرد LMS کردیم، از جمله نظارت بر پارامترهای مورد علاقه ما در زمان واقعی. پیش از این، سیستم نظارت کاربردی در چارچوب زیرساخت شرکت InterTrust مستقر و آزمایش شده بود.
چگونه همه شروع شد
امروزه، سیستم نظارت متمرکز برنامه VTB LMS، مبتنی بر محصولات نرمافزاری منبع باز، به جلوگیری از اکثر خطاهای مرتبط با جریان اسناد، طبقهبندی سریع و دقیق مشکلات و پاسخگویی سریع به هر حادثه کمک میکند. شامل دو زیر سیستم است:
- برای نظارت بر زیرساخت فناوری اطلاعات خدمات سیستم؛
- برای نظارت بر وقوع خطا در عملکرد LMS.
همه چیز با یک برنامه مانیتورینگ رایگان شروع شد. پس از گذراندن چندین گزینه، روی Zabbix - نرم افزار رایگانی که در ابتدا برای خدمات و تجهیزات بانکی نوشته شده بود، مستقر شدیم. این سیستم مبتنی بر وب PHP، که می تواند داده ها را در MySQL، PostgreSQL، SQLite یا Oracle Database ذخیره کند، برای نیازهای ما مناسب بود.
Zabbix عوامل خود را بر روی هر سرور اجرا می کند و اطلاعات مربوط به معیارهای مورد علاقه را در زمان واقعی در یک پایگاه داده جمع آوری می کند. با استفاده از برنامه، جمع آوری داده ها در مورد بار پردازنده ها و RAM، استفاده از شبکه و سایر اجزاء، بررسی در دسترس بودن و پاسخ سرویس های استاندارد (SMTP یا HTTP)، اجرای برنامه های خارجی و نظارت بر پشتیبانی از طریق راحت است. SNMP.
پس از استقرار Zabbix، معیارهای سخت افزاری استاندارد را پیکربندی کردیم و در ابتدا این کافی بود. اما VTB SDO به طور مداوم در حال توسعه و رشد است: در سال 2016، تعداد سرورها به طور قابل توجهی افزایش یافت، فرآیندهای مهاجرت ظاهر شد، بانک مسکو، VTB Capital و VTB24 به سیستم پیوستند. دیگر معیارهای استاندارد کافی وجود ندارد و به Zabbix آموزش دادیم که اطلاعات مربوط به وجود صفها را در هر یک از حجمهای متصل به سرور (در خارج از کادر Zabbix فقط صف کلی دیسک را منعکس میکند) و همچنین زمان لازم را ردیابی کند. برای تکمیل یک رویه خاص
علاوه بر این، ما سیستم را به چندین محرک مجهز کردیم - شرایطی که تحت آن یک اعلان برای مدیر ارسال می شود (پیام در تلگرام، پیامک به شماره تلفن یا ایمیل). تریگرها را می توان برای هر مجموعه ای از پارامترها پیکربندی کرد. به عنوان مثال، میتوانید درصد مشخصی از فضای آزاد دیسک را مشخص کنید، و سیستم با رسیدن به آستانه تعیینشده به مدیر هشدار میدهد یا اگر یک رویه پسزمینه طولانیتر از حد معمول اجرا میشود، به شما اطلاع میدهد.
اتصال جاوا و تجسم داده ها
ما به طور قابل توجهی دامنه داده های تجزیه و تحلیل شده را گسترش دادیم، اما به زودی این برای نظارت موثر کافی نبود. با استفاده از این واقعیت که LMS شرکت Media یک برنامه جاوا است، ما از طریق رابط JMX به ماشین مجازی جاوا متصل شدیم و توانستیم معیارهای جاوا را مستقیماً بگیریم. و نه تنها پارامترهای استاندارد فعالیت حیاتی جاوا، مانند شدت کار GC یا مصرف Heap، بلکه آزمایشهای خاصی که مستقیماً با کد برنامه اجرایی مرتبط هستند.
در سال 2017، حدود یک سال پس از اجرای سیستم نظارت، مشخص شد که برای کار عادی با حجم عظیم داده های جمع آوری شده در Zabbix، تجسم کافی - صفحه نمایش های پیچیده وجود ندارد. بهترین راه حل برای این مشکل دوباره نرم افزار رایگان بود - Grafana، یک داشبورد مناسب برای معیارها که به شما امکان می دهد تمام داده ها را در یک صفحه جمع کنید.
رابط Grafana تعاملی است و یادآور سیستم OLAP است. این زیرسیستم داده های دریافت شده توسط Zabbix را بر روی یک صفحه نمایش می دهد و اطلاعات را در قالب نمودارها و نمودارهایی ارائه می دهد که به راحتی قابل تجزیه و تحلیل هستند. مدیر به راحتی می تواند برش های مورد نیاز خود را سفارشی کند.
نظارت و رفع پیشگیرانه خطاها در سیستم LMS
پلت فرم نرم افزار منبع باز ELK به شما کمک می کند اطلاعات دریافتی در حین نظارت را فیلتر و تجزیه و تحلیل کنید. این محصول متن باز از سه ابزار قدرتمند برای جمع آوری، ذخیره و تجزیه و تحلیل داده ها تشکیل شده است: Elasticsearch، Logstash و Kibana. پیادهسازی این زیرسیستم به ویژه به شما امکان میدهد در زمان واقعی ببینید که چه تعداد خطا در سیستم رخ داده است، در کدام سرورها و اینکه آیا این خطاها تکرار میشوند یا خیر.
اکنون مدیر می تواند مشکل را در مراحل اولیه، حتی قبل از اینکه کاربر با آن مواجه شود، تشخیص دهد. چنین نظارت فعالانه ای به شما امکان می دهد با حذف به موقع خطاها از نقص سیستم جلوگیری کنید. علاوه بر این، میتوانیم متوجه شویم که چگونه رفتار سیستم پس از بهروزرسانی تغییر کرده است و همچنین در صورت بروز مشکلات جدید را شناسایی کنیم.
نظارت بر عملیات تجاری
این سیستم علاوه بر کارکردهای اساسی نظارت بر مصرف منابع، توانایی تجزیه و تحلیل و کنترل عملیات تجاری را نیز دارد.
نظارت بر زمان اجرای کلی عملیات تجاری به شما این امکان را می دهد که عوامل جدید را شناسایی کرده و تأثیر آنها بر عملکرد سیستم را درک کنید.
نظارت بر زمان اجرای درخواستها برای هر سرویس تجاری، شناسایی عملیاتی را که از هنجار منحرف میشوند، ممکن میسازد.
اسکرین شات بالا نمونه ای از نظارت بر یک کار پس زمینه از نظر انحراف آن از هنجار است.
لیست وظایف کنترل شده از نظر فعالیت آنها در یک سرور خاص به شما امکان می دهد خطاها - از جمله تکراری بودن اجرای کار - را در همه سرورها شناسایی کنید.
روند در زمان اجرای رویه های پس زمینه نیز نظارت می شود.
این سیستم رشد می کند، توسعه می یابد و به مقابله با مشکلات کمک می کند
با پیاده سازی سیستم توصیف شده، نظارت بر عملکرد سرورهای LMS به طور قابل توجهی ساده شده است. با این وجود، انواع مختلفی از تضادها هر از گاهی ایجاد می شوند که بر سرعت جریان اسناد تأثیر می گذارد و باعث شکایت کاربران می شود. بنابراین متوجه شدیم که کنترل رفتار خود برنامه و نه فقط سرورها ضروری است.
برای حل این مشکل، یک متعادل کننده از طریق API به سیستم مانیتورینگ متصل شد که با خوشه ای از سرورهای برنامه کار می کند. به لطف این، مدیر می تواند ببیند چه مدت طول می کشد تا سرور به هر درخواست کاربر پاسخ دهد.
دادههای مربوط به زمان پاسخ سرور برای تجزیه و تحلیل در دسترس قرار گرفت، که این امکان را فراهم کرد که کند شدن سرعت LMS را با فرآیندهایی که روی سرور اتفاق میافتد مرتبط کنیم. به طور خاص، یک وضعیت جالب پدیدار شد: سرور به کندی کار می کند، اگرچه در این لحظه بارگیری نمی شود. با تجزیه و تحلیل ناهنجاری، ما انحرافاتی را در عملکرد جاوا جمع آوری زباله کشف کردیم. در نهایت مشخص شد که عملکرد نادرست این سرویس بوده که به این وضعیت منجر شده است. با کنترل جاوا Garbage Collector، مشکل را به طور کامل برطرف کردیم.
اینگونه است که نرم افزار رایگان به توسعه و رشد سیستم مدیریت اسناد در صنعت بانکداری کمک می کند. ما فقط به مسائل اصلی مربوط به سیستم نظارت VTB SDO پرداخته ایم. اگر به جزئیات علاقه دارید، در نظرات بپرسید، ما خوشحال خواهیم شد که تجربه خود را با شما به اشتراک بگذاریم.
منبع: www.habr.com