امروزه سازمانها، کسب و کارهای اینترنتی و پایگاههای خبری بیش از پیش به فاکتورهای اساسی از جمله، پایداری سرویسها، سرعت بارگذاری و در نهایت عملکرد درست بخشهای مختلف اهمیت میدهند. بنابراین در نظر داشتن کیفیت پارامترهای اشاره شده بصورت شبانه روز نیاز به استفاده از سرویسهای مانیتورینگ که امکان پایش را از نقاط مختلف دنیا در اختیار شما قرار میدهند کامل احساس میشود. به همین دلیل، در این پست سعی خواهیم کرد که با مفاهیم اصلی این حوزه آشنا شویم و همچنین با ابزارهای مانیتورینگ موجود در صنعت، و در ایران بیشتر آشنا شویم.
مانیتورینگ سیستمها معمولاً بهعنوان بخشی مهم و اصلی در هر سازمان ظاهر میشوند. این سیستمهای مانیتورینگ اغلب برای پیگیری منابع سیستم، مانند میزان استفاده و فرکانس CPU یا مقدار RAM و از این قبیل اطلاعات استفاده میشوند. آنها همچنین برای نمایش مواردی مانند فضای خالی در یک یا چند دیسک، دمای CPU و سایر اجزای مهم و اطلاعات شبکه از جمله آدرس IP سیستم و نرخهای فعلی آپلود و دانلود استفاده میشوند. سایر مانیتورینگها نیز ممکن ممکن است شامل تاریخ و زمان، زمان به کارگیری سیستم، نام کاربری، باشد. به زبان دیگر این ابزارها تمام اطلاعاتی که برای یک سیستم ویا سازمان حیاتی باشد را استخراج میکند و سپس با استفاده از آن اطلاعات نسبت به نیازمندیهای سیستم، پاسخ میدهد.
سیستمهای مانیتورینگ مبتنی بر سخت افزار که اطلاعات مشابه را نظارت میکنند کمتر رایج هستند. معمولاً اینها یک یا چند درایو فیزیکی هستند که به سیستمهایی که میخواهیم مانیتور کنیم وصل میوند و فضایی را اشغال میکنند و یا مستقیماً با سخت افزار سیستم ارتباط برقرار میکنند ویا در بهترین حالت از طریق USB به یک سیستم جمع آوری دادههای نرم افزاری متصل میشوند. با هر دو روش جمعآوری دادهها، سیستم مانیتورینگ اطلاعات را روی یک صفحه LCD کوچک یا روی یک سری نمایشگرهای عددی کوچک آنالوگ یا LED نمایش میدهد. برخی از مانیتورهای سیستم مبتنی بر سختافزار نیز امکان کنترل مستقیم سرعت فن را فراهم میکنند و به کاربر این امکان را میدهند تا به سرعت خنکسازی سیستم را اعمال کند. هدف ما در این پست آشنایی با این دسته از سیستمهای مانیتورینگ مبتنی بر سخت افزار نیست.
از سال 1950 و با پیشرفت روز به روز صنعت نیاز به کنترل کنندههای پیشرفته بوجود آمد. معایب و مشکلات سیستمهای کنترلی آن زمان مانند نویز و خطایابی؛ بسیار دشوار و گاها زمان گیر شدن پیدا کردن نقص و رفع آن، بر این شد تا پای ” کنترل کنندههای منطقی ” در سال 1960 به صنعت باز شود. این سیستمها مشکل اول یعنی کاهش نویز و حجم تابلو های کنترل را برطرف نمودند اما هنوز مشکل خطایابی و رفع آن برطرف نشد به علاوه اینکه مشکل بازرسی از وضعیت لحظهای این سیستمها و برنامهریزی مجدد آنها نیز خودنمایی میکرد که در سال 1975 سیستمهای مانیتورینگ ابداع و در کنار سیستمهای کنترلی به کار برده شدند؛ به طوری که امروزه مانیتورینگ جایگاه ویژه و جدا نشدنی از طراحی سیستمهای کنترلی دارند. می توان اینطور گفت، مانیتورینگ در هرم اتوماسیون، در نوک قله قرار دارد و این امر به اهمیت سیستمهای مانیتورینگ اشاره میکند. امروزه صنایع بزرگی چون پتروشیمی، تولید انرژی، صنایع شیمیایی، خودروسازی، غذایی و… بدون وجود مانیتورینگ لحظه به لحظه فرآیند قادر به ادامه کار نیستند.
در راهحلهای اولیه مانیتورینگ، این اغلب با ارسال یک پینگ به دستگاه و انتظار پاسخ انجام میشود. اگر پاسخی دریافت شود، کاربر میتواند مطمئن باشد که سرور یا روتر یا سوئیچ در حال کار کردن است و خاموش یا خراب نشده است. به زبان ساده، اطمینان حاصل کنید که سیستمهای IT در ابتدایی ترین سطح، در دسترس هستند. راهحلهای پیشرفتهتر مانیتورینگ بر سیستم امکان مشاهده دقیق وضعیت عملیاتی آن دستگاهها را فراهم میکند. به مثالتوجه کنید: "من می دانم که سرور من فعال است، ولی میخواهم مطمئن شوم که فضای هارد دیسک تمام نشده است." این چک سرویس نامیده میشود.
ابزارهای مانیتورینگ، برای ردیابی وضعیت برنامهها، شبکهها، زیرساختها، وب سایتها و موارد دیگر طراحی شده اند. بهترین ابزارهای نظارت باید به سرعت مشکلات موجود در منابع را شناسایی کرده و با پاسخ مناسب برای حل مسائل حیاتی هشدار دهند. توجه داشته باشید که مسائل زیرساخت اجتناب ناپذیر است و تیمها باید بهترین ابزارهای نظارت را برای کاهش تأثیر یک حادثه در اختیار داشته باشند.
ابزارهای مانیتورینگ عملکرد بالا را برای نرم افزار شما تضمین میکنند. نظارت مداوم بر سیستم به شما امکان میدهد عملکرد و در دسترس بودن برنامههای نرم افزاری را مدیریت کنید. این منجر به زمان پاسخگویی سریع، بهبود فرآیندهای محاسباتی و رضایت مشتریان میشود. به خصوص تجربه کاربر نهایی یکی از اهداف اصلی هنگام برخورد با تعاملات واقعی کاربر و معاملات تجاری است. ابزارهای نظارتی تلاش برای تفسیر چنین رویدادهای وابسته را میکنند و شما را به مؤلفهای هدایت میکنند که ممکن است باعث مشکلات عملکرد یا مشکلاتی برای مشتریان شما شود. تعمیر، تسریع و بهینه سازی سرورها و برنامههای نرم افزاری شما هرگز به این آسانی نبوده است.
نظارت یک فعالیت فوق العاده گسترده و پیچیده است. این یک مفهوم بسته نیست، اما همانطور که بالاتر به آن اشاره کردیم سیستم مانیتورینگ به نیازهای هر شرکت بستگی دارد. با این حال ، سیستم های نظارتی اغلب دارای تعدادی ویژگی مشترک هستند، از جمله موارد زیر:
بدون معیار، چگونه بخش فناوری اطلاعات شما میداند که چگونه عمل کرده است ویا در حال بهبود است؟ زمانی که ندانید زیرساخت فعلی شما چه کاری انجام میدهد یا اینکه بخش شما چقدر خوب عمل میکند، رسیدن به استراتژی مطلوب بسیار دشوار خواهد بود. به همین دلیل، این ضروری است که سازمانها استراتژیهای ارائه خدمات و پشتیبانی را بر اساس حدس و گمان نزند و این استراتژیها را با حقایق مبتنی بر دادهها تغییر دهند. از طرفی دقت داشته باشید که یک tradeoff کنید در این قضیه چون میتواند خطرناک هم باشد، چون شاید دادهها غلط باشند. اما در کل وجود این ابزارهای مانیتورینگ میتواند منجر به از بین بردن فشار بیش از حد بر کارکنان، کاهش بودجه و آسیب دیدن اعتبار شود.
ابزارهای مانیتورینگ این قابلیت را دارند که نه تنها مشکلات را شناسایی کنند، بلکه میتوانند به طور خودکار مشکلات را نیز برطرف کنند. با استفاده از قوانین و تکنیکهای یادگیری ماشینی، ابزارهای مانیتورینگ میتوانند رفتار برنامههای کاربردی شما را بفهمند/بیاموزند و هنگامی که چیزی درست کار نکند، به جای اینکه فقط هشدار دهند، یک اصلاح را اعمال کنند. آنها به طور خودکار مشکل را حل میکنند و حتی میتوانند از مسائل قبلی درس بگیرند، به این معنی که با گذشت زمان، حل آنها سریعتر و هوشمندانه تر شده است.
بنابراین، ابزارهای مانیتورینگ، تلاش دستی مربوط به نظارت و پشتیبانی از زیرساخت فناوری اطلاعات را کاهش خواهند داد. و حذف این وظایف کوچکتر، به این معنی است که تیم زمان بیشتری برای تمرکز بر مسائل مهم دارد.
هنگامی که ابزارهای مانیتورینگ شما به گونهای تنظیم شدهاند که قبل از اینکه بر پایگاه مشتری شما تأثیر بگذارند، شما را در مورد مسائل آگاه میکنند، میتوانید قبل از اینکه برای شما - یا مشتریانتان - مشکل ایجاد کنند، آنها را برطرف کنید. شناسایی و رفع مشکلات قبل از برخورد فواید متعددی دارد: سازمان شما در زمان و هزینه صرفه جویی میکند، از خرابی سیستم جلوگیری میکند، و از ایجاد مشتریان ناراضی جلوگیری میکند. همه اینها از اعتبار بخش IT شما محافظت میکند و باعث افزایش اعتبار می شود.
ابزارهای مانیتورینگ در نهایت به شما این قدرت را میدهند که تیم خود را از کارهای ساده خلاص کنید، در زمان و هزینه در فعالیتهای عملیاتی صرفهجویی کنید، خرابی سیستم را کاهش دهید و حتی از آن جلوگیری کنید، و به استراتژی، بودجه و برنامههای بهبود مستمر کمک کنید. بدون دسترسی به ابزارهای مانیتورینگ، پشتیبانی کاملاً فعال متأسفانه یک رویا برای سازمان شما باقی خواهد ماند.
ابزار Prometheus یک جعبه ابزار مانیتورینگ و هشدار سیستم منبع باز است که در ابتدا در SoundCloud ساخته شد. از زمان شروع آن در سال 2012، بسیاری از شرکتها و سازمانها Prometheus را پذیرفتهاند و این پروژه دارای یک جامعه توسعه دهندگان و کاربران بسیار فعال دارد. اکنون یک پروژه منبع باز مستقل است و مستقل از هر شرکتی نگهداری میشود.
ابزار Prometheus معیارهای خود را به عنوان دادههای سری زمانی جمع آوری و ذخیره میکند، یعنی اطلاعات متریک با مهر زمانی که در آن ثبت شده است، در کنار جفتهای اختیاری کلید-مقدار به نام برچسبها ذخیره میشود.
شکل زیر معماری Prometheus و برخی از اجزای اکوسیستم آن را نشان میدهد:
این ابزار برای ضبط هر سری زمانی، مخصوصا برای حالت عددی به خوبی کاربرد دارد. هم با نظارت ماشین محور و هم برای نظارت بر معماریهای سرویس محور بسیار پویا، مناسب است. در دنیای ریزسرویسها، پشتیبانی آن از جمعآوری دادههای چند بعدی و انجام پرسوجو، یک نقطه قوت خاص است.
همپچنین این ابزار، با قابلیت اطمینان بالایی طراحی شده است، تا به شما امکان تشخیص سریع مشکلات را بدهد. هر سرور Prometheus مستقل است و به فضای ذخیره سازی شبکه یا سایر خدمات راه دور وابسته نیست. وقتی سایر بخشهای زیرساخت شما خراب است، میتوانید به به این ابزار تکیه کنید و برای استفاده از آن نیازی به راهاندازی زیرساختهای گسترده نیز ندارید.
این ابزار برای پارامتر کیفی قابلیت اطمینان ارزش قائل است. شما همیشه میتوانید آمارهای موجود در مورد سیستم خود را حتی در شرایط خرابی مشاهده کنید. اما اگر به دقت 100٪ نیاز دارید، مانند صورتحساب هر درخواست، Prometheus انتخاب خوبی نیست زیرا دادههای جمع آوری شده احتمالاً به اندازه کافی دقیق و کامل نیستند. در چنین حالتی بهتر است از سیستم دیگری برای جمع آوری و تجزیه و تحلیل دادهها برای صورتحساب استفاده کنید و از Prometheus برای بقیه نظارت خود استفاده کنید.
اینترنت اشیاء بستری است که میتوانید با استفاده از اینترنت بر عوامل و وسایل پیرامون خود نظارت و کنترل داشته باشید. این امر باعث افزایش بازدهی و عملکرد بهتر ماشین آلات، سیستم ها و خدمات رسانی می شود. سامانه مانیتورینگ سپهر این امکان را فراهم ساخته است که با استفاده از اینترنت اشیاء به مانیتورینگ محیط های اتاق سرور، کارخانجات، تولیدی ها، کشاورزی و … بپردازد.
سامانه مانیتورینگ سپهر انفورماتیک درخشان با استفاده از اینترنت اشیاء شکل گرفته است و قابلیت نصب بر روی انواع سرورهای داخلی و ابری را دارد. زمانی که قصد داریم یک اتاق سرور ایجاد کنیم باید یک سری تجهیزات نصب کنیم. البته با توجه به نیاز و نوع فعالیت هر مجموعه نوع تجهیز کردن این اتاق متفاوت می باشد.
سرویس نت نگار همانند سرویس های مانیتورینگ، ۲۴ ساعت شبانه روز و ۷ روز هفته سرویس های آنلاین یا API Backend کسب و کار شما را مانیتور می کند و در صورتیکه شرایط خطا یا Downtime و یا کندی سرعت پاسخگویی (Latency) شما اولین نفری هستید که متوجه می شوید. در واقع سرویس های مانیتورینگ به شما کمک می کند شرایط اختلال را قبل از کاربرانتان متوجه شوید. مهم ترین ویژگی نت نگار شاید همین باشد که به شما کمک می کند در صورت اختلال متوجه شوید دلیل آن از کدام بخش است که این موضوع امکان حل مشکل را آسانتر خواهد کرد.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است
مراجع: