مقدمه ای بر Log Management و معرفی ابزار های محبوب در این حوزه
در این پست قصد داریم با مفهوم Log Management یا مدیریت لاگ (گزارش) آشنا شویم. مفهومی که این روزها بیشتر شنیده میشود و کاربردهای متفاوتی برایش تعریف میشود.
مدیریت لاگ به چه معناست؟
مدیریت لاگ، عبارت است از جمعآوری، ذخیره، پردازش، ترکیب و تحلیل دادهها از برنامههای کاربردی متفاوت به منظور بهینهسازی عملکرد سیستم، شناسایی مشکلات فنی، مدیریت بهتر منابع، تقویت امنیت و بهبود انطباق.
لاگ یک فایل تولید شده توسط کامپیوتر است که فعالیت های درون سیستم عامل یا برنامه های نرم افزاری را ثبت می کند. فایل لاگ، به طور خودکار هر گونه اطلاعات طراحی شده توسط مدیران سیستم از جمله پیام ها، گزارش های خطا، درخواست های فایل و انتقال فایل را مستند سازی می کند، این فعالیت همچنین دارای زمان ثبت است که به متخصصان فناوری اطلاعات و توسعه دهندگان کمک می کند تا بفهمند چه اتفاقی و در چه زمانی رخ داده است.
فعالیت هایی که در مدیریت لاگ انجام می شود را می توان به دسته های زیر تقسیم بندی کرد:
جمع آوری
جمع آوری اطلاعات از سیستم عامل، برنامه ها، سرورها، کاربران، نقاط پایانی یا هر منبع مرتبط دیگری در سازمان.
مانیتورینگ
ردیابی رویدادها و فعالیت ها و همچنین زمان وقوع آنها.
تحلیل
مجموعه لاگ ها را از سرور گزارش مرور میکند تا به طور فعال باگها، تهدیدات امنیتی یا سایر مسائل را شناسایی کند.
نگهداری
تعیین میکند دادههای گزارش چه مدت باید در فایل گزارش نگهداری شوند.
indexing و جستجو
به سازمان کمک میکند تا دادهها را در همه لاگ ها، فیلتر، مرتبسازی، تجزیه و تحلیل و یا جستجو کند.
گزارش
گزارشدهی از گزارش حسابرسی (Audit Log) را بهعنوان ارزیابی عملیاتی، تخصیص منابع، امنیت یا انطباق با مقررات، خودکار میکند.
سیستم های مدیریت لاگ
سیستم مدیریت گزارش (LMS)، یک راه حل نرم افزاری است که لاگ ها و گزارش رویدادها را از منابع مختلف در یک مکان متمرکز جمع آوری، مرتب سازی و ذخیره می کند. سیستمهای نرمافزاری مدیریت گزارش، به تیمهای فناوری اطلاعات، DevOps و متخصصان SecOps اجازه میدهند تا یک نقطه واحد را ایجاد کنند تا از آنجا به تمام دادههای مربوط به شبکه و برنامه، دسترسی داشته باشند. به طور معمول، این فایل گزارش به طور کامل فهرست شده و قابل جستجو است، به این معنی که تیم فناوری اطلاعات می تواند به راحتی به داده هایی که برای تصمیم گیری در مورد سلامت شبکه، تخصیص منابع یا امنیت نیاز دارد، دسترسی داشته باشد.
ابزارهای مدیریت گزارش، برای کمک به سازمان در مدیریت حجم بالای داده های گزارش تولید شده در سراسر سازمان، استفاده می شوند. این ابزارها به تعیین موارد زیر کمک می کنند:
- چه داده ها و اطلاعاتی باید ثبت شوند.
- قالبی که اطلاعات، باید در آن ثبت شود.
- دوره های زمانی که داده های گزارش باید ذخیره شوند.
- چگونه داده ها زمانی که دیگر مورد نیاز نیستند باید دور ریخته شده و یا از بین بروند.
اهمیت مدیریت لاگ
یک سیستم و استراتژی مدیریت گزارش کارآمد، بینش بلادرنگ در مورد سلامت و عملیات سیستم را امکان پذیر می کند.
یک راه حل موثر مدیریت لاگ، به سازمان ها، موارد زیر را ارائه می دهد:
- ذخیره سازی یکپارچه داده از طریق تجمیع گزارش متمرکز
- بهبود امنیت از طریق کاهش سطح حمله، نظارت به صورت Real-Time و بهبود زمان تشخیص و پاسخ
- بهبود قابلیت مشاهده در سراسر شرکت از طریق یک گزارش رویداد مشترک
- افزایش تجربه مشتری از طریق تجزیه و تحلیل داده های گزارش و مدل سازی پیش بینی
- قابلیتهای عیبیابی سریعتر و دقیقتر از طریق تجزیه و تحلیل شبکه پیشرفته
چالش های رایج مدیریت لاگ
انفجار دادهها که ناشی از تکثیر دستگاههای متصل و همچنین حرکت به سمت ابر است، پیچیدگی مدیریت گزارش را برای بسیاری از سازمانها افزایش داده است.
یک راه حل مدرن و موثر مدیریت لاگ، باید چالش های اصلی زیر را برطرف کند:
استاندارد سازی
از آنجایی که سیستم مدیریت گزارش، دادهها را از برنامهها، سیستمها، ابزارها و میزبانهای مختلف استخراج میکند، همه دادهها باید در یک سیستم واحد که از همان قالب پیروی میکند، ادغام شوند. این فایل گزارش، به متخصصان فناوری اطلاعات و امنیت اطلاعات کمک میکند تا بهطور مؤثر، دادههای گزارش را تجزیه و تحلیل کنند و نما هایی را تولید کنند که برای انجام خدمات حیاتی تجاری استفاده میشوند.
حجم زیاد
داده ها با سرعت باورنکردنی تولید می شوند. برای بسیاری از سازمانها، حجم دادههایی که بهطور مداوم توسط برنامهها و سیستمها تولید میشوند، نیازمند تلاش زیادی برای جمعآوری، قالببندی، تجزیه و تحلیل و ذخیرهسازی مؤثر است. یک سیستم مدیریت گزارش باید برای مدیریت حجم بسیار زیاد داده ها و ارائه نمای به موقع، طراحی شود.
تاخیر
indexing در فایل لاگ، می تواند یک فعالیت محاسباتی بسیار پرهزینه باشد که باعث تاخیر بین داده هایی که وارد سیستم می شوند شده و سپس در نتایج جستجو و نمایش (Visualization)، گنجانده می شود. تأخیر، بسته به نحوه مدیریت لاگ و اینکه آیا سیستم مدیریت گزارش، داده ها را ایندکس گذاری می کند یا نه، افزایش می یابد.
بار بالا
مدیریت لاگ، هنگامی که به صورت دستی انجام می شود، فوق العاده وقت گیر و پرهزینه است. ابزارهای مدیریت لاگ دیجیتال، به خودکارسازی برخی از این فعالیتها و کاهش فشار بر روی متخصصان فناوری اطلاعات کمک میکنند.
ابزار
در این بخش، میخواهیم دو راهحل محبوب متن باز را که برای سادهسازی فرآیند مدیریت گزارشها استفاده می شوند معرفی و با هم مقایسه کنیم: Graylog در مقابل ELK (Elasticsearch + Logstash + Kibana).
ابزار ELK

