در ابتدا بهتر است یک تعریف مناسب از مانیتورینگ ارائه دهیم. مانیتور کردن نرم افزار در واقع یک نوع برنامه ی نظارتی/امنیتی است که بر روی سیستم یا شبکه نصب می شود. میتواند یک اپلیکیشن کامل باشد و یا یک کاربری و یک قسمتی از فایروال سخت افزاری، نرم افزار و یا یک آنتی ویروس باشد. به طور کل مانیتور کردن نرم افزار به این معنی است که تمام ترافیک های ورودی و خروجی برنامه، پردازه ها و تعاملات کاربر و تمامی فعالیت های برنامه ها را لاگ کنیم.که این موضوع قوانین سیستم را بررسی می کند و فعالیتهای معمولی و غیر معمول این سیستم را در نظر میگیرد. همچنین اگر اتفاق های غیرعادی را بیابد به ادمین سیستم اطلاعات خواهد داد همچنین این نرم افزارها برای شنود کردن کارمندان و کاربران در یک شبکه نیز استفاده می شود. به طور مثال یکی از کاربری های بسیار ساده مانیتورینگ کنترل والدین روی محتوایی است که که در کامپیوتر دیده می شود.
مهم نیست که شما یک برنامه ی کوچک یا خیلی جامع داشته باشید. به هر صورت نمیتوان مانیتور کردن سیستم را نادیده گرفت. حتی اگر یک وبسایت شخصی دارید نیز باید حد اقل فعال یا غیرفعال بودن آن را مانیتور کنید.
چندین نرم افزار مانیتورینگ مختلف از سطوح متن باز گرفته تا برنام های تجاری وجود دارد که به شما کمک می کند سخت افزار خود را مانیتور کنید و از خرابی ها و رخداد ها مطلع شوید. با در نظر گرفتن گزینه های زیادی که وجود دارد ممکن است پیدا کردن مورد مناسبی که برای هزینه و کارایی مورد نظر شما مناسب است، چالش برانگیز باشد.
ولی نکته خوب این است که چندین نرم افزار متن باز و قدرتمند برای این کاربرد وجود دارد که میتواند به نیاز های مانیتورینگ شما پاسخ دهد. در ادامه ی این پست به بررسی و معرفی مختصری از این ابزار ها می پردازیم.
این برنامه در سال 1999 ساخته شد و یک از پیشگام های صنعت جهت ارائه ی خدمات و راه حل های مانیتور کردن در سطوح ابتدایی تا پیشرفته می باشد. Nagios قادر به مانیتور کردن انواع جنبه های یک سیستم از جمله پروتوکل های شبکه، سیستم های عامل، مقیاس های سیستمی، اپلیکیشن ها، سرویس ها، وب سرور ها، وب سایت ها، میان افزار ها و غیره می باشد.
این برانامه روی موتور Core 4 اجرا میشود که میتواند سطح بالایی از کارایی با مصرف میزان کمی منابع پیاده سازی کند. میتوانید با استفاده از پلاگین ها عملا با انواع مختلف برنامه های غیر رسمی دیگر آن را تجمیع کنید و هر نیازی که باشد به احتمال زیاد پلاگین آن نیز موجود است. اگر علاقه مند به استفاده از میان افزار ها هستید میتوانید از Nagios استفاده کنید تا WebLogic, WebSphere, JBoss, Tomcat, Apache, URL, Nginx و غیره را مانیتور کنید.
نرم افزار Zabbix نیز یک نرم افزار حرفه ای برای اپلیکیشن ها، شبکه ها و پایگاه داده های سطح بالا و مانیتور کردن تمامی اجزاء مورد بررسی آن ها مثل کارایی و دسترسی طراحی شده است. این برنامه توسط هزارن شرکت بزرگ در جهان مانند DELL، Salesforce, ICANN و غیره مورد استفاده قرار میگیرد.
سیستم server-agent این برنامه یک معماری سیستم است که شما باید آن را بر روی یک سرور نصب کنید که بتواند توسط سرور Zabbix مانیتور شود. در عین حال لازم نیست که این agent را برای سرویس هایی مثل FTP, SSH, HTTP و غیره نصب کنید. این برنامه را میتوانید در لینوکس ویندوز و سیستم عامل های دیگر نیز نصب کنید.
برنامه ی Checkmk یک ابزار بسیار مقیاس پذیر برای مانیتور کردن سرور ها، شبکه ها، دارایی های ابری، پایگاه های داده، کانتینر ها، اینترنت اشیاء و غیره استفاده کرد. همچنین این برنامه در دو حالت قابل استفاده می باشد.
نسخه خام - که کاملا متن باز بوده و به میزان نامحدودی میتوان با آن مانیتور کرد.
نسخه حرفه ای - که همانطور که انتظار میره با اضافات در اختیار شما قرار میگیره.
لیست معرفی شده قطعا بدون شامل شدن دو برنامه متن باز و بسیار قدرتند Prometheus و Grafana کامل نخواهد بود. این روش یک روش بسیار شخصی سازی شده و غیر آماده است که شما برای به دست آوردن معیار ها و مقیاس ها از نرم افزار Prometheus و برای نمایش آنها از Grafana استفاده میکنید.
بسیاری استخراج کننده وجود دارد که بتوان برای Prometheus داده هایی را از لینوکس، ویندوز و غیره به دست آورد.
برنامه ی Cacti نیز یکی از دیگر ابزار ها برای مانیتور کردن شبکه میباشد که میتواند روی لینوکس یا ویندوز نصب شود. این برنامه به RRDTool متصل می شود که اجازه میدهد گراف هایی را مربوط به داده های شبکه تولید کنیم.
این برنامه با SNMP کار می کند و آمار شبکه را به فرمی که به راحتی قابل فهم باشد نمایش می دهد. از نیازمندی های این برنامه MySQL، Apache و یا IIS میباشد.
به وسیله ی OpenNMS میتوانید یک راه حل مانیتور کردن شبکه برای هرگونه زیرساختی به وجود آورید. همچنین میتوانید از JMX, WMI, SNMP, NRPE, XML HTTP, JDBC, XML, JSON و غیره برای جمع آوری داده استفاده کنید.
با کمک OpenNMS میتوانید توپولوژی های شبکه های لایه 2 را در شبکه خود به دست آورید. این یک معماری مبتنی بر رخداد می باشد که از Grafana نیز پشتیبانی میکند. OpenNMS درون خود یک سیستم گزارش دهی دارد که به شما اجازه میدهد در داشبورد خود یک گزارش جامع و شکیل از آمار سیستم مشاهده کنید و در کل میتوان گفت که رابط کاربری بسیار خوبی دارد.
گروه نرم افزاری پال نت با ارائه دادن ساخت سرور های شخصی و مدیریت سرور های سازمانی سرویس های متفاوتی ارائه میدهد. یکی از این سرویس ها ارائه شده مانیتور کردن شبکه و سرور ها می باشد.
نرم افزار Zabbix یکی از نرم افزار های مطرح در این حوزه می باشد که شرکت سدید آفرین یک نمایندگی رسمی از این نرم افزار در ایران می باشد.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است
https://www.dynatrace.com/resources/monitoring-tools/
https://geekflare.com/best-open-source-monitoring-software/
https://www.techopedia.com/definition/4313/monitoring-software