از زمانیکه بشر توانایی نوشتن را آموخت، بسیاری از پیشرفتهای انسانها به لطف ثبت و استفاده از اطلاعات بوده است. در اعصار گذشته، یادداشتهایی در مورد تولید و جمعآوری منابع، تعداد دقیق سربازان در جنگها و سایر افراد مهم تهیه میشد و بهصورت کاغذی، جمعآوری و ذخیره میگردید. به دلیل این روش مستندسازی، اطلاعات مهم نیز مستعد جابهجایی، گم شدن و یا حتی سوء استفاده بود.
امروزه، عملاً هر اقدام مهمی، بهویژه آنهایی که بهصورت آنلاین و روی کامپیوترها، تلفنهای همراه و تبلتهای ما انجام میشوند، در محل خاصی ثبت میگردند و بنابراین استفاده از یک راهحل مدیریت نگارۀ مناسب، اکنون بیش از هر زمان دیگری حیاتی است.
اگر تابهحال با برنامهنویسی سروکار داشتهاید یا اینکه برنامهنویسی خبره هستید، حتماً مبحث رفع ایرادات و در اصطلاح آزمون نرمافزار به گوشتان خورده است. پیدا کردن ریشۀ مشکلات خطاها در یک برنامۀ پیچیده، بسیار دشوار و زمانبَر است و لذا روشهای گوناگونی برای آن پیشنهاد شدهاند. یکی از این روشها، استفاده از نگارههای نرمافزار (Software Logs) است.
البته نگارهها فقط برای کشف خطاها استفاده نمیشود. متخصصین رشتههای فناوری اطلاعات از نگارهها برای تشخیص و جلوگیری از حملات سایبری به سیستمها استفاده نموده و معماران سازمانی هم از نگارهها برای تشخیص و بهبود فرایندهای سازمانی استفاده میکنند. مثالها و کاربردهای بسیار دیگری از این دست نیز میتوان نام برد.
در این پست میخواهیم با روش مدیریت نگارهها (Log Management)، ابزارها و فناوریهای متنباز مربوط به آن و معرفی برخی شرکتهای ایرانی بپردازیم که در این حوزه فعالیت دارند.
پرداختن به نگارهها و مدیریت آنها کار سادهای نیست، اما جنبۀ مهمی از هر سیستم نرمافزاری است. هنگامیکه تیم توسعه با یک مشکل دشوار روبرو میشود، استفاده از ابزار مدیریت نگارهها بسیار سادهتر از آن است که بخواهد حلقههای بیپایان فایلهای متنی که در سراسر محیط سیستم پخش شدهاند را بازبینی کند و از آن اطلاعات مورد نظرشان را استخراج نماید.
دیگر دوران دردناک مدیریت نگارهها با استفاده از گزارشات متنی گذشته است. اگرچه دادههای متنی هنوز در موقعیتهای خاص مفید هستند، ولی زمانیکه بخواهیم تجزیه و تحلیلی گسترده برای جمعآوری دادههای زیرساختی انجام دهیم که نهایتاً منجر به بهبود کیفیت کد میشود، سرمایهگذاری در ابزارها و سیستمهای مدیریت نگاره که قابل اعتماد باشند، میتواند فرایند کسبوکار را تقویت نماید.
اما قبل از اینکه بیشتر وارد این مقوله شویم، باید بدانیم که نگاره چیست؟ نگاره (Log) در واقع یک فایل کامپیوتری است که فعالیتهای درون سیستم عامل یا نرمافزارها در آن ثبت شدهاند. هر نگاره بهطور خودکار شامل اطلاعاتی است که توسط سازندۀ سیستم تعیین شدهاند؛ از جمله: پیامها، گزارشات خطا، درخواست انتقال فایلها و غیره. این فعالیتها همگی دارای برچسب زمانی هستند که به متخصص کمک میکنند تا زمان دقیق وقوع را متوجه شود و در نتیجه بتواند از آن بهرهبرداری کند.
اگر بخواهیم مدیریت نگارهها (Log Management) را دقیقاً تعریف کنیم، میتوان از مستند شمارۀ SP800-29 متعلق به دپارتمان استاندارد و تکنولوژی از وزارتخانۀ اقتصاد آمریکا کمک گرفت که در آن مدیریت نگارهها بدینصورت تعریف شده است: «به فرایند تولید، انتقال، ذخیره، تجزیه و تحلیل و از بین بردن دادههای امنیت رایانه، مدیریت نگارهها گفته میشود». اما در یک دید کلیتر، مدیریت نگارهها عبارت است از جمعآوری، ذخیره، پردازش، ترکیب و تجزیه و تحلیل دادهها از نرمافزارهای متفاوت بهمنظور بهینهسازی عملکرد سیستم، شناسایی مسائل فنی، مدیریت بهتر منابع، تقویت امنیت و بهبود انطباق با سایر سیستمها.
ابزارهای مدیریت نگارهها برای رسیدگی به تمام نگارههای تولید شده توسط برنامهها، سیستمها، شبکهها، نرمافزارها یا کاربران و برخورد با آنها به هر نحوی که به بهترین وجه با نیازهای یک سازمان سازگار باشد، استفاده میشود. مدیریت نگارهها، یک موضوع محبوب نه تنها در بین مدیران سیستم، بلکه در بین توسعهدهندگان است؛ زیرا استفاده از نگارهها برای اهداف امنیتی، بهبود عملکرد یا عیبیابی در بسیاری از بخشهای فناوری اطلاعات و نقشهای شغلی گسترده است.
اما ذکر این نکته مهم است که همۀ ابزارهای مدیریت نگارهها شبیه به هم نیستند و هر سیستم باید براساس نیازسنجیهای سازمان و کسبوکار استفاده شود. بهصورت کلی دو نوع سیستم مدیریت نگاره وجود دارد:
و در نهایت به این سوال میرسیم که چرا باید از ابزارهای مدیریت نگارهها استفاده کرد؟ پاسخ به این سوال ساده است؛ چون بدون آن، وقتی نوبت به بسیاری از جنبههای فناوری اطلاعات میرسد، در تاریکی دست و پا میزنیم. بدون این سیستمها، اگر خطایی رخ بدهد میفهمیم که چیزی اشتباه است، اما نمیتوانیم دقیقاً بفهمیم چه چیزی اشتباه است، یا حداقل نمیتوانیم بدون صرف زمان زیادی برای جستجوی مشکل، این کار را انجام دهیم. این زمان تلف شده را همیشه میتوان به روشهای بهتر، سازندهتر و استراتژیکتر سپری کرد. خوشبختانه ابزارهای تخصصی مدیریت نگاره به ما کمک میکنند تا آنها را بهتر و با کارایی بیشتر درک و مدیریت کنیم.
امروزه ابزارهای تجزیه و تحلیل متن باز مختلفی برای مدیریت نگارهها وجود دارند که استفاده از آنها بسیار آسان است. معمولاً جامعۀ نرمافزاری رایگان و متنباز، طرحهایی را ارائه میدهد که با انواع پلتفرمها و تقریباً هر سیستم عاملی کار میکنند. در این پست، به پنج ابزار مختلف در این زمینه اشاره خواهد شد.
Graylog در سال 2011 در آلمان شروع به کار کرد و اکنون بهعنوان یک ابزار متنباز یا تجاری ارائه میشود. این سیستم بهعنوان یک سیستم مدیریت نگارۀ متمرکز طراحی شده است که جریانهای داده را از سرورها یا نقاط پایانی مختلف دریافت کرده و به کاربر امکان میدهد تا اطلاعات را به سرعت مرور یا تجزیه و تحلیل کند. به دلیل سهولت در مقیاسپذیری، این ابزار شهرت فراوانی در بین مدیران کسب نموده است.
مدیران فناوری اطلاعات رابط کاربری Graylog را آسان و عملکرد آن را قوی میدانند. Graylog براساس مفهوم داشبورد ساخته شده است، که به کاربر امکان میدهد معیارها یا منابع داده را انتخاب کند که ارزشمندتر هستند و به سرعت تِرندها را در طول زمان مشاهده کند.
پیشنهاد میشود برای کسب اطلاعات بیشتر راجع به Graylog به آدرس وبسایت آن مراجعه نمایید.
Elastic Stack، که اغلب ELK Stack نامیده میشود، یکی از محبوبترین ابزارهای متنباز در میان سازمانهایی است که باید مجموعههای بزرگی از دادهها را غربال کنند و بتوانند نگارههای سیستم خود را درک نمایند. این ابزار در واقع از سه محصول جداگانه تشکیل شده است: Elasticsearch، Kibana و Logstash.
Elasticsearch برای کمک به کاربران برای یافتن موارد منطبق در مجموعۀ دادهها با استفاده از طیف گستردهای از زبانها و انواع کوئریها طراحی شده است. سرعت بالا، مزیت شمارۀ یک این ابزار است. Kibana در واقع یک ابزار تجسمی است که همراه با Elasticsearch اجرا میشود تا به کاربران امکان تجزیه و تحلیل دادههای خود و ایجاد گزارشهای قدرتمند را بدهد. در نهایت هم آخرین قطعۀ این ابزار، Logstash است که بهعنوان یک خط لوله صرفاً سمت سرور در پایگاه داده Elasticsearch عمل میکند. کاربر میتواند Logstash را با انواع زبانهای برنامهنویسی و API ادغام کند تا اطلاعات وبسایتها و برنامههای تلفن همراه را مستقیماً به موتور جستجوی قدرتمند Elastic Stalk وارد نماید.
پیشنهاد میشود برای کسب اطلاعات بیشتر راجع به ELK به آدرس وبسایت آن مراجعه نمایید.
LOGalyze یک سازمان مستقر در مجارستان است که ابزارهای متنباز را برای مدیران سیستم و کارشناسان امنیتی ایجاد میکند تا به آنها کمک کند تا نگارههای سرور را مدیریت کنند و آنها را به نقاط دادۀ مفید تبدیل نمایند. این ابزار بهصورت دانلود رایگان برای استفاده شخصی یا تجاری در دسترس است. این ابزار بدینمنظور طراحی شده است که بهعنوان یک خط لولۀ عظیم کار کند که در آن چندین سرور، برنامهها و دستگاههای شبکه میتوانند اطلاعات را با استفاده از روش پروتکل دسترسی به اشیاء ساده (SOAP) از آن تغذیه نمایند. این ابزار یک رابط کاربری فراهم میکند که در آن مدیران میتوانند از آن جهت نظارت بر مجموعۀ دادهها و تجزیه و تحلیل آنها استفاده کنند. LOGalyze برای تجزیه و تحلیل نگارههای سرور و برنامهها ایدهآل است و آنها را در قالبهای گزارش مختلف مانند PDF، CSV و HTML ارائه میکند.
پیشنهاد میشود برای کسب اطلاعات بیشتر راجع به LOGalyze به آدرس وبسایت آن مراجعه نمایید.
Fluentd یک نرمافزار کِراسپلتفرم و ابزار نظارت بر نگارههای متنباز است که گزارشات و جمعآوری دادهها را از چندین منبع داده یکپارچه میکند. این نرمافزار مجموعههای دادههای ساختیافته و نیمه ساختیافته را پردازش نموده و نگارههای برنامهها، نگارههای رویدادها و جریانهای کلیک را تجزیه و تحلیل میکند و هدفش این است که لایهای یکپارچه بین ورودیها و خروجیهای نگارهها با انواع مختلف باشد. Fluentd پس از نصب فضای کمی را اِشغال نموده و فشار زیادی بر منابع سیستمی تحمیل نمیکند. بنابراین لازم نیست که کاربر نگران تمام شدن حافظه یا استفادۀ بیش از حد از پردازنده باشد. علاوه بر این، دارای یک معماری پلاگین انعطافپذیر است که در آن کاربران میتوانند از بیش از 500 افزونه برای گسترش عملکرد آن بهره ببرند.
پیشنهاد میشود برای کسب اطلاعات بیشتر راجع به Fluentd به آدرس وبسایت آن مراجعه نمایید.
NXlog یک ابزار قدرتمند و همه کاره برای جمعآوری و متمرکز کردن نگارهها است که بهصورت چند پلتفرمی کار میکند که برای شناسایی موارد نقض Policy، شناسایی خطرات امنیتی و تجزیه و تحلیل مسائل در نگارههای سیستمی، برنامهها و سرور طراحی شده است. NXlog قابلیت جمعآوری نگارههای رویدادها را از نقاط پایانی متعدد در قالبهای مختلف از جمله Syslog و نگارههای رویدادهای ویندوز دارد. این ابزار میتواند طیف وسیعی از وظایف مربوط به نگارهها مانند چرخش، بازنویسی و فشردهسازی نگاره را انجام دهد. همچنین میتوان در این ابزار، ارسال هشدار تعریف نمود که کاربر را از وقایع مختلف، مطلع نماید. البته ذکر این نکته مهم است که NXlog در دو نسخه ارائه میشود: اولی نسخۀ Community است که مجانی و متنباز است و نسخۀ تجاری آن Enterprise نام دارد که مجانی نیست.
پیشنهاد میشود برای کسب اطلاعات بیشتر راجع به NXlog به آدرس وبسایت آن مراجعه نمایید.
در این قسمت دو شرکت ایرانی که خدمات مدیریت نگارهها را ارائه میدهند، معرفی شدهاند.
هستۀ این شرکت در سال 1356 در دانشگاه صنعتی اصفهان شکل گرفته و در سالهای بعد، تبدیل به یک شرکت خصوصی شده است. شرکت پیام پرداز در حال حاضر دارای 150 نفر پرسنل و یکی از با سابقهترین و قدیمیترین شرکتهای ایرانی در زمینۀ امنیت اطلاعات و ارتباطات فعالیت میکند. این شرکت دارای 27 محصول مجزا در زمینههای مختلف است که یکی از آنها سامانۀ مدیریت رویدادها و تحلیل ترافیك شبكۀ راوین (Ravin NTLM) نام دارد. اين سامانه، راهحل جامع مانیتورینگ كامل سرورها، تجهیزات زیرساخت شبكه، تجهیزات امنیتی، سرویسهای تحت شبكه، پایگاههای داده و کلیه سامانههای نرمافزاری سازمان است که وقایع سرویسها و شبکه را جمعآوری، ثبت، تحلیل و مدیریت مینماید و گزارشهای ارزشمند از روی آنها ارایه میکند.
برای کسب اطلاعات بیشتر راجع به سامانۀ راوین و آشنایی بیشتر با شرکت پیام پرداز، میتوانید به وبسایت آن مراجعه کنید.
این شرکت فعالیت خود را از سال 1385 آغاز نموده و کار اصلی آن تولید محصولات نرمافزاری برای کمک به سازمانها و کسبوکارها است. شرکت دانا پرداز با بیش از 15 سال سابقه، به بسیاری از سازمانهای بزرگ دولتی مثل بانکها، وزارتخانهها و نهادها و موسسات کشور در زمینۀ فناوری اطلاعات، خدمات ارائه میدهد. یکی از محصولات این شرکت، سامانۀ بینا است که توانایی مانیتورینگ همۀ اجزاء حیاتی شبکه و زیرساخت IT را فراهم مینماید. از جمله امکانات سامانۀ بینا میتوان به این موارد اشاره کرد: مانیتورینگ پایگاه داده، مانیتورینگ تجهیزات شبکه، مانیتورینگ سرورها، مانیتورینگ ایمیل سرور، مانیتورینگ وبسایتها، مانیتورینگ سرورهای مجازی، مانیتورینگ دما و رطوبت، مانیتورینگ پهنای باند، مانیتورینگ لینکهای شبکه، مانیتورینگ نگارههای تجهیزات شبکه، مانیتورینگ نگارههای سرورهای مایکروسافت و در نهایت مانیتورینگ اکتیو دایرکتوری.
برای کسب اطلاعات بیشتر راجع به سامانۀ بینا و آشنایی بیشتر با شرکت دانا پرداز، میتوانید به وبسایت آن مراجعه کنید.
مدیریت نگارهها در واقع راهکاری برای مدیریت اتفاقات و رخدادهایی است که در سیستم اتفاق میافتد. ابزارهای مدیریت نگارهها شامل تمام بخشهای فرایند مدیریت نگارهها میشود و به کاربر امکان میدهد تا نحوۀ اجرای آن را کنترل کند. از آنجایی که هیچ دو سیستمی کاملاً شبیه به هم نیستند، هر سیستم مدیریت نگاره به کاربران امکان میدهد تا روشی را که میخواهند برای ذخیرۀ دادههای نگارههای خود انتخاب نمایند. یکی از بزرگترین مزیتهای سیستمهای مدیریت نگاره، آن است که سطح پیشرفته تجزیه و تحلیل و تجسم است که به کاربران اجازه میدهد بینش بهتری نسبت به دادههای خود داشته باشند.
این مطلب بهعنوان پاسخ برای بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهید بهشتی نوشته شده است که امیدوارم از آن استفاده برده باشید.
[1] Altvater, A. (2021, March 30). Best Log Management Tools: Useful Tools for Log Management, Monitoring, Analytics, and More. Stackify.
[2] Bocetta Feed, S. (2020). 5 useful open source log analysis tools. Opensource.com.
[3] Kent, K., & Souppaya, M. P. (2006). Guide to computer security log management. Published. https://doi.org/10.6028/nist.sp.800-92
[4] R. (2019, June 9). سامانه تحلیل ترافیک، مانیتورینگ و گزارشگیری شبکه، مدیریت لاگ | شرکت مهندسی ارتباطی پیام پرداز. پیام پرداز.
[5] Torre, D. (2010, October 18). What is log management and how to choose the right tools. CSO Online.
[6] What is Log Management? Importance & Best Practices | Humio. (2021). Humio.
[7] Why is Log Management Important? | Graylog. (2021). Graylog.
[8] نرم افزار مانیتورینگ شبکه بینا. (2020). دانا پرداز.