زیبا امیدوار
زیبا امیدوار
خواندن ۱۰ دقیقه·۳ سال پیش

آشنایی با ابزارهای مدیریت لاگ

مقدمه

مدیریت لاگ اگر به صورت کارآمد انجام شود، می تواند به متخصصان یک سازمان کمک کند تا به برنامه های خود نظارت داشته باشند و عملکرد آن ها را بهبود بخشند.
مدیریت لاگ در واقع عمل جمع‌آوری، قالب‌بندی، تجمیع و تجزیه و تحلیل داده‌های لاگ برای بهینه‌سازی برنامه‌ها و برنامه‌ها است. داده‌های موجود در لاگ ها حاوی اطلاعات ارزشمندی است که می‌تواند به تیم فنی در مورد عملکرد برنامه اطلاع دهد و به آنها کمک کند تا مشکلات را پیدا کنند. با درک بهتر عملکرد، متخصصان سازمان می توانند منابع مناسب را برای بهبود تجربه کاربر نهایی اختصاص دهند. با این حال، مدیریت موثر لاگ مستلزم صرف زمان و هزینه است. ابزارهای مدیریت لاگ مناسب می‌توانند در زمان مشاهده دستی لاگ ها صرفه‌جویی کنند و بینش‌های مهمی را برای هر کسی که می‌خواهد برنامه‌های خود را بهتر مدیریت کند، ارائه دهند.

در ادامه به توضیح بیشتر در مورد مدیریت لاگ و ابزارهای مربوط به آن می پردازیم.

توضیح مدیریت لاگ و کاربرد آن

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

شکل ۱- نمونه ای از یک فایل لاگ
شکل ۱- نمونه ای از یک فایل لاگ

مدیریت لاگ (Log Management) چیست؟

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

مدیریت لاگ ها به بخش های زیر تقسیم می شود:

  • جمع آوری لاگ ها: اولین قدم در مدیریت لاگ ها مشخص کردن نحوه جمع آوری داده های لاگ ها و محل ذخیره آن است. فایل های لاگ حاوی داده‌هایی هستند که از برنامه ها، سرورها، سیستم عامل، سوئیچ ها وفایروال ها جمع آوری شده اند. با استفاده از راه حل های مربوط به مدیریت لاگ ها می توان تنظیمات مربوط به نوع اطلاعاتی که می خواهیم جمع آوری کنیم را انجام دهیم و داده های اضافی را کنار بگذاریم و اطلاعات مورد نیاز و مرتبط را ذخیره کنیم.
  • تجمیع متمرکز لاگ ها: تجمیع متمرکز لاگ ها فرآیندی است که در آن همه لاگ ها بدون توجه به منبع آنها در یک مکان جمع‌آوری می‌شوند. همانطور که قبلا ذکر شد، حجم داده ها یکی از بزرگترین چالش ها در این فرآیند است، اما مسائل مهم دیگری نیز وجود دارد که باید در نظر گرفته شود. مثلاً بحث صحت وجود دارد و ممکن است داده های لاگ ها دقیق نباشند. همچنین ابزار مدیریت لاگی که از آن استفاده می کنیم باید بتواند با سرعت تولید داده ها در سیستم های ما هماهنگ شود. چون لاگ ها از منابع مختلفی جمع آوری می شوند، باید تمام فایل های لاگ تولید شده در سیستم جمع آوری شود و از آن ها یک خروجی با قالب مشترک تولید شود تا اطلاعات درون لاگ ها راحت تر تجزیه و تحلیل شوند.
  • ذخیره سازی و نگه داری طولانی مدت لاگ ها: گام بعدی در مدیریت لاگ، ذخیره و نگهداری طولانی مدت لاگ است. سوال اصلی در این مرحله این است که چه مدت باید لاگ ها را ذخیره کنیم. اگرچه ذخیره سازی لاگ ها برای مدت زمان نامحدود این امکان را به ما می دهد که در صورت نیاز بتوانیم داده های قدیمی را بازیابی کنیم اما ذخیره ی این حجم از داده ها بسیار پر هزینه خواهد بود. در نتیجه بهتر است این لاگ ها را برای یک مدت محدود ذخیره کنیم و از بخشی از لاگ ها هم پشتیبان گیری فیزیکی روی دیسک انجام دهیم.
  • تجزیه و تحلیل لاگ ها: تجزیه و تحلیل لاگ ها بدون شک یکی از مهمترین بخش های مدیریت لاگ ها است زیرا جمع آوری و ذخیره فایل های لاگ بدون استفاده ی مفید از آن ها هیچ معنایی ندارد. ابزارهای مدیریت لاگ فرآیند تجزیه و تحلیل داده های لاگ را خودکار و ساده می کنند و راه های پیشرفته ای برای این کار ارائه می دهند. گزارش های تحلیلی داده ها از نمودارها و تصاویر برای شناسایی همبستگی ها و ارتباطات، شباهت ها، شناسایی تهدید های امنیتی و عیب یابی استفاده می کند و تشخیص مسائل و علت های آن ها را ساده تر می کند.
  • جستجو در لاگ ها و گزارش دهی: ابزارهای مدیریت لاگ با داشتن رویکرد جمع آوری متمرکز و گزینه های جستجوی پیشرفته، جستجو در داده های لاگ ها و تولید گزارش را تسهیل می کنند. جستجوی پیشرفته به ما این امکان را می دهد که اطلاعاتی در مورد یک رویداد خاص جمع آوری کنیم. راه‌حل‌های مدیریت لاگ مجهز به ابزارهایی برای داده‌کاوی هستند که می توانند در یافتن الگوهای پنهان موجود در داده های لاگ ها موثر واقع شوند. همچنین این ابزار ها با تولید خودکار گزارش می توانند به ما در پایش عملکرد سیستم ها، وضعیت تخصیص منابع و مسائل امنتی به ما کمک کنند.
