در این پست قصد داریم با مفهوم Log Management یا مدیریت لاگ (گزارش) آشنا شویم. مفهومی که این روزها بیشتر شنیده میشود و کاربردهای متفاوتی برایش تعریف میشود.
مدیریت لاگ، عبارت است از جمعآوری، ذخیره، پردازش، ترکیب و تحلیل دادهها از برنامههای کاربردی متفاوت به منظور بهینهسازی عملکرد سیستم، شناسایی مشکلات فنی، مدیریت بهتر منابع، تقویت امنیت و بهبود انطباق.
لاگ یک فایل تولید شده توسط کامپیوتر است که فعالیت های درون سیستم عامل یا برنامه های نرم افزاری را ثبت می کند. فایل لاگ، به طور خودکار هر گونه اطلاعات طراحی شده توسط مدیران سیستم از جمله پیام ها، گزارش های خطا، درخواست های فایل و انتقال فایل را مستند سازی می کند، این فعالیت همچنین دارای زمان ثبت است که به متخصصان فناوری اطلاعات و توسعه دهندگان کمک می کند تا بفهمند چه اتفاقی و در چه زمانی رخ داده است.
فعالیت هایی که در مدیریت لاگ انجام می شود را می توان به دسته های زیر تقسیم بندی کرد:
جمع آوری
جمع آوری اطلاعات از سیستم عامل، برنامه ها، سرورها، کاربران، نقاط پایانی یا هر منبع مرتبط دیگری در سازمان.
مانیتورینگ
ردیابی رویدادها و فعالیت ها و همچنین زمان وقوع آنها.
تحلیل
مجموعه لاگ ها را از سرور گزارش مرور میکند تا به طور فعال باگها، تهدیدات امنیتی یا سایر مسائل را شناسایی کند.
نگهداری
تعیین میکند دادههای گزارش چه مدت باید در فایل گزارش نگهداری شوند.
indexing و جستجو
به سازمان کمک میکند تا دادهها را در همه لاگ ها، فیلتر، مرتبسازی، تجزیه و تحلیل و یا جستجو کند.
گزارش
گزارشدهی از گزارش حسابرسی (Audit Log) را بهعنوان ارزیابی عملیاتی، تخصیص منابع، امنیت یا انطباق با مقررات، خودکار میکند.
سیستم مدیریت گزارش (LMS)، یک راه حل نرم افزاری است که لاگ ها و گزارش رویدادها را از منابع مختلف در یک مکان متمرکز جمع آوری، مرتب سازی و ذخیره می کند. سیستمهای نرمافزاری مدیریت گزارش، به تیمهای فناوری اطلاعات، DevOps و متخصصان SecOps اجازه میدهند تا یک نقطه واحد را ایجاد کنند تا از آنجا به تمام دادههای مربوط به شبکه و برنامه، دسترسی داشته باشند. به طور معمول، این فایل گزارش به طور کامل فهرست شده و قابل جستجو است، به این معنی که تیم فناوری اطلاعات می تواند به راحتی به داده هایی که برای تصمیم گیری در مورد سلامت شبکه، تخصیص منابع یا امنیت نیاز دارد، دسترسی داشته باشد.
ابزارهای مدیریت گزارش، برای کمک به سازمان در مدیریت حجم بالای داده های گزارش تولید شده در سراسر سازمان، استفاده می شوند. این ابزارها به تعیین موارد زیر کمک می کنند:
یک سیستم و استراتژی مدیریت گزارش کارآمد، بینش بلادرنگ در مورد سلامت و عملیات سیستم را امکان پذیر می کند.
یک راه حل موثر مدیریت لاگ، به سازمان ها، موارد زیر را ارائه می دهد:
انفجار دادهها که ناشی از تکثیر دستگاههای متصل و همچنین حرکت به سمت ابر است، پیچیدگی مدیریت گزارش را برای بسیاری از سازمانها افزایش داده است.
یک راه حل مدرن و موثر مدیریت لاگ، باید چالش های اصلی زیر را برطرف کند:
استاندارد سازی
از آنجایی که سیستم مدیریت گزارش، دادهها را از برنامهها، سیستمها، ابزارها و میزبانهای مختلف استخراج میکند، همه دادهها باید در یک سیستم واحد که از همان قالب پیروی میکند، ادغام شوند. این فایل گزارش، به متخصصان فناوری اطلاعات و امنیت اطلاعات کمک میکند تا بهطور مؤثر، دادههای گزارش را تجزیه و تحلیل کنند و نما هایی را تولید کنند که برای انجام خدمات حیاتی تجاری استفاده میشوند.
حجم زیاد
داده ها با سرعت باورنکردنی تولید می شوند. برای بسیاری از سازمانها، حجم دادههایی که بهطور مداوم توسط برنامهها و سیستمها تولید میشوند، نیازمند تلاش زیادی برای جمعآوری، قالببندی، تجزیه و تحلیل و ذخیرهسازی مؤثر است. یک سیستم مدیریت گزارش باید برای مدیریت حجم بسیار زیاد داده ها و ارائه نمای به موقع، طراحی شود.
تاخیر
indexing در فایل لاگ، می تواند یک فعالیت محاسباتی بسیار پرهزینه باشد که باعث تاخیر بین داده هایی که وارد سیستم می شوند شده و سپس در نتایج جستجو و نمایش (Visualization)، گنجانده می شود. تأخیر، بسته به نحوه مدیریت لاگ و اینکه آیا سیستم مدیریت گزارش، داده ها را ایندکس گذاری می کند یا نه، افزایش می یابد.
بار بالا
مدیریت لاگ، هنگامی که به صورت دستی انجام می شود، فوق العاده وقت گیر و پرهزینه است. ابزارهای مدیریت لاگ دیجیتال، به خودکارسازی برخی از این فعالیتها و کاهش فشار بر روی متخصصان فناوری اطلاعات کمک میکنند.
در این بخش، میخواهیم دو راهحل محبوب متن باز را که برای سادهسازی فرآیند مدیریت گزارشها استفاده می شوند معرفی و با هم مقایسه کنیم: Graylog در مقابل ELK (Elasticsearch + Logstash + Kibana).
ELK ترکیبی از سه سرویس جداگانه است که همه آن ها متن باز هستند و توسط همان تیم توسعه یافته اند.
در بیشتر موارد، پشته ELK از Filebeat استفاده می کند. هدف این ابزار، تحویل لاگ ها به یک سرور خاص است. پس از اینک لاگ ها با Filebeat تحویل داده شدند و با Logstash پردازش شدند، در کلاستر ElasticSearch قرار می گیرند. از آنجا، لاگ ها برای مصورسازی توسط کیبانا، گرفته می شوند. تمامی مراحل ذکر شده در طرح زیر توضیح داده شده است.
دلیل محبوبیت Logstash این است که می توان آن را به راحتی با سایر محصولات الاستیک ادغام کرد. علاوه بر این، یک دسته کامل از پلاگین ها وجود دارد که این ابزار را بسیار انعطاف پذیر می کند. همچنین با اسناد جامعی همراه است که همه چیز لازم را برای پیکربندی و استفاده از Logstash در تقریباً هر سناریویی دارد. مراحل نصب آن نیز بسیار ساده است.
نقطه ضعف Logstash همیشه عملکرد و مصرف منابع بوده است. اگرچه عملکرد آن در حال حاضر بسیار بهتر از چند سال پیش است، اما در مقایسه با راه حل های دیگر هنوز بسیار کند است. سرورهای Logstash در مقایسه با سرورهای Elasticsearch، برای استقرار ترافیک بالا، مشکل دارند. و آخرین اما نه کماهمیت تزین مزیت Logstash، این است که فاقد رابط کاربری گرافیکی در نسخه خارج از جعبه است، بنابراین باید با تغییر فایلهای پیکربندی، آن را به صورت دستی پیکربندی کنید.
صفحه زیر مکانی است که می توانید نوع نمایش داده را انتخاب کنید.
پس از انتخاب نوع، از شما پرسیده می شود که از کدام فهرست می خواهید اطلاعات دریافت کنید. انتخاب شاخص بر اساس شاخصهایی است که در حال حاضر در خوشه ElasticSearch شما موجود است.
در اسکرین شات زیر، می بینید که بسته به نوع داده ای که وجود دارد، باید فیلدهای داده یا مقدار را اضافه کنید. وقتی این کار تمام شد، کیبانا آمار را در قالب نمودار انتخاب شده خروجی و تجسم می کند.
علاوه بر ذخیره داده ها و تجسم آنها، ما از کیبانا برای ارائه اطلاعات دقیق و آماری در مورد نحوه عملکرد برنامه های کاربردی مشتریان در محیط تولید، به آن ها، استفاده می کنیم.
به طور کلی، ELK یک ترکیب همه کاره است. پشته را می توان به عنوان یک برنامه کاربردی مستقل استفاده کرد یا با برنامه های موجود برای دریافت به روزترین داده ها یکپارچه شد.
Graylog یک ابزار قدرتمند برای مدیریت گزارشها است که گزینههای زیادی برای تجزیه و تحلیل گزارشهای ورودی از سرورهای مختلف در اختیار شما قرار میدهد. روش کار Graylog تقریباً شبیه به ELK است. علاوه بر سرور Graylog که از برنامه کاربردی و سرور رابط وب تشکیل شده است، برای اینکه بتوانید کل پشته را به طور کامل قابل اجرا کنید، باید MongoDB و Elasticsearch را نیز داشته باشید.
برای استفاده در تولید، توصیه می کنیم تمام اجزا را روی سرورهای مختلف نصب کنید. این باعث بهبود ثبات و عملکرد خواهد شد.
بنابراین موارد زیر، مواردی هستند که برای کار با Graylog به آن ها نیاز دارید:
فرآیند پیکربندی شامل 2 مرحله است:
به عنوان مثال، هنگامی که یک مشتری را سِت می کنید، فایل پیکربندی آن را با یک برچسب "production" علامت گذاری می کنید. پس از آن، تنظیمات دقیقی را روی سرور برای مشتریان، با تگ "production" ایجاد می کنید. اکنون به محض اعمال آن، همه تغییرات به طور خودکار از سرور دریافت می شود. هیچ تغییر دیگری لازم نیست در سمت مشتری انجام شود.
رابط کاربری گرافیکی دوستانه ای دارد و از طیف گسترده ای از فرمت های داده پشتیبانی می کند. گزینه های خوبی برای کنترل احراز هویت و تعیین مجوزهای کاربر، در اختیار شما قرار می دهد. همچنین می توانید آن را برای دریافت هشدار، از طریق ایمیل پیکربندی کنید. Graylog از Good-ol REST API استفاده می کند.
Graylog نمی تواند از فایل های syslog بخواند، بنابراین شما باید پیام های خود را مستقیماً به Graylog ارسال کنید. از نظر مدیریت، داشبورد، به اندازه کافی دوستانه نیست. عملکرد گزارش، بسیار ضعیف است.
هر دو ابزار از نظر مجموعه ای اساسی از ویژگی ها، بسیار مشابه هستند. با این حال، به عنوان طرفداران 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/