ELK ترکیبی از سه سرویس جداگانه است که همه آن ها متن باز هستند و توسط همان تیم توسعه یافته اند.
- Elasticsearch یک موتور جستجوی بسیار قدرتمند و مقیاس پذیر است که می تواند حجم زیادی از داده را ذخیره کند و به عنوان یک خوشه مورد استفاده قرار دهد.
- Logstash ابزاری برای واکشی (Fetch) داده ها از/به یک مکان خاص است. دارای تنوع گسترده ای از پلاگین ها و یک جامعه کاربری بزرگ است.
- Kibana یک رابط کاربری گرافیکی است که به شما امکان جستجو، تجزیه و تحلیل و مصورسازی مقادیر زیادی از داده های پیچیده از پایگاه داده Elasticsearch را می دهد. فرآیند استقرار، بیش از 5 دقیقه طول نمی کشد.
در بیشتر موارد، پشته ELK از Filebeat استفاده می کند. هدف این ابزار، تحویل لاگ ها به یک سرور خاص است. پس از اینک لاگ ها با Filebeat تحویل داده شدند و با Logstash پردازش شدند، در کلاستر ElasticSearch قرار می گیرند. از آنجا، لاگ ها برای مصورسازی توسط کیبانا، گرفته می شوند. تمامی مراحل ذکر شده در طرح زیر توضیح داده شده است.