شکل ۲- بخش های مختلف مدیریت لاگ
شکل ۲- بخش های مختلف مدیریت لاگ


چرا مدیریت لاگ مهم است؟

مدیریت لاگ بینشی در مورد درستی و صحت عملکرد سیستم ها و برنامه ها به ما ارائه می دهد.بدون مدیریت لاگ ها یافتن مرجع مشکلات عملکرد برنامه ها و علت رفتارهای غیر منتظره سیستم مشکل خواهد بود.
مدیریت لاگ به توسعه دهندگان و تیم زیرساخت امکان عیب یابی مشکلات را می دهد و به مدیران محصول اجازه می دهد تا اطلاعات مفیدی را از داده های تعبیه شده در لاگ ها استخراج کنند. همچنین لاگ ها یکی از منابع کلیدی داده‌ها برای تجزیه و تحلیل های امنیتی هستند مواردی مثل تشخیص تهدید،تشخیص نفوذ و امنیت شبکه و ...که در مجموع تحت عنوان Security Information and Event Management) SIEM) شناخته می‌شوند. از مزایای مدیریت لاگ می توان به موارد زیر اشاره کرد:

  • ذخیره سازی یکپارچه داده
  • بهبود امنیت از طریق کاهش سطح حمله، پایش به صورت real time و بهبود زمان تشخیص حمله و پاسخ به آن
  • قابلیت‌های عیب‌یابی سریع‌تر و دقیق‌تر از طریق تجزیه و تحلیل های پیشرفته
  • مانیتورینگ و هشدار

ابزارها و فناوری های متن باز در حوزه ی مدیریت لاگ

در این بخش به بررسی ابزارهای مطرح در حوزه ی مدیریت لاگ می پردازیم.

