در مقاله ویژگیهای مهم یک نرم افزار مانیتورینگ برخی از امکانات و جنبههای یک نرمافزار مانیتورینگ بصورت اجمالی بررسی شد. در ادامه، در این مقاله به بیان تفصیلی برخی از آن ویژگیها پرداخته شده است.
هر سرویس یا خدمت که در حوزهی فناوری اطلاعات به بهرهبرداری میرسد ممکن است از چندین فناوری نرمافزاری استفاده کند. به عنوان مثال یک وب سایت فروشگاه آنلاین از وب سرویس و پایگاه داده استفاده میکند. در سازمانهای متوسط و بزرگ تنوع فناوری با توجه به نوع خدمت یا سرویس ممکن است بیشتر باشد. به عنوان مثال ممکن است از یک Load balancer ، از چندین سرور کاربردی یا Application Server به صورت کلاستر شده، از پایگاههای دادهی SQL و NoSQL ، سیستم های صف استفاده شده باشد. در این ساختار براساس نوع سرویس ممکن است از فناوری های شرکتهای مختلف نیز استفاده شده باشد. در چنین شرایطی به نظر میرسد براساس میزان اهمیت سرویس مورد نظر مانیتورینگ نیز حايز اهمیت باشد. اما آنچه باید در این شرایط به آن توجه شود استفاده از یک ابزار به جای چندین ابزار مانیتورینگ است. چراکه شرایط نظارت و نیز یافتن مشکل در صورت استفاده از چندین ابزار مانیتورینگ دشوار خواهد شد. با توجه به افزایش استفاده از سرویسهای غیرحضوری و اهمیت بالا بودن و در حال اجرا بودن آنها به صورت 24×7، استفاده از ابزارهایی که بتواند به صورت دائمی نظارت بر سرویسها داشته باشند نیز اهمیت پیدا میکند. اما آیا همه ابزارهای مانیتورینگ طیف وسیعی از فناوریها را پوشش میدهند تا راهبران را بی نیاز از بهرهبرداری از چندین ابزار مانیتورینگ نماید؟ البته فناوری های تاثیر گذار در یک سرویس تنها محدود به فناوریهای استفاده شده در لایهی نرمافزار( یعنی وب سرور، پایگاه داده و سرورکاربردی و ...) نمیشود، بلکه لایهی زیرساخت و شبکه که شامل تجهیزات شبکه، استوریجها، سیستمعاملها و تجهیزات امنیتی نیز میشود. آیا همه ابزارهای مانیتورینگ موجود در بازار جامعیت مورد نیاز شرکتها را دارند؟ پاسخ این سوال منفی است. بسیاری از ابزارهای مانیتورینگ دنیا به منظور مانیتورینگ زیرساخت و شبکه توسعه یافته بودند.
جامعیت در نرمافزار مانیتورینگ استفاده شده باعث کاهش زمان عیبیابی و رفع مشکلات خواهد شد. بسیاری از ابزارهای موجود در دنیا دارای دو رویکرد هستند. برخی از آنها قابلیت مانیتورینگ لایهی زیرساخت و شبکه را دارند. به عنوان مثال نرمافزارهای Zabbix ، SolarWinds، Op Manager ، PRTG در حال حاضر به منظور مانیتورینگ زیرساخت و شبکه مورد استفاده قرار میگیرند. اگر چه در نسخههای جدید آنها برخی از ابزارهای حوزهی نرمافزار نیز پوشش داده شده است. با این وجود برخی از ابزارهای مانیتورینگ که با عنوان APM در بازار عرضه شدهاند به صورت تخصصی به مانیتورینگ لایهی نرمافزار پرداخته اند. اما در مجموع نرمافزارهای بسیار محدودی وجود دارند که به صورت کامل کلیهی لایههای نرمافزار و زیرساخت را پوشش دهند. به عنوان مثال در نرمافزار SolarWinds میبایست ماژول SAM و DPA علاوه بر NPM به منظور مانیتورینگ کلیهی لایهها خریداری شود. در سالهای اخیر شرکت Manage Engine نیز به منظور ارایهی یک نرمافزار جامع Op Manager را به OP+ ارتقا داده است که برخی ویژگیهای APM خود را به Op Manager اضافه کرده است. علاوه بر این نرم افزارها پلتفرم مانیتورینگ معین از ابتدا نگاهی جامع به مانیتورینگ کلیهی لایهها داشته و پوشش بسیار خوبی در این حوزه در لایههای مختلف دارد. برای مشاهده لیست فناوری های قابل مانیتور در نرم افزار مانیتورینگ معین به این لینک مراجعه کنید.
در مجموع باید اشاره شود که نیاز به یک نرمافزار مانیتورینگ با قابلیت نظارت جامع بر کلیهی فناوری های زیرساخت نرمافزار و زیرساخت شبکه ضروری است. اگرچه نگاه جامع به مانیتورینگ بسیار جذاب به نظر میرسد اما با چالشهایی همراه است که باعث شده است تا در عمل بسیاری از نرمافزارهای موجود به صورت جزیرهایی بهرهبرداری شوند. یکی از این چالشها مقیاسپذیری است که در صورتیکه قصد استفاده از یک نرمافزار برای مانیتورینگ کلیهی لایهها داشته باشیم با آن مواجه هستیم. نرمافزار مورد نظر باید مقیاسپذیر باشد. مقیاسپذیری به آن معناست که نرمافزار مورد نظر در صورت افزایش تعداد اشیاء و تجهیزات بدون نیاز به تغییر در ساختار و تنها با افزایش منابع بتواند اشیاء جدید را مانیتور کرده و بهرهبرداران بدون هیچ مشکلی از نرمافزار مورد نظر استفاده کنند.
در قسمت قبل اشاره شد که مانیتورینگ جامع دارای چالشهایی است که از آن جمله میتوان به مقیاسپذیری اشاره کرد. در نرمافزاری که امکان مانیتورینگ جامع و یکپارچه را ارائه میدهد، مقیاسپذیری بسیار مهم است. چراکه با افزایش انواع فناوریها و امکان پشتیبانی از آنها، تعداد اشیاء قابل مانیتور افزایش یافته و در نتیجه تعداد شاخصها نیز افزایش خواهد یافت. (باید اشاره شود که در مقیاسپذیری چند پارامتر مهم دخیل هستند. اول تعداد شاخصها که نسبتی با تعداد تجهیزات و منابع آنها دارد. دوم دورهی خواندن هر دستگاه که بیانگر نرخ خواندن شاخصها میباشد.)
همچنین کاربران و بهرهبرداران بیشتری به صورت همزمان از نرمافزار استفاده خواهند کرد. لذا باید نرمافزار بدون تغییر در معماری و ساختار و تنها با افزایش منابع سخت افزاری محدود، تعداد اشیاء مورد نظر را پشتیبانی کرده و قادر به ارائه خدمت به کاربران آن بدون تاخیر باشد.
در حال حاضر بسیاری از ابزارهای مانیتورینگ دارای ساختاری هستند که عموما از پایگاه دادههای SQL ایی به منظور ذخیره داده استفاده کردهاند. به عنوان مثال ابزارهایی مانند Zabbix و Manage Engine و نیز SolarWinds از پایگاه دادههای mySQL ، PostgreSQL و MSSQL استفاده کردهاند. این پایگاه دادهها به منظور ذخیرهسازی دادههای سری زمانی طراحی نشدهاند اما با استفاده از تکنیکهایی در حال حاضر در این ابزارها مورد استفاده قرار گرفتهاند. به نظر میرسد به منظور نگهداری دادههای بیشتر برای بازه زمانی بیشتر نیازمند تکنیکهای مهندسی داده مانند Sampling و کاهش نمونهها باشند تا بتوانند حجم بیشتری از داده را به ازای تعداد مشخصی از تجهیزات نگهداری کنند. این محدودیت ها ممکن است گاه باعث کندی بهرهبرداری از این ابزارها در مقیاس بالا شود.
اگرچه این ابزارها در حال حاضر بسیار رایج هستند و در کشور ما در بسیاری از سازمانها به صورت کرک شده استفاده شدهاند اما آمار و اطلاعاتی در خصوص حداکثر تعداد گرههای مورد استفاده و بار پردازشی آنها و منابع اختصاص یافته به آنها در دست نیست.
اگرچه برخی گزارشها نشان میدهد در بسیاری از سازمان ها نیز تعداد زیادی از این برنامهها نصب و هریک بخشی محدودی از تجهیزات را مانیتور میکنند که این نحوهی بهرهبرداری دو دلیل میتواند داشته باشد:
1. عدم مقیاسپذیری
2. کندی در شرایطی که تعداد تجهیزات تحت مانیتور از تعدادی بالاتر رود. (که این مورد نیز به علت عدم مقیاسپذیری است)
برخی از ابزارها مانند PRTG نیز به صراحت اشاره میکند که در لایسنس XL 1 خود حداکثر 10000 سنسور که حدودا 1000 تجهیز میباشد را مانیتور میکند. بنابراین حداکثر در یک نسخه از PRTG میتوان انتظار مانیتورینگ حداکثر 1000 تجهیز با متوسط 10 سنسور را داشت و در صورتیکه سازمانی تعداد بیشتری از تجهیزات را داشته باشد ناگزیر است تا نسخهای مختلفی از آن را نصب کند.
در کنار ابزارهای اشاره شده، ابزاری مانند Prometheus نیز خود یک پایگاه دادهی سری زمانی است که امکان کشف و جمعآوری دادهها را با استفاده از عاملهایی به بهرهبرداران میدهد. بنابراین امکان مدیریت داده در این ابزار بسیار سهلتر از انواع پایگاه دادههای مبتنی بر SQL میباشد. در خصوص مقیاسپذیری این ابزار نیز گزارشی در دست نیست و هیچ Benchmarkایی ارایه نشده است. با این وجود به نظر میرسد به منظور افزایش تعداد تجهیزات تحت مانیتورینگ این ابزار باید از روشهای پیچیدهی کلاسترینگ استفاده کرد. چنانچه بخواهیم این قسمت را جمعبندی کنیم باید اشاره شود که ابزارهای مانیتورینگی که در زیرساخت خود از فناوریهای پایگاه دادهی NoSQLایی مانند پایگاه دادههای سری زمانی استفاده کردهاند دارای مقیاسپذیری بالاتری هستند. پلتفرم مانیتورینگ معین نیز به منظور پشتیبانی از تعداد بالای تجهیزات و شاخصهایی که مانیتور میکند، از پایگاه دادهی سری زمانی استفاده کرده است که در حال حاضر در محیطی با نزدیک به ۵۰۰۰ تجهیز با متوسط ۱۵۰۰ شاخص به ازای هر تجهیز مورد بهرهبرداری قرار گرفته است.
در بسیاری از نرمافزارهای مانیتورینگ امکان اتصال به سایر ابزارها به شکلهای مختلف وجود دارد. اتصال به ابزارهای Help Desk و یا ارسال اعلان به شبکههای اجتماعی از جمله مواردی است که ابزارهای مانیتورینگ توسعههایی برای آنها انجام دادهاند. این قابلیت باعث میشود تا فرآیندها و جریانهای کاری که در مباحث ITIL مطرح است و توسط بسیاری از ابزارها پیاده سازی شده است در سامانهی مانیتورینگ توسعه نیابد و بتوان از امکانات ابزارهای آماده برای این منظور به خوبی بهره برد. یکی از ویژگی هایی که نرمافزارهای مانیتورینگ باید داشته باشند امکان اتصال به ابزارهای تیکتینگ است. این ویژگی در برخی از نرم افزارها مانند Zabbix ، Manage engine Op Manager ، Moein و ... وجود دارد و امکان Integration با ابزارهایی مانند Jira را دارند.
برخی ابزارهای مانیتورینگ نیز قابلیت Integration را با فراهمنمودن APIهایی به سایر ابزارها میدهند. در این حالت که بیشتر با عنوان North Bound Interface نامیده میشود ابزارها در صورت نیاز به داده به سامانهی مانیتورینگ متصل شده و اطلاعات مورد نیاز خود را از آن استخراج میکنند این ویژگی باعث میشود تا به راحتی بتوان نرمافزار مورد نظر را با سایر ابزارها Integrate کرد. این ویژگی بیشتر برای ابزارهای ITSM و CMDBها مورد نیاز است تا بتوانند داده های مرتبط با CIها را از طریق یک ابزار مانیتورینگ استخراج نمایند.
قابلیت اتصال به ابزارهای LDAP و SSO نیز از دیگر قابلیتهایی است که سامانههای مانیتورینگ به منظور احراز هویت کاربران خود در اختیار بهرهبرداران قرار میدهند. این ویژگیها در غالب ابزارهای مانیتورینگ که در پاراگراف پیش اشاره شد وجود دارد.
امکان توسعه پذیری ویژگی است که در طراحی برخی نرمافزارها به خصوص نرمافزارهای متن باز مانند Zabbix دیده شده است. فرض کنید ابزار مانیتورینگ دارای امکان اتصال به تجهیزات با استفاده از پروتکل SNMP را دارد. اما در حال حاضر وندوری خاصی مانند وندور X را پشتیبانی نمیکند. آیا به منظور مانیتورینگ تجهیزات این وندور باید توسعهایی توسط نرمافزار مورد نظر انجام شود. در ابزارهای متنباز عمدتا برای حل مشکل کشف تجهیزات شرکتهای خاص که استاندارد نیستند طراحیهایی انجام شده است. به عنوان مثال امکاناتی مانند Templateها ویژگی است که در Zabbix برای این منظور انجام شده است که باید یک کارشناس خبرهی این نرمافزار بتواند Templateهایی را برای این نرمافزار توسعه دهد تا امکان مانیتورینگ آن فراهم شود. البته به منظور توسعهی Template باید دانش کافی نسبت به نوع دادههایی که دستگاه مورد نظر ارسال میکند و نحوهی استخراج آنها وجود داشته باشد. این ویژگی که قابلیت توسعه پذیری ابزارها را افزایش میدهد در نرمافزارهایی مانند Manage Engine که متن باز نیستند نیز تا حدودی دیده شده است. در نرمافزار مانیتورینگ moein نیز با امکاناتی مانند شاخص کارایی سفارشی امکان توسعه پذیری مانیتورینگ تجهیزات SNMP دیده شده است. اما این قابلیت به میزان امکاناتی که ابزارهای متن باز در اختیار شما قرار میدهند نیست.
سازمان های بزرگ همچون بانک ها، بیمه ها، شرکت های بزرگ و حتی متوسط ساختار افقی و عمودی نسبتا بزرگی دارند. در این شرکت ها معمولا راهبران به چند معاونت و گروه های کاری تقسیم می شوند. تیم های زیرساخت و شبکه، تیم امنیت، مجازی ساز، سرویس ، مراکز داده، پایگاه داده یا DBA از جمله نامهایی است که در این سازمانها شنیده میشود. چنانچه در یک سازمان از یک ابزار به صورت یکپارچه استفاده شود، و در عین حال استقلال کامل وجود داشته باشد و امکان به اشتراک گذاری نیز وجود داشته باشد، لازم است که بتوان افرازی در سطح نرمافزار مورد نظر به منظور تفکیک واحدهای عملیاتی فناوری اطلاعات آن سازمان در نرمافزار ایجاد کرد به گونهایی که کاربران هر واحد بتوانند به کلیهی امکانات نرمافزار دسترسی داشته باشند و هیچ گروهی دسترسی به تجهیزات کشفشدهی سایر گروهها نداشته باشد. این امکان در صورتیکه بخواهیم جامعیت را در نرمافزار داشته باشیم تا همهی فناوریهای دخیل در یک سرویس توسط یک نرمافزار مانیتور شود ضروری است. از طرفی تیم ها با توجه به ملاحظاتی که دارند دسترسی به فناوریهایی که مانیتور میکنند را به سایر گروه ها نخواهند داد. بررسی ابزارهای مانیتورینگ نشان میدهد که امکان تفکیک گروه های کاری در بیشتر این ابزارها دیده نشده و معمولا دسترسیها نهایتا توسط ادمین و براساس نقش به افراد داده می شود. عدم وجود این ویژگی باعث شده است که در چنین سازمانهایی به ازای واحدهای کاری مختلف نسخ جداگانهایی نصب شود که این امر باعث عدم یکپارچگی میشود و هیچگاه نمیتوان همهی دادهها و فناوری های مانیتور شده مرتبط با یک سرویس را به صورت یکجا بررسی و تحلیل کرد و عملا مانیتورینگ جزیرهایی به وجود میآید.
یک ابزار مانیتورینگ با فناوریهای مختلفی در ارتباط است و به صورت دورهایی شاخصها و پارامترهای مرتبط را با بهرهگیری از اینترفیسهای استاندارد جمعآوری و در پایگاه داده خود ذخیره کرده و در صورت لزوم پس از مقایسه با آستانهها رخدادها و اعلانها متناسب را به افراد ارسال میکند. ارتباط با هر فناوری ممکن است از دو طریق انجام شود. اولین راه پروتکل مدیریتی آن فناوری است. به عنوان مثال تجهیزات شبکه با پروتکل SNMP مانیتور میشوند. بنابراین ابزار مانیتورینگ باید امکان ارتباط با تجهیزات را با استفاده از این پروتکل فراهم نماید. اما برخی ابزارها فرآیند خواندن و جمعآوری داده را با استفاده از عاملها انجام میدهند. استفاده از عامل نیز رایج است اما ملاحظی دارد. به عنوان مثال عامل مورد نظر ممکن است منابعی را از سرورهایی که در آن نصب میشود استفاده نماید و البته میتواند ملاحظات امنیتی نیز برای بهرهبرداران داشته باشد. البته استفاده از عامل لزوما در همه جا امکان پذیر نیست. به عنوان مثال تجهیزات شبکه، تجهیزات امنیتی، استوریجها امکان نصب عامل را ندارند لذا ابزار مانیتورینگ باید مستقل از هر برنامه ایی بتواند آنها را مانیتور نماید. در صورتیکه سامانههای مانیتورینگ از عامل استفاده نکنند، Collectorها باید همهی پروتکلهای ارتباطی را پوشش دهند. نکتهایی که در ابزارهای مانیتورینگ در این حوزه باید مورد توجه قرار گیرد اعطای حداقل دسترسی جهت مانیتورینگ فناوری مورد نظر میباشد. به عنوان مثال نباید انتظار داشت که برای مانیتورینگ یک پایگاه داده حداکثر دسترسیها اعطا شود. بنابراین باید با حداقل دسترسیها این امکان وجود داشته باشد. همچنین سامانه باید حداقل سربار را بر تجهیزات و ابزارها جهت مانیتورینگ داشته باشد.
امکانات داشبورد سازی به صورت Runtime، ساخت تیکت و ارسال اعلان با استفاده از رسانههای مختلف نیز جز قابلیتهایی است که در تقریبا اکثر ابزارهای مانیتورینگ وجود دارد. البته برخی ابزارها مانند Grafana فقط به منظور داشبورد سازی طراحی شدهاند و با اتصال به منابع دادهی مختلف امکان داشبورد سازی روی آنها را میدهند. در این حالت برخی امکانات مانند ارسال اعلان و تیکتینگ در این ابزارها معمولا پیاده سازی نشده است و معمولا کنترل دسترسیها نیز وجود ندارد. کاربران در این ابزارها صرفا میتوانند نقش مشاهده و یا ویرایش را به امکانات Grafana داشته باشند. اما در مجموع ویژگیهای ارسال اعلان و داشبوردسازی در غالب ابزارها وجود دارد و انتظار داریم چنین ویژگی هایی در ابزارهای مانیتورینگ وجود داشته باشد.