مزایای Logstash
دلیل محبوبیت Logstash این است که می توان آن را به راحتی با سایر محصولات الاستیک ادغام کرد. علاوه بر این، یک دسته کامل از پلاگین ها وجود دارد که این ابزار را بسیار انعطاف پذیر می کند. همچنین با اسناد جامعی همراه است که همه چیز لازم را برای پیکربندی و استفاده از Logstash در تقریباً هر سناریویی دارد. مراحل نصب آن نیز بسیار ساده است.
معایب Logstash
نقطه ضعف Logstash همیشه عملکرد و مصرف منابع بوده است. اگرچه عملکرد آن در حال حاضر بسیار بهتر از چند سال پیش است، اما در مقایسه با راه حل های دیگر هنوز بسیار کند است. سرورهای Logstash در مقایسه با سرورهای Elasticsearch، برای استقرار ترافیک بالا، مشکل دارند. و آخرین اما نه کماهمیت تزین مزیت Logstash، این است که فاقد رابط کاربری گرافیکی در نسخه خارج از جعبه است، بنابراین باید با تغییر فایلهای پیکربندی، آن را به صورت دستی پیکربندی کنید.
سرویس Kibana
صفحه زیر مکانی است که می توانید نوع نمایش داده را انتخاب کنید.

پس از انتخاب نوع، از شما پرسیده می شود که از کدام فهرست می خواهید اطلاعات دریافت کنید. انتخاب شاخص بر اساس شاخصهایی است که در حال حاضر در خوشه ElasticSearch شما موجود است.
در اسکرین شات زیر، می بینید که بسته به نوع داده ای که وجود دارد، باید فیلدهای داده یا مقدار را اضافه کنید. وقتی این کار تمام شد، کیبانا آمار را در قالب نمودار انتخاب شده خروجی و تجسم می کند.

علاوه بر ذخیره داده ها و تجسم آنها، ما از کیبانا برای ارائه اطلاعات دقیق و آماری در مورد نحوه عملکرد برنامه های کاربردی مشتریان در محیط تولید، به آن ها، استفاده می کنیم.
به طور کلی، ELK یک ترکیب همه کاره است. پشته را می توان به عنوان یک برنامه کاربردی مستقل استفاده کرد یا با برنامه های موجود برای دریافت به روزترین داده ها یکپارچه شد.
ابزار Graylog
Graylog یک ابزار قدرتمند برای مدیریت گزارشها است که گزینههای زیادی برای تجزیه و تحلیل گزارشهای ورودی از سرورهای مختلف در اختیار شما قرار میدهد. روش کار Graylog تقریباً شبیه به ELK است. علاوه بر سرور Graylog که از برنامه کاربردی و سرور رابط وب تشکیل شده است، برای اینکه بتوانید کل پشته را به طور کامل قابل اجرا کنید، باید MongoDB و Elasticsearch را نیز داشته باشید.
برای استفاده در تولید، توصیه می کنیم تمام اجزا را روی سرورهای مختلف نصب کنید. این باعث بهبود ثبات و عملکرد خواهد شد.
بنابراین موارد زیر، مواردی هستند که برای کار با Graylog به آن ها نیاز دارید:
- Elasticsearch
- MongoDB
- Graylog main server
- Graylog web interface
فرآیند پیکربندی شامل 2 مرحله است:
- ایجاد یک پیکربندی برچسب گذاری شده Graylog برای استفاده توسط مشتریان در سمت سرور.
- ارسال پیکربندی به مشتریان
به عنوان مثال، هنگامی که یک مشتری را سِت می کنید، فایل پیکربندی آن را با یک برچسب "production" علامت گذاری می کنید. پس از آن، تنظیمات دقیقی را روی سرور برای مشتریان، با تگ "production" ایجاد می کنید. اکنون به محض اعمال آن، همه تغییرات به طور خودکار از سرور دریافت می شود. هیچ تغییر دیگری لازم نیست در سمت مشتری انجام شود.

