شاید برای شما پیش آمده باشد که با سیستمی بزرگ تحت وب یک کاری را انجام داده باشید و آن کار برای شما مشکلاتی را بوجود آورد مانند پاک کردن یک اطلاعات مهم. سپس شما به تیم پشتیبانی زنگ زده و درخواست میکنید که آن مشکل را در صورت امکان برطرف نمایند و آنها نیز میگویند بررسی میکنند. هنگامی که با شما تماس میگیرند تا صحت عمل انجام شده و زمان انجام آن را بررسی کنند، زمان دقیق، نوع عمل و اینکه برروی کدام داده این کار را انجام دادهاید را به شما خواهند گفت. تمام این اطلاعات دقیقی که به شما میگویند حاصل ذخیرهی اطلاعات کارهایی است که به صورت لحظهای توسط سرور و سایر سیستمها به صورت خودکار در یک فایل به نام فایل لاگ انجام میشود. یک لاگ درواقع فایلی است که توسط سسیتم تولید میشود که فعالیتهایی که در سیستمعامل یا برنامههای نرمافزاری رخ میدهد را ثبت میکند. فایل لاگ به صورت خودکار هر اطلاعات طراحی شده توسط مدیران سیستم مستند میشود مانند: پیامها، گزارشان خطا، درخواستهای فایل و انتقال فایلها. این رکوردهای ثبت شده حاوی زمان نیز هستند که کمک میکنند تا زمان وقوع کارها را فهمید.
لاگهای ثبت شده حجم بسیار بالایی دارند و بررسی آنها کار سادهای نیست زیرا در هر ثانیه چندین عمل را دارند ثبت میکنند با فرمتهای مخاتلف. بنابراین به سیستمی نیاز داریم که به کمک آن بتوان لاگها را مدیریت کرد. ابتدا باید به این نکته اشاره کرد که مدیریت لاگ یک کاربرد جمع آوری، مرتب کردن، پردازش، سنتز و تحلیل داده به صورت مدام است از برنامههای مجزا به منظور بهینه کردن عملکرد سیستم، شناسایی مسائل فنی، مدیریت بهتر منابع، تقویت امنیت و بهبود انطباق. مدیریت لاگ شامل دستههای محتلفی میشوند.
· مجموعه: یک ابزار مدیریت لاگ که داده را از سیستم عامل، برنامهها، سرورها، کاربران، پایانهها یا هر منبع مرتبط با سازمان جمع آوری میکند
· نظارت: ابزار نظارت لاگ فعالیتها و کارها هنگامی که رخ میدهند را به خوبی دنبال میکند
· تحلیل: این ابزار مجموعه لاگ را بازنگری میکند. از سرور لاگ برای شناسایی لاگها، تهدیدهای امنیتی و سایر مسائل
· شاخص بندی یا جستجو: ابزاری که کمک میکند به واحد IT سازمان تا داده را خول تمام لاگها فیلتر، مرتب و جستجو کند
· گزارش: یک ابزار پیشرفته که گزارشدهی از لاگها به گونهای که مرتبط به عملکرد عملیاتی، اختصاص منابع، امنیت یا انطباق نظارتی انجام میدهد
سیستم مدیریت لاگ یک سیستم نرمافزاری است که داده و لاگهای فعالیت را از منابع مختلف در یک مکان مرکزی جمعآوری، ذخیره و مرتب میکند. سیستم مدیریت لاگ به تیم DevOps، SecOps و ITاین امکان را میٔهد تا به اطلاعات لاگهای فعالیت شبکه و برنامههای مختلف دسترسی داشته باشند و از طرف دیگر این لاگهای ذخیره شده قابل جستجو و فیلتر هستند و شاخص بندی شدهاند. بنابریان تیم ITمیتواند به راحتی به دادهای که نیاز دارد تا در مورد سلامت شبکه، تخصیص منابع یا امنیت تصمیم بگیرد. ابزار مدیریت لاگ برای کمک به سازمان جهت مدیریت حجم بالای داده لاگ تولید شده حول سازمان استفاده میشود که این ابزار کمک به تشخیص موارد زیر میکند:
- چه داده و اطلاعاتی باید لاگ شود
- رکوردهای لاگ به چه صورت باید باشد
- در چه بازهایی دادهها باید ثبت شوند
- چگونه دادهها زمانی که دیگر مورد نیاز نیستند دور از بین بروند
بنابراین سیستم مدیریت لاگ برای سازمان مهم میتواند با اهمیت باشد زیرا نقش موثری در بسیاری از مسائل امنیت و اشکالات داشتهاند. یک راه حل مدیریت لاگ موثر به سازمانها موارد زیر را ارائه میدهد:
· ذخیره داده واحد به وسیلهی لاگ متمرکز
· بهبود امنیت با کاهش سطح حمله، نظارت در لحظه و بهبود زمان تشخیص و پاسخ
· بهبود شفافیت حول سازمان از طریق لاگ کارهای عادی
· بهبود تجربه کاربر با بررسی و تحلیل داده لاگ
· قابلیت سریعتر و دقیق عیبیابی با تحلیل شبکه پیشرفته
کمی پیشتر در مورد مدیریت لاگ متمرکز گفته شد. درواقع مدیریت لاگ متمرکز عمل تجمیع تمام داده لاگ در یک مکان واحد و فرمت مشترک است. چون داده از منابع مختلف میآیند باید تلفیق و استاندارد شوند قبل از آنکه سازمان بینش معناداری را بتواند تولید کند. مرکز گرایی، فرایند تحلیل را ساده میکند و سرعت انکه بکاربردن کدام داده بدرد کسبوکار میخورد را افزایش میدهد.
در میریت لاگ چالشهای وجود دارد:
· استانداردسازی: همانگونه که قبلا گفته شد برای آنکه لاگها در یک جا تحمیع شوند لازم است تا فرمت آنها یکسان باشد و با یک استاندارد مشخصی ذخیره شوند.
· حجم: سیستم مدیریت لاگها باید به گونههای طراحی شوند که بتوانند حجم بالای دادهای که از سمت شبکه و برنامههای موجود ایجاد میشود را استاندارد، ذخیره و تحلیل کنند.
· تاخیر: افزایش تاخیر مربوط به چگونه شاخصبندی داده توسط سیستمهای مدیریت لاگ است. شاخصبندی عمل بسیار محساباتی و هزینهبری می تواند باشد. تاخیر میان ورود داده یک سیستم و سپس در نتایج جستجو و تجسم گنجانده میشوند.
· بار مسئولیتی بالای IT: هنگامی که به صورت دستی انجام شود، مدیریت لاگ به طور شگفتانگیزی زمانبر و هزینهبر است. ابزار مدیریت لاگ دیجیتال کمک به خودکار سازی برخی از این کارها میکنند و فشار را به متخصصان ITکاهش میدهد.
نرمافزارهایی هستند که سرویس مدیریت لاگ را در اختیار کاربران قرار میدهند اما برای استفاده از آنها نیاز به پرداخت هزینه و خرید اشتراک است. اما برخی دیگر هم هستند که به صورت متن باز وجود دارند و سازمانهایی که تیم توسعهی نرمافزار دارند میتوانند از آن استفاده کنند و آن را توسعه دهند. در بخش بعدی به معرفی دو سیستم مدیریت لاگ متن باز میپردازیم
نرمافزارهای متن باز
Fluent یکی از این نرمافزارهای متن باز و رایگان است که کمک میکند تا لاگها را در یک بافر ذخیره کنیم. سرویسهایی که پیشنهاد میدهد شامل تعادل بار، تلاش مجدد برای حفظ استحکام است. این برنامه بیش از ۵۰۰ پلاگین برای منابع و خروجی ارائه میدهد. از ویژگیهای این نرمافزار میتوان به موارد زیر اشاره کرد:
· دادهها را چندین منبع میتواند جدا کند
· یک ساختار برای فهم لاگها ارائه میدهد
· تنظیم کردن آن ساده است
· به صورت بیدرنگ از ماشینها داده جمع آوری میکند
· کمک میکند تا لاگها را تحلیل کنیم به راحتی
· مدیریت و نظارت بر فایلهای موجود را فراهم میکند
نرمافزار دیگر نیز که رایگان و متن باز است Graylog نام دارد. این نرمافزار یک سیستم براساس لاگ است که یک واسط کاربری گرافیکی نیز دارد. این سیستم شامل توابع پرسش و جستجو است که اجازه میدهد تا رکوردها را با توجه به راحتی کاربر فیلتر شوند. این برنامه شمال یک داشبورد برای دیدن جزئيات رکوردها است. از جمله ویژگیهای این نرمافزار عبارتاند از:
· هشدار سریعتری در مورد خطرات سایبری میدهد
· داده را تحلیل میکند و یک پاسخ موثر را ارائه میکند
· برروی دادهها هشدارها و گزارشات شهودی میدهد
· دادهها را جمع آوری، سازماندهی و تحلیل میکند
· ویژگیهایی برای کنترل دسترسی براسا نقش، لاگهای حسابرسی و تحمل خطا دارد
برای سازمانهایی نیز که تیم توسعهی نرمافزار ندارند پیشنهاد میشود که از سرویس آمادهی مدیریت لاگ که توسط برخی از شرکتهای نرمافزار ارائه میشود استفاده کنند. در بخش بعد دو شرکتی که این سرویس را در ایران ارائه میدهند معرفی می شوند.
شرکت کوالاتک، یکی از شرکتهایی است که سرویس مدیریت لاگ را در ایران ارائه می دهد. این ابزار کمک میکند تا لاگها به صورت خودکار جمعاوری شوند و طبق نیاز سازمان، دسته بندیهای لازم برای هر لاگ صورت میگیرد. جمع آوری لاگ از چندین منبع صورت میگیرد که این کار توسط مجموع ابزار Beatانجام میشود. همچنین لاگهای جمعآوری شده را متناسب با نیازهای عام و خاص هر سازمان به داده تبدیل میکند تا مواجه، مطالعه و تجزیه و تحلیل داده برای سازمان آسان باشد. مدیر سیستم با این ابزار بجای اطلاعات فنی با دادههای ساده در ارتباط است. امکان جستجوی لاگ را هم دارد و کمک به دسترسی سریع به لاگ را فراهم میکند. مدیر سیستم نیز میتوان به راحتی متوجه شود که لاگهای موجود در سیستم مربوط به چه بخشهایی میباشد یا در قسمت هشدار، لاگهایی که مربوط به بخشهای حساس هستند به محض ایجاد، برای مدیر، آلارم ارسال میشود. همچنین امکان گزارش گیری را نیز فراهم میکند که در این قسمت مدیر سیستم میتواند نمای کلی از اتفاقات و آمارهای مربوط به لاگها را در یک نمای کلی ببیند. این اطلاعات و آمارها از طریق نمودارها والمانهای تصویری در بخش داشبورد به مدیر سیستم ارائه میشود.
سامانهی دیگر مدیریت لاگ آتین است. این سیستم نیز امکان ثبت خودکار رفتارهای کاربران و رخدادهای مرتبط، ثبت وقایع امنيتي تعریف شده در برنامه های کاربردی، امکان پیگیری وقایع و گزارش گیری، امکان نظارت بر عملکرد کلیه کاربران، محفوظ ماندن فعاليت كاربران از سايرين به جز مدیران سامانه و ثبت وقایع در سطوح مختلف به منظور کاهش ریسک های دسترسی به اطلاعات و خدمات را فراهم میکند و از مزایای این سیستم به افزایش امنیت، افزایش آگاهی از مشکلات زیرساخت شبکه، کنترل دسترسی به سرور، خدمات و برنامههای کاربردی، تشخیص سریع قطع شدن شبکه و ایراد در پروتکل، تشخیص سریع فرایندها، سرویسها، کارهای دورهای و کارهای دستهای شکست خورده، انطباق ممیزی و انطباق با مقررات اشاره شده است.
عملیات و رویدادهایی که در هر سیستم سازمانی اتفاق میافتد لازم است که ثبت شوند تا مدیران سیستم و به طور کلی واحد ITاز آنها با خبر باشند تا زمانی که اتفاقی افتاد و مشکلی پیش آمد دلیل آن مشکل را بفهمند و بتوانند بررسی کنند. از این رو میتوان از فایلهایی به نام لاگ استفاده کرد. لاگها فایلهایی است که کارکردها سیستم را به طور خودکار ثبت و ذخیره میکنند. در یک فایل لاگ رکوردهای زیاد ثبت میشود که مدیریت این اطلاعات و جستجو در آنها کار سادهای نیست. بنابراین نیاز به ابزار مدیریت لاگ میباشد تا لاگها را دسته بندی کند، شاخص بندی نماید برای جستجوی بهتر، تحلیل برروی دادهها انجام دهد، فرمت ذخیرهی آنها را استاندارد و یکسان کند و همچنین امکان آماده سازی گزارش را نیز داشته باشد. سیستمهای مدیریت لاگ از اهمیت بالایی برخوردارند زیرا در یافتن دادههای خاص و شناسایی مشکلات به تیم IT بسیار کمک میکنند و در نتیجه در وقت و هزینه صرفه جویی میشود. برای استفاده از این سرویس میتوان از نرمافزارهای متن باز مانند Fluent و Graylogاستفاده کرد که این امکان را به توسعه دهندگان یک سازمان میدهند تا سیستم را برروی سرور خود قرار دهند و آن را متناسب با نیازهای خود تغییر و پیاده سازی کنند. همچنین شرکتهایی که کوچک هستند یا تیم توسعهی نرمافزار ندارند میتوانند از شرکتهایی که این سرویس را ارائه میدهند محصول را خریداری کنند. در ایران شرکتهایی مانند آتین و کوالاتک هستند که این سرویس را ارائه میدهند.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است