ابزار (Elastic Stack (ELK

این ابزار یکی از پرکاربردترین ابزارهایی است که برای مدیریت لاگ از آن استفاده می شود. استفاده از عبارت stack برای آن به این دلیل است که شامل چند ابزار است. Elastic Stack شامل بخش های زیر است:
۱- Elastic Search: یک موتور جستجوی متن باز قدرتمند است.
۲- Kibana: ابزار مبتنی بر وب برای تجسم و تصویر سازی (visualization) داده ها
۳- Beats: کار این ابزار این است که به طور مستمر داده‌های لاگ و مانیتورینگ مربوط به هر دستگاه را به یک مخزن داده ی واحد ارسال کند.
۴- Logstash: یک مخزن داده ی واحد است. در واقع جایی است که فایل های لاگ ذخیره، تجزیه، فیلتر و تجزیه و تحلیل می شوند.

برای استفاده از این ابزار باید ابتدا Beats را روی همه سرورهایی که می‌خواهیم روی آن ها مانیتورینگ انجام دهیم،نصب و پیکر بندی کنیم تا داده ها را به یک سرور مرکزی در واقع جایی که Logstash را برای انجام کار تجزیه و تحلیل لاگ ها تنظیم کرده ایم، ارسال کنندو سپس داده ها را در Elastic Search ادغام کنیم تا بتوانیم داده ی مورد نظر خود را در آن جستجو کنیم.در نهایت می توانیم از Kibana برای انواع مختلف تجسم‌ها و تصویر سازی های مفید داده های فایل های لاگ استفاده کنیم.

اطلاعات بیشتر مربوط به این ابزار از طریق این لینک قابل مشاهده است.

شکل ۳- Elastic Stack
شکل ۳- Elastic Stack

ابزار Graylog

یکی دیگر از نرم افزارهای مدیریت لاگ متن باز قدرتمند Graylog است. نصب این ابزار سریع و آسان است.Graylog یک رابط کاربری خوب را به همراه ویژگی‌های بسیاری مانند جستجوی پیشرفته (برای ساخت پرس و جوهای قدرتمند و اجرای سریع آنها)، ویژگی هشدار، تحمل خطا (برای جلوگیری از از دست دادن داده‌ها در صورت بروز مشکلات شبکه) را ارائه می کند.Graylog به زبان جاوا نوشته شده است و به خوبی پشتیبانی شده و به طور مستمر به روز می شود و افزونه های زیادی را به صورت رایگان و متن باز در اختیار کاربران قرار می دهد.

ابزار Graylog بر خلاف Elastic Search یک راه حل تک برنامه ای در جمع آوری داده ها، تحلیل و visualization ارائه می دهد و نیاز به نصب چند ابزار مختلف ندارد. Graylog داده‌ها را در MongoDB جمع‌آوری و ذخیره می‌کند و روی داشبوردهای کاربر پسند به تصویر سازی داده ها می پردازد.

اطلاعات بیشتر درباره ی این ابزار از اینجا قابل دستیابی است.

شکل ۴- محیط ابزار Graylog
شکل ۴- محیط ابزار Graylog

ابزار LOGalyze

کاربرد این ابزار در زمینه ی مانیتورینگ شبکه و مدیریت لاگ است که لاگ ها را از شبکه و هاست های ویندوزی و لینوکسی جمع آوری می کند و به تجزیه و تحلیل آن ها می پردازد. این ابزار در ابتدا تجاری بود اما اکنون بدون هیچ محدودیتی قابل دانلود و نصب است. این ابزار برای تحلیل لاگ های سرورها و برنامه ها ایده آل است و می تواند گزارش های خود را در قالب های pdf، csv و html ارائه کند. LOGalyze نیز مانند سایر ابزارهای معرفی شده، یک رابط کاربری ساده دارد که استفاده ی کاربران از این ابزار را تسهیل می بخشد.

اطلاعات بیشتر در مورد این ابزار را می توانید از طریق این لینک مشاهده کنید.

شکل ۵- محیط ابزار  LOGalyze
شکل ۵- محیط ابزار LOGalyze

ابزار GoAccess

ابزار GoAccess در وهله اول به عنوان یک ابزار مدیریت لاگ مبتنی بر ترمینال ساخته شد اما اکنون GoAccess یک رابط کاربری مبتنی بر وب مناسب ارائه می دهد که از داخل مرورگر قابل اجرا است.
GoAccess به زبان برنامه نویسی C نوشته شده است. از جمله ویژگی های آن می توان به موارد زیر اشاره کرد:

  • اطلاعات را به صورت real time نمایش می دهد.
  • تقریباً از تمام فرمت‌های لاگ مانند Apache، Amazon S3، Nginx و Cloudfront پشتیبانی می‌کند.
  • برای کار با GoAccess نیازی به نصب کتابخانه و ابزار دیگری نیست.
  • طرح و رنگ زمینه ی رابط کاربری آن قابل شخصی سازی است.
  • از چندین هاست مجازی پشتیبانی می کند.

اطلاعات بیشتر در مورد این ابزار از طریق وبسایت آن قابل دسترسی است.

شکل ۶- محیط ابزار GoAccess
شکل ۶- محیط ابزار GoAccess

شرکت های ایرانی ارائه دهنده خدمات در حوزه ی مدیریت لاگ

از جمله شرکت های ایرانی فعال در این زمینه می توان به شرکت دانش بنیان پلتکو اشاره کرد.پلتکو یک شرکت دانش بنیان است که با بهره‌گیری از کارشناسان ارشد حوزه معماری زیر ساخت سرویس ‌های سازمانی، خدمات یکپارچه سازی و مدیریت وب سرویس نظیر ESB و API MANAGER و ... ارائه می‌دهد.

در سایت این شرکت در مورد مدیریت لاگ متن زیر آورده شده است:

سازمان‌ها با استفاده از نرم افزارlog management   می‌توانند تمامی این لاگ‌ها را به صورت برخط و یکپارچه ذخیره سازی و تحلیل کنند. نرم افزار مدیریت لاگ به سازمان‌ها کمک می‌کند سطح نظارتی خود را چندین مرتبه عمیق‌تر کنند و با تحلیل لاگ‌ها روند‌های مشکل آفرین و تهدید آمیزی که از دید ساختار مانیتورنیگ پنهان است را کشف کرده و پیش از وقوع بحران مشکل را برطرف کنند
شکل ۷- ابزار log management شرکت پلتکو
شکل ۷- ابزار log management شرکت پلتکو


از جمله دیگر شرکت های فعال در این زمینه کوالاتک است.مجموعه کوالاتک، ارائه دهنده خدمات تخصصی تست نرم افزار و تضمین کیفیت می باشد. این شرکت ابزار مدیریت لاگ خود را اینگونه توصیف کرده است:

سیستم مدیریت لاگ کوالاتک (Log Management) ابزاری است که به سازمان کمک می‌کند تا لاگ‌های مختلف نرم افزارها، اپلیکیشن ها و … را در این ابزار جمع‌آوری کند و آنها را متناسب با نیاز خود ساماندهی نماید.
شکل ۸- ویژگی های ابزار مدیریت لاگ شرکت کوالاتک
شکل ۸- ویژگی های ابزار مدیریت لاگ شرکت کوالاتک


«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»

منابع

1- https://www.graylog.org/post/what-is-log-management-a-complete-logging-guide

2- https://www.humio.com/glossary/log-management/

3- https://opensource.com/article/19/4/log-analysis-tools

4- https://fosspost.org/open-source-log-management/

5- https://sematext.com/guides/log-management/

6- https://platco.ir/services/monitoring/log-manager/

7- https://qualatech.ir/log-management/






















معماری_نرم_افزار_بهشتیمدیریت لاگlog managementlog management tools
شاید از این پست‌ها خوشتان بیاید