مزایای Graylog
رابط کاربری گرافیکی دوستانه ای دارد و از طیف گسترده ای از فرمت های داده پشتیبانی می کند. گزینه های خوبی برای کنترل احراز هویت و تعیین مجوزهای کاربر، در اختیار شما قرار می دهد. همچنین می توانید آن را برای دریافت هشدار، از طریق ایمیل پیکربندی کنید. Graylog از Good-ol REST API استفاده می کند.
معایب Graylog
Graylog نمی تواند از فایل های syslog بخواند، بنابراین شما باید پیام های خود را مستقیماً به Graylog ارسال کنید. از نظر مدیریت، داشبورد، به اندازه کافی دوستانه نیست. عملکرد گزارش، بسیار ضعیف است.
Graylog یا ELK؟ کدام بهتر است؟
هر دو ابزار از نظر مجموعه ای اساسی از ویژگی ها، بسیار مشابه هستند. با این حال، به عنوان طرفداران Elasticsearch، ما همچنان Graylog را به ELK ترجیح می دهیم، زیرا دارای رابط کاربری گرافیکی دوستانه است و به شما امکان می دهد مجوزها (permissions) را مدیریت کنید. همچنین کیبانا هیچ قابلیتی برای ایجاد کاربر ندارد. با این حال، این مشکل با تنظیم احراز هویت اولیه HTTP در Nginx حل شده است که یک سرور در حال اجرا بر روی یک پورت تصادفی است که درخواست ها را به رابط وب Kibana ارسال می کند.
شرکت های ایرانی ارائه دهنده خدمات مدیریت لاگ
شرکت داده کاوان تصمیم یار
شرکت داده کاوان تصمیم یار (کوالاتک) در زمینه ارائه، مشاوره و آموزش خدمات نرم افزاری به سازمانهای دولتی و خصوصی فعالیت مینماید. شرکت داده کاوان تصمیم یار خدمات مختلف نرم افزاری ارائه میدهد که یکی از آنها راه اندازی مدیریت لاگ است.
برای دریافت اطلاعات بیشتر درمورد سرویس مدیریت لاگ کوالاتک، به لینک زیر مراجعه نمایید:
https://qualatech.ir/log-management/

شرکت دانش بنیان پلتکو
پلتکو یک شرکت دانش بنیان است که در زمینه های مختلفی از جمله معماری و یکپارچه سازی، نظارت و کنترل، مستندسازی و گزارش دهی فعالیت می کند. یکی از محصولات این شرکت ابزار مدیریت لاگ است.
مزایای نرم افزار مدیریت لاگ پلتکو
- ذخیره سازی یکپارچه
- عیب یابی بهتر
- سیستم نظارت و هشدار
- تجزیه فایل لاگ
- بهبود امنیت
- آنالیز و تحلیل داده ها

برای دریافت اطلاعات بیشتر درمورد نرم افزار مدیریت لاگ پلتکو، به لینک زیر مراجعه نمایید:
https://platco.ir/services/monitoring/log-manager/
«این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است»
مراجع
https://www.humio.com/glossary/log-management
https://expertise.jetruby.com/log-management-graylog-vs-elk-d6e8f0492323
https://www.elastic.co/what-is/elk-stack
https://www.graylog.org/
https://qualatech.ir/log-management/
https://platco.ir/services/monitoring/log-manager/
مطلبی دیگر از این نویسنده
تحلیل ایستای کد (Static Code Analysis)
مطلبی دیگر در همین موضوع
مقدمه ای بر الگوریتم تشخیص چهره Viola Jones - بخش دوم
مطلبی دیگر در همین موضوع
بکاپ گیری از Etcd و قرار دادن بر روی فضای ابری ابر آروان