در این مقاله قرار است به طور خلاصه مانیتورینگ سیستمها را مورد بحث قراردهیم و با تعدادی از ابزارهای معروف در این حوزه آشنا شویم.
نرمافزارهای مانیتورینگ چه هستند؟
نرمافزارهای مانیتورینگ عملیات و فعالیتهای کاربران در سیستم، برنامه های کاربردی و سرویسهای شبکه را در رایانه یا سیستمهای سازمان ما مشاهده، پایش و ردیابی میکند. این نرمافزارها بر حسب طراحی سیستم کاربران را پایش میکنند و امکاناتی برای نمودارسازی و بصریسازی دادهها در سیستم نیز دارند.
چرا برای پایش سیستم خود باید از این نرمافزارها استفاده کنیم؟
تصور کنید در حال حل یک معمای ماز هستیم.این ماز پر از بنبستها و مسیرهای گیج کننده است، و گاهی اوقات مسیرها نیز تغییر می کنند. جایی که زمانی مسیری بود که به سمت انتها رفتهایم، اکنون مسدود شده است. بنابراین، رسیدن به خروجی، یا پایان، بسیار مشکل است. حالا تصور کنید بخواهید با چشمان بسته از همان پیچ و خم عبور کنید، این کار تقریبا برای شما غیرممکن خواهد بود.
بیایید این مسئله را درحوزه فناوری اطلاعات بررسی کنیم، حال میخواهیم یک بخش فناوری اطلاعات را اداره کنیم و خدمات فناوری اطلاعات را ارائه و پشتیبانی کنیم. انجام این کار بدون ابزار نظارت مانند واردشدن به داخل آن ماز با چشم بند است – بدون مانیتورینگ فرآیندها و اتفاقاتی که در سیستم میافتد، انجام کار سخت را سختتر نیز کردهایم. وقتی نمیتوانیم ببینیم با چه چیزی کار میکنیم، چگونه میتوانیم انتظار داشته باشیم که به چه مسائل رسیدگی کنیم و عملکرد چه بخشی را بهبود ببخشیم؟
برای بیان اهمیت مانیتورینگ 5 دلیل را ذکر میکنیم:
این ابزارها معیار عملکرد سازمان ما را مشخص میکنند. بدون معیار، چگونه بخش فناوریاطلاعات سازمان ما میداند که چه تواناییهایی دارد یا در حال بهبود چه شاخصهایی است؟ خیلی ساده، چیزی نمیداند! زمانی که ندانیم زیرساخت فناوری اطلاعات فعلی ما چه کاری میتواند انجام دهد یا اینکه بخش شما چقدر خوب عمل می کند، رسیدن به اهدافی که مدیران سیستم برای ما معین کردهاند بسیار دشوار خواهد بود. اگر سازمان یا سیستمی بدون استفاده از مانیتورینگ و به صورت حدسیات جلو برود، به احتمال زیاد در خطر بزرگی است. این امر میتواند منجر به فشار بیش از حد بر کارکنان، کاهش روحیه در صورت عدم دستیابی به اهداف، کاهش بودجه و آسیب دیدن شهرت شود. ابزارهای مانیتورینگ به ما تجزیه و تحلیل بلادرنگ میدهند، بنابراین میتوانیم با استناد به ارقام تصویر واضحی از نحوه عملکرد برنامهها و زیرساختهای خود دریافت کنیم. با استفاده از این اطلاعات، میتوانیم استراتژیهای مناسبتری ایجاد کنیم، اهداف واقعبینانه تعیین کنیم، بهبودهای سیستم را مشخص کنیم و عملکرد را در طول زمان پیگیری کنیم تا تاببینیم آیا در مسیر درستی حرکت میکنیم؟
ابزارهای مانیتورینگ به بهبود عملکرد سازمان کمک بسیاری میکنند. ابزارهای نظارتی برای نشان دادن وضعیت IT و سلامت سازمان عالی هستند، اما به همین جا ختم نمی شوند. این که همه چیز کار می کند به این معنی نیست که همه چیز به خوبی کار میکند. ابزارهای مانیتورینگ به سازمان ما این امکان را می دهند که زیرساخت های خود را درک کنند، به طوری که بتوانیم بر روی مناطقی تمرکز کنید که ممکن است سازمان را در معرض خطر قرار دهد. سپس نقاط بحرانی را مورد توجه قرار دهیم و قبل از وقوع حوادث آنها را برطرف کنیم. بنابراین نهتنها عملکرد را بهبود بخشیدهایم بلکه سازمان ما مقاومتر شده است.
ابزارهای مانیتورینگ به ما کمک میکنند تلاشهای دستی خود را کاهش دهیم. برخی از ابزارهای مانیتورینگ این قابلیت را دارند که نه تنها مشکلات را شناسایی کنند، بلکه می توانند به طور خودکار مشکلات را نیز با استفاده از طیف متنوعی از تکنیکها مانند یادگیری ماشین برطرف کنند. علاوه بر این، با استفاده از قوانین و تکنیکهای یادگیری ماشینی، ابزارهای مانیتورینگ میتوانند رفتار برنامه و سرویسهای ما را بفهمند تا در هنگامی که چیزی سر جایش نیست، به جای اینکه فقط به تیمفنی در مورد خرابی احتمالی هشدار دهند، اصلاحاتی را اعمال کنند. بنابراین، ابزارهای مانیتورینگ، مداخلات دستی ما مربوط به نظارت و پشتیبانی از زیرساخت فناوری اطلاعات را کاهش خواهند داد. حذف این وظایف کوچک، اما مکرر به این معنی است که تیم فنی زمان بیشتری برای تمرکز بر مسائل مهمتر دارد.
مانیتورینگ به تخمین هزینهها میتواند کمک کند. هنگامی که از ابزارهای نظارتی استفاده میکنیم، میتوانیم ببینیم که همه چیز در محیط چقدر خوب کار میکند. با نظارت بر عملکرد، پیشبینیهای دقیقتری خواهید داشت که کدام عناصر ممکن است نیاز به ارتقا یا حتی جایگزینی داشته باشند. بنابراین، ابزارهای نظارت به ما این امکان را میدهند که بودجه محدود خود را بسیار مؤثرتر مدیریت کنیم و از افزایش هزینههای غیرمنتظره جلوگیری کنیم.
ابزارهای مانیتورینگ به پایداری سرویس کمک میکنند. ابزارهای نظارتی میتوانند به گونهای تنظیم شوند که قبل از تاثیرگذاری بر پایگاه مشتریان، ما را آگاه کنند. بنابراین، قبل از اینکه مشکلاتی برای مشتریانمان ایجاد شود، آنها را برطرف میکنیم. شناسایی و رفع مشکلات قبل از وقوع خرابیها فواید متعددی دارد. برای مثال، سازمان در زمان و هزینه صرفه جویی میکند، از خرابی سیستم جلوگیری میشود (و اثرات نامطلوب آن، که ممکن است در سطح کسب و کار باشد)، و از مشتریان ناراضی جلوگیری میشود. همه اینها از اعتبار سازمان ما محافظت می کند.
انواع مانیتورینگ؟
انواع مختلفی از مانیتورینگ در سیستمها می تواند به صورت استراتژیک برای به دست آوردن حداکثر دادهها از عملکرد سازمان و کسب و کار استفاده شود. انواع مانیتورینگ در IT می تواند بسیاری از وظایف سازمان فناوری اطلاعات را در بربگیرد. در زیر مواردی از انواع مانیتورینگ در سیستمها را شرح میدهیم.
پایش سیستم: پایش سیستم عملکرد اجزای زیرساخت را در لایه فیزیکی شبکه ارزیابی می کند. مثلا هر سرور به صورت جداگانه نظارت می شود و اطلاعات جمعی از سرورهای موجود در شبکه بیشتر تجزیه و تحلیل می شود تا تأثیر آن بر عملکرد شبکه ارزیابی شود. سپس، مشکلات مربوط به اجزای سختافزاری شناسایی و بر اساس آن رسیدگی میشود. نظارت سیستم همچنین به عنوان نظارت بر در دسترس بودن (availability) نیز شناخته می شود که با معیارهایی مانند زمان کارکرد سرور و عملکرد CPU سروکار دارد.
نظارت بر وابستگی: برنامههایی که روی زیرساخت فناوری اطلاعات توزیع شده اجرا میشوند میتوانند به انواع سرویسها یا پایگاههای داده توزیعشده در شبکه وابسته باشند. مصرف منابع در گرههای خاص میتواند نحوه واکنش اجزای سرور داخلی به عملکرد برنامه و ترافیک داده ورودی آن را تعیین کند. این اطلاعات به شناسایی وابستگی های معماری اساسی بین برنامهها، سختافزار و سرویسها کمک میکند.
پایش عملکرد وب: این نوع از پایش، بخشهای سرویس مبتنی بر وب کسب و کار یا سازمان، مانند وبسایتها را ارزیابی میکنیم، بهویژه اینکه این سرویس چگونه به درخواست کاربر در سمت مشتری شبکه پاسخ میدهد. اندازه گیریها شامل سرعت بارگذاری صفحات، خطاهای انتقال داده، خطاهای بارگذاری و موارد دیگر می باشد. بر اساس تحقیقات انجام شده، تصمیم گیری در مورد استفاده از یک وب سایت برای کاربران اینترنت 50 میلی ثانیه (0.05 ثانیه) طول میکشد. زمانی که بارگذاری صفحه بیش از حد طول میکشد، کاربران به سرعت به یک وب سرویس رقیب که عملکرد سریع تری ارائه می دهد سوئیچ میکنند.
نظارت بر عملکرد برنامه (APM): اپلیکیشنها تا بخش بسیار تاثیرگذاری از تجارت IT در جهان امروز هستند. APM مشاهده می کند که برنامهها در وضعیت فعلی محیط IT چقدر خوب عمل می کنند. دامنه نظارت به مؤلفهها و وابستگیهای زیرساختی گسترش یافته است. APM دادههای شبکه ورودی را جمعآوری و تجزیه و تحلیل میکند تا وضعیت محیط را ارزیابی کند و علت اصلی مشکل را در زمانی که برنامهها عملکرد نامناسبی دارند شناسایی کند. معیارهای APM مصرف منابع، میزان خطا در سطح نرمافزار، زمان پاسخگویی برنامه و نرخ درخواست در سناریوهای مختلف و تجربه ی مشتری است.
نظارت بر امنیت سیستم: حملات امنیتی و نقض شبکه بر جریان ترافیک داده و رفتار شبکه تأثیر میگذارد. فعالیت های غیرمعمول را می توان بر اساس سیاست های تعریف شده دسترسی و مجوز به اطلاعات ردیابی کرد. با استفاده از راهحلهای پیشرفته مبتنی بر هوش مصنوعی، دادههای گزارش شبکه نظارت شده را میتوان برای رفتار غیرعادی قبل از اینکه تهدیدات بالقوه بر تجارت تأثیر بگذارد، تجزیه و تحلیل کرد.
در مانیتورینگ سازمان با چه چالشهایی روبرو هستیم؟
اما مانیتورکردن سازمان و سامانهها همیشه بدون چالش نیست. بنابراین لیستی از چالشهایی که در پایش سیستم ممکن است روبرو شویم را به شما نشان میدهیم.
تمام دادههایی که مانیتور میشوند، قابل اطمینان نیستند. علت این امر میتواند اشتباه ما برای نوشتن اسکریپتهای داده یا تاثیر فرآیندهای سیستم روی یکدیگر یا به وجود آمدن یک شرایط غیرعادی در سرورها باشد.
زیرساخت ما بسیار بزرگ است. رایجترین مشکل نظارت بر زیرساخت، افزایش حجم دستگاهها و شبکههای نظارتی است. با رشد سازمان، زیرساخت های آن نیز رشد می کند. پیگیری دستگاه ها و برنامه هایی که اکوسیستم فناوری اطلاعات سازمان را تشکیل می دهند به خودی خود یک چالش است. راه حلاین موضوع این است که از راهکارهای مقیاس پذیر برای مانیتور کردن سرویسها استفاده کنیم. در واقع، ما به راهحلی نیاز داریم که بتواند سرویس ها را به صورت سرتاسری ردیابی و نظارت کند و تمام داده ها را از همه منابع در یک کنسول مرکزی جمع کند. این اساساً به این معنی است که ما به یک نرمافزار نظارتی نیاز دارید که چندین ابزار نظارتی خاص را در درون خود داشته باشد، که همه آنها برای ایجاد تصویر بزرگ در کنار هم قرار میگیرند.
افزایش هزینهها: برای بسیاری از شرکتها، افزایش هزینههای زیرساخت نیز یک مسئله بزرگ است. در برخی از سازمانها، هزینهی سیستم مانیتورینگ برای سازمان بسیار سنگین است. در این حوزه تحقیقات بسیاری انجام شده است. به عنوان مثال، یکی از انواع تحقیقات انجام شده این است که چگونه می توان کارایی سیستم های مختلف را بهبود بخشید و هزینه ها را کاهش داد؟
چه ابزارهای معروفی برای مانیتور کردن زیرساخت وجود دارد؟
در صنعت فناوری اطلاعات و به خصوص حوزه دوآپس، ابزارهای مختلفی برای مانیتور کردن سرویسها و زیرساخت وجود دارد. برخی از این ابزار به طور گستردهای درصنعت استفاده میشوند و اصطلاحا عاممنظوره هستند و برخی دیگر نیز کاربرد محدودتری دارند و برای اهداف خاصی توسعه دادهشده اند. در ادامه برخی از معروفترین ابرازهای منبع باز در حوزه پایش سیستم را معرفی میکنیم:
ابزار Zabbix :Zabbix یک ابزار نرمافزاری مانیتورینگ منبع باز برای اجزای مختلف فناوری اطلاعات، از جمله شبکهها، سرورها، ماشینهای مجازی و سرویسهای ابری است. Zabbix معیارهای نظارتی، از جمله استفاده از شبکه، بار CPU و مصرف فضای دیسک را ارائه می دهد. زبیکس تحت لایسنس GPL2 عرضه شده و اپن سورس است.
زبیکس به زبان C و قسمت وب با زبان PHP نوشته شده است. Zabbix چندین ویژگی نظارتی را ارائه می دهد:
بررسی های ساده می تواند در دسترس بودن و پاسخگویی سرویس های استاندارد مانند SMTP یا HTTP را بدون نصب هیچ نرم افزاری بر روی هاست نظارت شده تأیید کند.
یک عامل Zabbix همچنین می تواند بر روی هاستهای یونیکس و ویندوز نصب شود تا آمارهایی مانند بار CPU، استفاده از شبکه، فضای دیسک و غیره را نظارت کند.
به عنوان جایگزینی برای نصب یک عامل بر روی هاست، Zabbix شامل پشتیبانی از نظارت از طریق بررسی های SNMP، TCP و ICMP، و همچنین از طریق IPMI، JMX، SSH، Telnet و استفاده از پارامترهای سفارشی است. Zabbix از انواع مکانیسم های اطلاع رسانی در زمان واقعی، از جمله XMPP پشتیبانی می کند.
پرومتئوس:Prometheus یک جعبه ابزار مانیتورینگ و هشدار سیستم منبع باز است که در ابتدا در SoundCloud ساخته شد. از زمان شروع آن در سال 2012، بسیاری از شرکت ها و سازمان ها Prometheus را پذیرفتهاند و این پروژه دارای یک جامعه توسعهدهندگان و کاربران بسیار فعال است. اکنون یک پروژه منبع باز مستقل است و مستقل از هر شرکتی نگهداری می شود. برای تاکید بر این موضوع و برای روشن شدن ساختار مدیریتی پروژه، پرومتئوس در سال 2016 به عنوان دومین پروژه میزبان پس از Kubernetes به بنیاد cloud native computing پیوست.
پرومتئوس معیارهای خود را به عنوان دادههای سری زمانی جمع آوری و ذخیره می کند، یعنی اطلاعات متریک با timestampای که در آن ثبت شده است، به صورت دادههای کلید-مقدار ذخیره میشود.
شرکت نتنگار: شرکت پدید آوران رویای سریع ارتباطات در سال 89 با هدف ایجاد بستر مناسب و ارائه راحل های مبتنی بر سیستم ها و متدهای دنیا IT مطرح و در سال 90 به صورت رسمی به ثبت رسید. این مجموعه تلاش می کند با ارائه مشاوره علمی و انجام اقدامات مناسب در جهت امکان سنجی واحدهای کارفرمایان , راهحلهای مناسب و مقرون به صرفهای را برای کاهش هزینهها و افزایش راههای تبلیغاتی توسط بستر مناسب وب به کارفرمایان ارائه کند. از ویژگیهای سیستم مانیتوریگ این شرکت میتوان به پوشش سراسری دیتاسنترهای ایرانی، سیستم نوتیفیکیشن و عیبیابی آسان اشاره کرد.
وبسایت ایرانی servermonitoring: این وبسایت از دسته وبسایت های فارسی و سادهای است که خدمات پایهای مانیتورینگ برای کسب و کارها را فراهم میآورد.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است