PDA

View Full Version : چطور از فایلهای LOG روی سرور استفاده کنیم؟



javad3151
دوشنبه 19 تیر 1385, 10:24 صبح
سلام
یک سایت دارم و سرور اطلاعات مربوط به مراجعه کنندگان به سایت را در فایلهایی با پسوندlog ذخیره میکنه. ولی این اطلاعات خیلی شلوغ و درهم هستش . چطور میشه از این اطلاعات (مثلا برای آمار بازدیدکنندگان از سایت و صفحات مختلف ، مدت زمان حضور شخص در سایت و... ) استفاده کرد؟ کد خاصی یا برنامه خاصی نیاز داره ؟ اگر اطلاعاتی دراین مورد بدید ممنون میشم

ghafoori
دوشنبه 19 تیر 1385, 12:55 عصر
فایلهای log را دراینجا بزاز ببینیم چیکار میشود کرد

Behrouz_Rad
دوشنبه 19 تیر 1385, 16:25 عصر
فایل های Log، فایل های متنی ساده ای هستند که کلیه ی درخواست های ارسال شده به سرور رو در خود ثبت می کنند.
هر درخواست، در یک خط مجزا در فایل Log نوشته میشه. (این یک استاندارد هست)
می تونی برای دیدن محتویات این فایل ها، از Notepad و یا هر ویرایشگر متنی دیگه ای
استفاده کنی.
نکته ی مهمی که باید به اون توجه داشته باشی اینه که اگر در حین اعمال نوشتاری سرور
در فایل Log مربوطه، سعی در خواندن فایل بکنی، ممکنه با خطا مواجه بشی و یا در
عملکرد نوشتاری سرور مشکل به وجود بیاد!
برای جلوگیری از بروز این مشکل، بهترین حالت این هست که سرور اقدام به ایجاد یک فایل

به ازای هر روز فعالیت سایت بکنه. در این صورت می تونی با خوندن فایل (های) Log روز(های) گذشته و بی خیال شدن آمار روز جاری، آمارهای دلخواهت رو استخراج کنی...
به عنوان مثال، یکی از فایل های Log نمونه که توسط IIS ایجاد میشه رو می تونی در مسیر
زیر مشاهده کنی:


drive:\WINDOWS\system32\Logfiles\W3SVC1\

به عنوان مثال، ممکنه در یکی از خطوط فایل Log، عبارتی اینچنین مشاهده کنی:


00:25:08 100.216.65.72 HEAD /submit.aspx |33|80004005|[Microsoft]

[ODBC_Driver_Manager]

_Data_source_name_not_found_and_no_default_driver_ specified 200

خطای فوق نشون میده که درایور مربوط به بانک اطلاعاتی مورد استفاده به وسیله ی
برنامه، بر روی سیستم نصب نشده!

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

موفق باشید.

javad3151
چهارشنبه 21 تیر 1385, 06:29 صبح
خیلی ممنون آقای راد
ولی برای خوندن اطلاعات از این فایلها باید یک استاندارد خاصی باشه(نمی دونم اصلا استاندارد هستند یانه؟ مثل فایهای XML ) ضمنا کنترل پنل سرور هم HELM هستش.
این هم بخشی از فایل log:


#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2006-07-12 01:34:20
#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2006-07-12 01:34:19 W3SVC7367 BYONET-WIN1 67.15.59.123 GET /fa/nazar.aspx - 80 - 66.249.66.111 HTTP/1.1 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - - www.fr.gqomicis.com (http://www.fr.gqomicis.com) 200 0 0 5367 238 13703
2006-07-12 01:36:42 W3SVC7367 BYONET-WIN1 67.15.59.123 GET /default.aspx - 80 - 66.249.66.111 HTTP/1.1 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - - www.fr.gqomicis.com (http://www.fr.gqomicis.com) 200 0 0 31546 237 7140
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2006-07-12 03:04:02
#Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2006-07-12 03:04:02 W3SVC7367 BYONET-WIN1 67.15.59.123 GET /fa/anjoman.aspx - 80 - 66.249.66.111 HTTP/1.1 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - - www.fr.gqomicis.com (http://www.fr.gqomicis.com) 200 0 0 4937 240 10468
2006-07-12 03:04:44 W3SVC7367 BYONET-WIN1 67.15.59.123 GET /fa/calendar.aspx - 80 - 66.249.66.111 HTTP/1.1 Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html) - - www.fr.gqomicis.com (http://www.fr.gqomicis.com) 200 0 0 13223 241 671

Behrouz_Rad
چهارشنبه 21 تیر 1385, 11:46 صبح
مسلمه که استاندارد خاصی وجود داره!
همون طور که در پست قبلی هم گفتم:


هر درخواست، در یک خط مجزا در فایل Log نوشته میشه. (این یک استاندارد هست)

و اگر به محتویات فایل Log ای که گذاشتی دقت کنی، می بینی که دقیقا به همین شکل هست!
اما نوع ساختار فایل Log هست که تفاوت می کنه!
اگر به ساختار فایل Log ای که گذاشتی دقت کنی، با کمی دقت و زیرکی! متوجه میشی که نام فیلدها به ترتیب در مقابل عبارت :Fields# ذکر شده و مقدار هر فیلد نیز به ترتیب نام فیلدها در خطوط بعدی ذکر شدند.
به عنوان مثال برای اولین درخواست، مقدار فیلد Date برابر با 2006-07-12 و مقدار فیلد time به 01:34:19 و ... تنظیم شده.
به همین سادگی!
به ازای هر درخواست (کلیه ی درخواست های یک کاربر را یک درخواست حساب می کنیم)، ساختاری اینچنینی در فایل Log ایجاد شده:


#Version: 1.0
#Date: the Date
#Fields: Fields Name
Values of Field
Values of Field


توضیحات فوق، نمونه ای از صدق گفتار بنده در پست قبلی است:


پس باید با شناخت نوع ساختار ذخیره سازی فایل Log توسط نرم افزار مربوطه، اقدام به
استخراج اطلاعات مورد نظرت بکنی.

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

موفق باشید.