آیا تا به حال مجبور به تجزیه و تحلیل لاگ های مربوط به وب سرورهای IIS برای معیارهای خاص شده اید؟ این قضیه می تواند کاملاً دردناک و وقت گیر باشد!
وب سرور Microsoft IIS از یک قالب فایل برای لاگ هایش استفاده می کند که به ندرت دیده می شود. لاگ های IIS از یک قالب فایل با فضای محدود استفاده می کنند و همچنین حاوی خط های comment شده هستند. عناوین ستون ها در قسمت comment شده، تعریف شده است. در این مقاله ، ما می خواهیم نگاهی به نحوه تفسیر پرونده های ورود به سیستم IIS بیندازیم.
نحوه تفسیر قالبهای ورود به سیستم IIS
در اینجا چند نکته اصلی وجود دارد که باید در مورد قالب های ورود به سیستم IIS بدانید :
- IIS ممکن است فایل های لاگ را براساس روز، ساعت و سایت ساخته شده، ایجاد کند
- خطوطی که با # شروع می شوند، comment هستند
- هر بار که IIS مجدداً راه اندازی شود، در فایل لاگ نسخه فعلی، تاریخ و فیلدهایی که در زیر آورده شده اند را می نویسد
- فایل در قالب یک فایل با فرمت فضای محدود شده است
- فیلدهایی که هیچ مقداری ندارند ، با (-) نشان داده می شوند، زیرا فضاها مجاز نیستند
در زیر مثالی از شکل خروجی یک لاگ IIS آورده شده است. این یک مثال بسیار ساده از یک صفحه وب ASP.NET است که قابل دسترسی است. می بینید که این صفحه همچنین برخی از پرونده های JavaScript و CSS را بارگیری می کند. این مثال عنوان ستون ها و یک خط را نشان می دهد. اینجا به صورت خلاصه نشان داده می شود، زیرا کامل آن طولانی است.
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2016-09-13 21:45:10 ::1 GET /webapp2 – 80 – ::1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/52.0.2743.116+Safari/537.36 – 500 0 0 5502
فیلدهای موجود در لاگ :
Default | Description | Appears As | Field |
Y | The date on which the activity occurred | date | Date |
Y | The time, in coordinated universal time (UTC), at which the activity occurred | time | Time |
Y | The IP address of the client that made the request | c-ip | Client IP Address |
Y | The name of the authenticated user who accessed your server. Anonymous users are indicated by a hyphen | cs-username | User Name |
N | The Internet service name and instance number that was running on the client | s-sitename | Service Name and Instance Number |
N | The name of the server on which the log file entry was generated | s-computername | Server Name |
Y | The IP address of the server on which the log file entry was generated | s-ip | Server IP Address |
Y | The server port number that is configured for the service | s-port | Server Port |
Y | The requested action, for example, a GET method | cs-method | Method |
Y | The target of the action, for example, Default.htm | cs-uri-stem | URI Stem |
Y | The query, if any that the client was trying to perform. A Universal Resource Identifier (URI) query is necessary only for dynamic pages | cs-uri-query | URI Query |
Y | The HTTP status code | sc-status | HTTP Status |
N | The Windows status code | sc-win32-status | Win32 Status |
N | The number of bytes that the server sent | sc-bytes | Bytes Sent |
N | The number of bytes that the server received | cs-bytes | Bytes Received |
N | The length of time that the action took, in milliseconds | time-taken | Time Taken |
N | The protocol version —HTTP or FTP —that the client used | cs-version | Protocol Version |
N | The host header name, if any | cs-host | Host |
Y | The browser type that the client used | cs(User-Agent) |
User Agent |
N | The content of the cookie sent or received if any | cs(Cookie) | Cookie |
N | The site that the user last visited. This site provided a link to the current site | cs(Referrer) | Referrer |
Y | The sub status error code | sc-substatus | Protocol Substatus |
نحوه شخصی سازی پرونده های ورود به سیستم IIS
IIS تنظیماتی را برای شخصی سازی لاگ های IIS، در کنسول IIS Manager فراهم می کند. می توانید آنها را در قالب پیش فرض W3C بگذارید یا از قالب های پرونده های IIS ، NCSA یا سفارشی استفاده کنید.
شما همچنین می توانید نحوه برگرداندن لاگ ها را مشخص کنید. این تعیین می کند که آیا یک لاگ جدید به صورت ساعتی ، روزانه ، هفتگی و غیره ایجاد می شود. همچنین می توانید به جای آن حداکثر اندازه لاگ را تعیین کنید.
فیلد هایی که وارد لاگ می شوند نیز می توانند سفارشی شوند. شما می توانید زمینه هایی را که نیازی ندارید حذف کنید ، از برخی فیلد های اختیاری انتخاب کنید یا حتی مال خود را ایجاد کنید. قسمتهای سفارشی باید مقادیری باشند که در هدرهای HTTP یا از متغیرهای سرور موجود باشند.
نحوه تجزیه و تحلیل لاگ های IIS با استفاده از Log Parser Studio
Log Parser Studio یک ابزار خارق العاده است که دقیقاً برای تجزیه و تحلیل لاگ طراحی شده است. می تواند با استفاده از SQL با query ، قالب های مختلف انواع فایل را تجزیه کند.
برخی از ویژگی های آن عبارتند از:
- امکان تجزیه انواع فرمت های لاگ از جمله W3SVC / IIS ، CSV ، HTTP و غیره
- query زدن روی لاگ فایل ها همانند sql
- گزارش تولید کنید
- یک اسکریپت PowerShell حاوی query خود ایجاد کنید
نصب Log Parser Studio
- فریم ورک Log Parser را از لینک زیر دانلود و نصب کنید:
- Log Parser Studio GUI را از لینک زیر دانلود و اجرا کنید:
نمایش سریع
در اینجا یک مثال سریع نشان داده شده است که انجام آن در Log Parser Studio آسان است.
- Log Parser Studio را باز کنید.
- لاگ های گزارش را که می خواهید آنالیز کنید را انتخاب کنید.
- یک query جدید بسازید.
- نوع لاگ های خود را مشخص کنید – در مورد ما لاگ های IIS.
- query را اجرا کنید و نتیجه را به همراه گزارش ببینید.
نتیجه
Log Parser یکی از برنامه های کاربردی بسیار خوبی است که هر توسعه دهنده ای باید به کیف ابزار خود اضافه کند. قطعاً ارزش دیدن دارد!
“I’m a self-motivated and curious person with a weapon named “search
👍👍
🙏🏻