فایلهای لاگ، رکوردهای تایم استمپ (Timestamp) هر فعالیتی که در هر لحظه توسط سرور، هسته، برنامهها یا خدمات انجام میگیرد را ثبت و ارائه میکنند. فایلهای لاگ منبعی ارزشمند برای عیبیابی و نظارت بر عملکرد سیستم هستند. فایلهای لاگ معمولا در یک دایرکتوری بر روی کامپیوتر نگهداری میشوند و با استفاده از ویرایشگرهای متن و یا مرورگرهای وب قابل دسترس هستند. در عین حال، لاگهای مختلفی مانند لاگ تغییرات، لاگهای دسترسی یا لاگهای منابع وجود دارد.
فایل لاگ سرور چیست؟
فایلهای لاگ سرور انواع خاصی از فایلهای داده حاوی اطلاعات مربوط به رویدادی هستند که در یک زمان خاص رخ داده است و اغلب از منابع مختلف جمعآوری شدهاند. یک فایل لاگ معمولا تاریخها و تایم استمپها و انواع مختلفی از متادیتاها درباره رویداد یا منبع داده که در آن زمان در دسترس بوده است را ذخیره میکند.
فایلهای لاگ تقریبا توسط هر برنامه نرمافزاری و سیستمی مانند سیستمهای عامل و وبسرورها تولید میشوند و بینشهایی را در مورد آنچه که در یک سیستم خاص انجام میگیرد و نحوه تعامل کاربران با آن را ارائه میدهند.
یک لاگ دسترسی در یک وبسرور میتواند آدرسهای IP بازدیدکنندگان، زمانهای بازدید و صفحاتی که آنها در طول بازدید خود به آن دسترسی پیدا کردهاند را ثبت کند. این اطلاعات به مالکان وبسایت کمک میکند تا عملکرد را بهبود بخشند، تولید محتوا را بهینهسازی کرده و هزینههای وبسایت خود را کاهش دهند.
مدیران شبکه از فایلهای لاگ برای مانیتورینگ سرور از ورودیهای غیرمجاز یا تغییرات رمزعبور، عیبیابی مشکلات امنیتی و اطمینان از دسترسی کاربران مجاز به دادههای حساس استفاده میکنند.
این لاگها اغلب در یک فایل Syslog خاص، که پرکاربردترین استاندارد گزارشگیری در فریمورکهای نرمافزاری و سیستمعاملها است نوشته میشوند. فایلهای Syslog میتوانند ساختاریافته و یا بدون ساختار باشند و ممکن است شامل متادیتا برای بهبود قابلیتهای جستوجو و عملکرد سریع باشند.
فایلهای لاگ منبع ارزشمندی از بینش را در اختیار سازمانها قرار میدهند که میتواند به آنها در محیط کسبوکار در حال تکامل امروزی برتری بدهد. شرکتها از دادههای فایل لاگ برای کشف فرصتهای جدید و پیشبینی تهدیدات امنیتی قبل از اینکه بر روی کاربران تاثیر بگذارد استفاده میکنند.
بااینوجود، برای اینکه سازمانها بتوانند مقادیر را از میان حجم عظیمی از دادهها استخراج کنند، ابتدا باید بر چندین چالش کلیدی غلبه کنند. یکی از این چالشها پیدا کردن یک راهحل فوری برای تجزیهوتحلیل دادهها است.
انواع لاگ سرور
اکنون که با مفهوم لاگ سرور چیست آشنا شدهاید، بهتر است درباره انواع لاگ سرور نیز اطلاعاتی بهدست آورید تا نحوه خواندن فایلهای لاگ سرور برای شما آسانتر شود. درحالیکه لاگهای دسترسی ابزار کار محسوب میشوند، لاگهای سرور گستره وسیعتری را در بر میگیرند که هر یک بینش منحصربهفردی را ارائه میدهند:
- Access Logs (Common Log Format، Extended Log Format): همانطور که قبلا بحث شد، لاگهای دسترسی هر درخواستی را که به سمت سرور ارسال میشود ثبت میکنند. این فایلها در دو فرمت اصلی هستند:
- Common Log Format(CLF): این فرمت ابتداییترین فرمت است و عموما حاوی آدرس IP، تایم استمپ، متد HTTP، درخواست URL، کد وضعیت HTTP و تعداد بایتهای منتقل شده است.
- Extended Log Format (ELF): این فرمت براساس CLF ساخته شده است و جزئیاتی مانند عامل کاربر و referrer را اضافه میکند. اطلاعات اضافی در این فایلها تصویر جامعتری را از رفتار کاربر را ارائه میدهند.
- Error Logs: این لاگها خطاهایی که سرور در حین کار با آنها مواجه میشود را ثبت میکند. لاگهای Error معمولا اطلاعاتی مانند تایم استمپ، نوع خطا، محل خطا در کد (در صورت وجود)، ردیابی پشته (یک توالی از فراخوانی تابع که منجر به خطا میشود) را شامل میشوند. لاگهای خطا برای عیبیابی مشکلات سرور و حفظ عملکرد وبسایت بسیار حائز اهمیت است.
لاگهای امنیتی
- لاگهای امنیتی (Audit Logs): این لاگها بهطور دقیق رخدادهای مربوط به امنیت سرور را ردیابی میکنند. این لاگها ممکن است شامل جزئیات زیر باشند:
- تلاشهای ورود ناموفق: این نشان میدهد تلاشهایی برای دسترسی به سرور با اعتبارنامههای نادرست (که احتمالا نشاندهنده تلاشهای هک است) در وبسایت رخ داده است.
- فعالیتهای مشکوک: لاگها ممکن است الگوهای دسترسی غیرمعمول مانند تلاشهای متعدد برای ورود به سیستم از مکانهای مختلف در قالبهای زمانی کوتاه را ثبت کنند.
- نغییرات فایل Permission : لاگهای امنیتی تغییرات فایل permissions را ردیابی میکنند که میتواند نشاندهنده دسترسی غیرمجاز یا فعالیت یک بدافزار باشد.
- رویدادهای نرمافزار امنیتی: این لاگها اقدامات انجامشده توسط نرمافزارهای امنیتی مانند فایروالها و سیستمهای تشخیص نفوذ را ثبت میکنند. لاگهای امنیتی برای شناسایی و کاهش تهدیدات بالقوه امنیتی حیاتی هستند.
لاگهای تخصصی
لاگهای برنامه: درحالیکه لاگهای دسترسی بر درخواستهای سرور تمرکز دارد، لاگهای برنامه بهصورت عمیقتری به عملکرد برنامههای در حال اجرا بر روی سرور میپردازد. این لاگها ممکن است رویدادها، خطاها و تعاملات کاربر را ثبت کنند. تجزیهوتحلیل لاگهای برنامه به منظور عیبیابی مشکلات برنامه و نظارت بر عملکرد برنامه بسیار حائز اهمیت است.
لاگهای انتقال (FTP Logs): برای سرورهایی که انتقال فایل انجام میدهند (سرورهای FTP)، لاگهای اختصاصی انتقال، فعالیتهای انتقال فایل را مستندسازی میکنند. این نوع لاگ معمولا شامل اطلاعاتی مانند اطلاعات کاربر درگیر، فایلهای منتقلشده، زمان و اندازه فایل منتقلشده است. لاگهای انتقال میتوانند به منظور پیگیری فایل دسترسی و شناسایی انتقالهای غیرمجاز مفید باشد.
لاگهای پایگاه داده: سرورهای پایگاه داده اغلب حاوی لاگهای اختصاصی هستند که فعالیت پایگاه داده را ردیابی میکنند. این لاگها ممکن است شامل جزئیاتی مانند کوئری پایگاه داده، دسترسی کاربر به پایگاه داده و هرگونه خطای رخ داده در طول عملیات پایگاه داده باشند. لاگهای پایگاه داده میتواند برای عیبیابی مشکلات پایگاه داده و اطمینان از یکپارچگی دادهها حیاتی باشند.
یک فایل لاگ سرور حاوی چه اطلاعاتی است؟
هر ورودی لاگ سرور معمولا شامل چندین دیتا پوینت (Data Point) است که نمای دقیقی از فعالیتهای سرور را ارائه میدهد. در اینجا، به تفکیک برخی از عناصر رایج میپردازیم:
- آدرس IP: این المان، شناسه منحصربهفرد مکان دستگاه درخواستکننده را مشخص میکند.
- تاریخ و زمان: تایم استمپ زمان دقیق درخواست را ثبت میکند.
- روش درخواست HTTP: این المان، نوع عمل درخواست شده (GET، POST و غیره) را نشان میدهد.
- URL درخواستشده: این المان، صفحه وب و یا منبع خاص درخواستشده را نشان میدهد.
- کد وضعیت HTTP: این کد نتیجه درخواست (موفق، خطا، ریدایرکت) را نشان میدهد.
- عامل کاربر (User Agent): این استرینگ، مرورگر یا دستگاه مورد استفاده برای دسترسی به سرور را مشخص میکند.
- Referrer: وبسایتی را نشان میدهد که کاربر را به سایت فعلی هدایت کرده است.
دیتا پوینتهای خاص ثبتشده در گزارش سرور میتواند بسته به نرمافزار سرور و پیکربندی آن متفاوت باشد. بااینحال، اطلاعات اصلی ثابت میماند و بینشهای ارزشمندی را در مورد رفتار کاربر، عملکرد سرور و تهدیدات امنیتی بالقوه ارائه میدهد.
چه افرادی از فایل لاگ سرور استفاده میکنند؟
فایلهای لاگ سرور بهطور گسترده توسط تیمهای عملیاتی فناوری اطلاعات، مهندسان DevOps و تحلیلگران امنیتی برای اهداف مختلف استفاده میشوند. گزارشها به اجرای روان برنامهها کمک میکنند، مشکلات را قبل از خرابی شناسایی کرده و خطرات مالی و عملیاتی را کاهش میدهند.
از فایلهای لاگ وبسرور به منظور نظارت بر ترافیک بازدیدکنندگان و تغییرات فایل استفاده میکنند. این فایلها نگاهی اجمالی به نحوه تعامل بازدیدکنندگان وبسایتها، از جمله افرادی که بازدید کردهاند، صفحاتی که بازدید شده و کلمات کلیدی که آنها جستوجو کردهاند را ارائه میدهند.
همچنین، لاگها میتوانند برای شناسایی فعالیتهای مخرب مانند باتنتها مورد استفاده قرار بگیرند. هکرهای کلاه سفید و محققان امنیتی از لاگها استفاده میکنند تا بفهمند چه کسی چه وقت و از کجا حملات را انجام داده است. بنابراین، فایلهای لاگ به آنها کمک میکند تا آسیب پذیریها و سوء استفادههای احتمالی را شناسایی کنند.
فایلهای لاگ بیشتر برای شناسایی مشکلات و باگها در نرمافزار مورد استفاده قرار میگیرند. این لاگها باید در ابتدای پروژه تنظیم شوند تا به توسعهدهندگان در شناسایی سریع خطاها یا رویدادهای غیرعادی که از اشتباهات برنامهنویسی یا دلایل دیگر ناشی میشوند کمک کنند.
لاگها اغلب در طول توسعه نرمافزار برای ارزیابی وضعیت یک برنامه کاربردی، از جمله فراخوانی APIهای شخص ثالث و اسکریپتهای پسزمینه استفاده میشوند. علاوهبراین، لاگها دادههای ارزشمندی را در اختیار توسعهدهندگان قرار میدهند تا مسائل مربوط به عملکرد را آنالیز کنند و یا سایر مسائل را سریعتر حل کنند.
لاگهای سیستمی لینوکس حاوی اطلاعاتی در مورد درایورها و فرایندهای سیستمی ذخیره شده در /var/log هستند که از طریق دسترسی به خط فرمان یا با کمک سرویس service قابل دسترس است.
لاگهای تغییرات، تغییرات ذخیره شده در برنامه یا فایل را در طول زمان ثبت میکنند، درحالیکه لاگهای دسترسپذیری عملکرد سیستم، نرخ آپتایم و در دسترس بودن را ردیابی میکنند. لاگهای منابع برای ثبت مشکلات اتصال یا محدودیتهای ظرفیت استفاده میشوند.
دلایل اهمیت بررسی فایلهای لاگ سرور
لاگهای سرور فقط خطوطی دیجیتالی نیستند و برای صاحبان وبسایت، توسعهدهندگان و متخصصان امنیتی گنجینه ای ارزشمند محسوب میشوند. در اینجا تا حدود به قدرت لاگهای سرور میپردازیم:
آنالیز وبسایت
- درک رفتار کاربر: لاگهای دسترسی نشان میدهد که کاربران چگونه وبسایت شما را مرور میکنند، از چه صفحاتی بیشتر بازدید میکنند و چه مدت در هر صفحه میمانند. این دادهها به شما امکان میدهد تا لیاوت وبسایت، استراتژی محتوا و تجربه کاربری را بهینهسازی کنید.
- ردیابی الگوی ترافیک: لاگهای سرور بینشی در مورد روند ترافیک وبسایت ارائه میدهد و به شما امکان میدهد تا زمانهای اوج استفاده، دموگرافی کاربر و منابع بالقوه ترافیک (موتورهای جستوجو، رسانههای اجتماعی) را شناسایی کنید. این اطلاعات میتواند کمپینهای بازاریابی و تخصیص منابع وبسایت را در مسیر درست هدایت کند.
- بهبود عملکرد وبسایت: لاگهای خطا مشکلاتی مانند لینکهای شکسته، بارگذاری کند و خطاهای سرور که عملکرد وبسایت را مختل کردهاند مشخص میکنند. با پرداختن به این مسائل میتوانید تجربه کاربری روان و کارآمدی را تضمین کنید.
امنیت و عیبیابی
لاگهای امنیتی مانند یک پرچم قرمز عمل میکنند و به شما در مورد فعالیتهای مشکوک مانند تلاشهای دسترسی غیرمجاز، آلودگی بدافزار و نقصهای احتمالی هشدار میدهند. لاگهای امنیتی این امکان را به شما میدهند تا اقدامات پیشگیرانهای را برای محافظت از وبسایت و دادههای کاربران خود انجام دهید.
- عیبیابی مشکلات سرور: لاگهای خطا گزارشهای ارزشمندی را در هنگام عیبیابی خرابی سرور ارائه میدهند. با آنالیز پیامهای خطا، میتوانید علت اصلی را مشخص کرده و روند حل آنها را تسریع کنید.
- انطباق و حسابرسی: لاگهای سرور میتوانند به عنوان یک مسیر حسابرسی برای قوانینی مانند HIPAA یا PCI DSS عمل کنند. آنها میتوانند مطابقت با پروتکلهای امنیتی داده را نشان دهند و در صورت بروز خطا، بررسی را تسهیل کنند.
چگونه فایلهای لاگ سرور را پیدا کنیم؟
در سرور مجازی ارزان که اغلب سرور لینوکس هستند، این فایلها بر روی هارد دیسک یا SSD سرور اصلی ذخیره میشوند و اغلب در دایرکتوری روت هاست به نام پوشه system logs در دسترس قرار دارد. مکان دقیق به سیستمعامل بستگی دارد:
برای کاربران اوبونتو یا دبیان، لاگ فایل اصلی در مسیر under /var/log/syslog ذخیره میشود و لاگهای سیستمی boot, nginx, MySQL را میتوان در آنجا پیدا کرد.
برای CentOS یا Fedora این فایل در مسیر /VAR/LOG/ است. در اینجا میتوانید لاگهای errors ،accesses ،system boots و بقیه نرمافزارها را بیابید.
برای ویندوز بسیار سادهتر است و پس از خرید سرور مجازی ایران کافی است از طریق کنترل پنل به View logs and events برنامه بروید و مستقیما لاگهای سیستم را پیدا کنید.
بهطور کلی، یافتن لاگهای سیستم مشکل نیست، اما همه افراد نمیتوانند آنها را به درستی بخوانند و درک کنند. در بخش بعدی بیشتر درباره آن صحبت خواهیم کرد.
دلیل نظارت بر فایلهای لاگ و نحوه صحیح خواندن آنها
لاگها حاوی اطلاعات مهمی در مورد خرابی سرور، افزایش ناگهانی بار، عملکرد ناکافی و موارد دیگر هستند. در اینجا شما میتوانید نشانههای مستقیم و غیرمستقیم از تلاش برای هک، ارسال هرزنامه و … را بیابید. حائز اهمیت است که بتوانید این فایلها را به درستی تجزیهوتحلیل کنید تا بتوانید اقدامات به موقع را به منظور بهبود سرور و اطمینان از امنیت سطح بالا فراهم کنید.
هر لاگ دارای یک ساختار شفاف با اطلاعات رمزنگاریشده در مورد ماهیت رخداد است. برای مثال، به ساختار استاندارد فایل access_log نگاهی میاندازیم:
102.102.102.102 - - [02/Feb/2022:12:00:00 +0100] "GET /wp-includes/feed.php HTTP/2.0" 200 - "-" "Chrome/6.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
102.102.102.102.102: آدرس IP که درخواست از آنجا آمده است.
[02/Feb/2022:12:00:00 +0100]: تاریخ و زمان رویداد
GET: متد درخواست؛
/wp-includes/feed.php: شئی درخواستی؛
HTTP/2.0: پروتکل؛
200: کد پاسخ سرور
Chrome/6.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 .: دادههای بازدیدکننده.
ساختار فایلهای لاگ بسته به سیستمعامل متفاوت خواهند بود، بنابراین هیچ راهنمای کلی برای آن وجود ندارد. در واقع شما باید همهچیز را بهصورت فردی بیاموزید. برای ویندوز سرور همهچیز بسیار ساده است لاگین در قالب یک جدول با ساختاری هوشمند و آسان انجام میشود. بهصورت کلی، یادگیری استفاده از فایلهای لاگ ترکیبی از تئوری و عمل است و بهراحتی میتوانید لاگهای سرورريال از لاگهای ایمیل گرفته تا لاگهای بوت را بخوانید.
بررسی فایلهای لاگ در سرور مجازی
برای دسترسی به لاگهای سیستم، ابتدا شما نیاز دارید تا به سرور از طریق SSH متصل شوید و سپس یک سری از دستورات را در کنسول وارد کنید:
cd logs.ls -all.
با اجرای این دستور محتویات پوشه logs برای شما نمایش داده میشود. بنابراین، تنها کاری که باید انجام دهید این است که فایل را باز کرده و شروع به تحلیل آن کنید. به منظور آسانتر کردن جمعآوری و مشاهده لاگهای سرور، بسیاری از مدیران از نرمافزارهای مخصوصی مانند Paessler PRTG ،Papertrail ،Loggly یا XpoLog استفاده میکنند.