بررسی ابزار های مانیتورینگ(Monitoring Tools)

مانیتورینگ برنامه دقیقا به چه معناستدر ابتدا بهتر است یک تعریف مناسب از مانیتورینگ ارائه دهیم. مانیتور کردن نرم افزار در واقع یک نوع برنامه ی نظارتی/امنیتی است که بر روی سیستم یا شبکه نصب می شود. میتواند یک اپلیکیشن کامل باشد و یا یک کاربری و یک قسمتی از فایروال سخت افزاری، نرم افزار و یا یک آنتی ویروس باشد. به طور کل مانیتور کردن نرم افزار به این معنی است که تمام ترافیک های ورودی و خروجی برنامه، پردازه ها و تعاملات کاربر و تمامی فعالیت های برنامه ها را لاگ کنیم.که این موضوع قوانین سیستم را بررسی می کند و فعالیتهای معمولی و غیر معمول این سیستم را در نظر می‌گیرد. همچنین اگر اتفاق های غیرعادی را بیابد به ادمین سیستم اطلاعات خواهد داد همچنین این نرم افزارها برای شنود کردن کارمندان و کاربران در یک شبکه نیز استفاده می شود. به طور مثال یکی از کاربری های بسیار ساده مانیتورینگ کنترل والدین روی محتوایی است که که در کامپیوتر دیده می شود.ابزار های مانیتورینگمهم نیست که شما یک برنامه ی کوچک یا خیلی جامع داشته باشید. به هر صورت نمیتوان مانیتور کردن سیستم را نادیده گرفت. حتی اگر یک وبسایت شخصی دارید نیز باید حد اقل فعال یا غیرفعال بودن آن را مانیتور کنید.چندین نرم افزار مانیتورینگ مختلف از سطوح متن باز گرفته تا برنام های تجاری وجود دارد که به شما کمک می کند سخت افزار خود را مانیتور کنید و از خرابی ها و رخداد ها مطلع شوید. با در نظر گرفتن گزینه های زیادی که وجود دارد ممکن است پیدا کردن مورد مناسبی که برای هزینه و کارایی مورد نظر شما مناسب است، چالش برانگیز باشد. ولی نکته خوب این است که چندین نرم افزار متن باز و قدرتمند برای این کاربرد وجود دارد که میتواند به نیاز های مانیتورینگ شما پاسخ دهد. در ادامه ی این پست به بررسی و معرفی مختصری از این ابزار ها می پردازیم.Nagiosاین برنامه در سال 1999 ساخته شد و یک از پیشگام های صنعت جهت ارائه ی خدمات و راه حل های مانیتور کردن در سطوح ابتدایی تا پیشرفته می باشد. Nagios قادر به مانیتور کردن انواع جنبه های یک سیستم از جمله پروتوکل های شبکه، سیستم های عامل، مقیاس های سیستمی، اپلیکیشن ها، سرویس ها، وب سرور ها، وب سایت ها، میان افزار ها و غیره می باشد.این برانامه روی موتور Core 4 اجرا میشود که میتواند سطح بالایی از کارایی با مصرف میزان کمی منابع پیاده سازی کند. میتوانید با استفاده از پلاگین ها عملا با انواع مختلف برنامه های غیر رسمی دیگر آن را تجمیع کنید و هر نیازی که باشد به احتمال زیاد پلاگین آن نیز موجود است. اگر علاقه مند به استفاده از میان افزار ها هستید میتوانید از Nagios استفاده کنید تا WebLogic, WebSphere, JBoss, Tomcat, Apache, URL, Nginx و غیره را مانیتور کنید.ویژگی های Nagiosمزکزی کردن نمای بررسی تمامی زیرساخت های آی تی. مدیریت کننده های رخداد آن به صورت خودکار دست به تصحیح خطا اپلیکیشن ها میزنند.دسترسی برای مانیتور کردن چندین سروردسترسی انتخاب شده به مشتری ها این اجازه را میدهد که فقط زیرساخت هایی که زیر نظر آنها هستند را مورد بررسی قرار دهند.جامعه ی فعالی متشکل از بیش از یک میلیون کاربر داردمعماری قابل گستش داشتنZabbixنرم افزار Zabbix نیز یک نرم افزار حرفه ای برای اپلیکیشن ها، شبکه ها و پایگاه داده های سطح بالا و مانیتور کردن تمامی اجزاء مورد بررسی آن ها مثل کارایی و دسترسی طراحی شده است. این برنامه توسط هزارن شرکت بزرگ در جهان مانند DELL، Salesforce, ICANN و غیره مورد استفاده قرار میگیرد.سیستم server-agent این برنامه یک معماری سیستم است که شما باید آن را بر روی یک سرور نصب کنید که بتواند توسط سرور Zabbix مانیتور شود. در عین حال لازم نیست که این agent را برای سرویس هایی مثل FTP, SSH, HTTP و غیره نصب کنید. این برنامه را میتوانید در لینوکس ویندوز و سیستم عامل های دیگر نیز نصب کنید.ویژگی هامستقیما اپلیکیشن های جاوا را از طریق JMX مورد مشاهده قرار میگیرند.مانیتورینگ ماشین مجازی توسط VMWare, VCenter و vSphere پشتیبانی میشود.قسمت فرانت اند یک سیستم محافظتی در مقابل حمالت bruete force درون خود دارد.اتوماسیون کردن سیستم میتواند در قالب انواع زبان ها مانند Ruby, python, Perl, PHP, Java و غیره نوشته شود.میتوان آن را با دیگر سیستم های مدیریتی مانند Puppet, cfengine, Chef, bcfg2 و دیگر های سیستم دیگر تجمیع کرد و ارتقا داد.Checkmkبرنامه ی Checkmk یک ابزار بسیار مقیاس پذیر برای مانیتور کردن سرور ها، شبکه ها، دارایی های ابری، پایگاه های داده، کانتینر ها، اینترنت اشیاء و غیره استفاده کرد. همچنین این برنامه در دو حالت قابل استفاده می باشد.نسخه خام - که کاملا متن باز بوده و به میزان نامحدودی میتوان با آن مانیتور کرد.نسخه حرفه ای - که همانطور که انتظار میره با اضافات در اختیار شما قرار میگیره.ویژگی هادر چند دقیقه میتواند آماده شود و مورد استفاده قرار بگیرد.کمترین نیاز برای پیاده سازی در صنعت: میتوان به مقدار بسیار زیادی عملات های آن را خودکار کرد و کمترین تلاشی به صورت دستی انجام شود.مانیتور کردن بسیار منعطفقابل استفاده با تکنولوژی های جدید: میتواند با Docker, kubernetes,AWS و Azure کار کند.مناسب برای استفاده در محیط های بسیار وسیع با مقیاس پذیری بالا.Prometheus + Grafanaلیست معرفی شده قطعا بدون شامل شدن دو برنامه متن باز و بسیار قدرتند Prometheus و Grafana کامل نخواهد بود. این روش یک روش بسیار شخصی سازی شده و غیر آماده است که شما برای به دست آوردن معیار ها و مقیاس ها از نرم افزار Prometheus و برای نمایش آنها از Grafana استفاده میکنید.بسیاری استخراج کننده وجود دارد که بتوان برای Prometheus داده هایی را از لینوکس، ویندوز و غیره به دست آورد.Cactiبرنامه ی Cacti نیز یکی از دیگر ابزار ها برای مانیتور کردن شبکه میباشد که میتواند روی لینوکس یا ویندوز نصب شود. این برنامه به RRDTool متصل می شود که اجازه میدهد گراف هایی را مربوط به داده های شبکه تولید کنیم.این برنامه با SNMP کار می کند و آمار شبکه را به فرمی که به راحتی قابل فهم باشد نمایش می دهد. از نیازمندی های این برنامه MySQL، Apache و یا IIS میباشد.ویژگی هامیتوان به صورت نامحدود برای هر گراف مواردی را به صورت سلیقه ای مشخص کرد.پشتیبانی از فایل های پایگاه داده Round-Robin با داده هایی از چندین منبع مختلف و همچنین میتواند فایل های RRD را در هر جای سیستم محلی ذخیره کند.مدیریت و امنیت مبتنی بر کاربر.قابلیت استفاده از کد های استخراج داده ی سلیقه ای OpenNMSبه وسیله ی OpenNMS میتوانید یک راه حل مانیتور کردن شبکه برای هرگونه زیرساختی به وجود آورید. همچنین میتوانید از JMX, WMI, SNMP, NRPE, XML HTTP, JDBC, XML, JSON و غیره برای جمع آوری داده استفاده کنید.با کمک OpenNMS میتوانید توپولوژی های شبکه های لایه 2 را در شبکه خود به دست آورید. این یک معماری مبتنی بر رخداد می باشد که از Grafana نیز پشتیبانی میکند. OpenNMS درون خود یک سیستم گزارش دهی دارد که به شما اجازه میدهد در داشبورد خود یک گزارش جامع و شکیل از آمار سیستم مشاهده کنید و در کل میتوان گفت که رابط کاربری بسیار خوبی دارد.ویژگی هابه طور مخصوص برای استفاده در لینوکس ساخته شده است ولی متوان از آن در ویندوز, Solaris و OSX نیز استفاده کرد.میتواند دمای دستگاه را مانیتور کند.داشبورد ادمین قابلیت شخصی سازی دارد.دارای قابلیت مانیتور کردن منبع برقپشتیبانی از IPv4 و IPv6رخداد ها میتوانند نوتیفیکیشن هایی از طریق ایمیل، پیامک، XMPP و دیگر متد ها بفرستند.نقشه ی نقطه ای جغرافیای قابل نمایش دارد که میتوان در آن سرویس های در حال سرویس دهی را به وسیله ی Open Street Map، Google Map و یا Mapquest را دید.برنامه های ایرانی مشابه برای مانیتور کردنگروه پال نتگروه نرم افزاری پال نت با ارائه دادن ساخت سرور های شخصی و مدیریت سرور های سازمانی سرویس های متفاوتی ارائه میدهد. یکی از این سرویس ها ارائه شده مانیتور کردن شبکه و سرور ها می باشد.سدید آفریننرم افزار Zabbix یکی از نرم افزار های مطرح در این حوزه می باشد که شرکت سدید آفرین یک نمایندگی رسمی از این نرم افزار در ایران می باشد.این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی استمنابعhttps://www.dynatrace.com/resources/monitoring-tools/https://geekflare.com/best-open-source-monitoring-software/https://www.techopedia.com/definition/4313/monitoring-softwarehttps://www.palnetgroup.ir/https://sadidafarin.ir/zabbix-network-monitoring-software