كيفية استخدام SQL Server لتحليل سجلات ويب

ملخص

يوفر ملقم/خدمات معلومات إنترنت بين عدد من تنسيقات لجمع البيانات في شكل سجلات ويب. للمواقع مشغولاً، هذه الملفات البسيطة المستندة إلى نص في وقت أصبحت الكثير من العبء لمراجعة ويتم تجاهلها. أفضل طريقة لمراجعة البيانات سيجعل هذه السجلات أفضل مورد للمسؤولين والماجستير.


توضح هذه المقالة طريقة لاستيراد سجلات IIS في تنسيق "موسع تسجيل جمعية شبكة إنترنت العالمية" (W3C) إلى Microsoft SQL Server لتيسير استعراض ملفات سجل IIS. يمكن أيضا تغيير الأساليب المتوفرة لتنسيقات ملف السجل.

مزيد من المعلومات

سجلات الويب ملفات نصية محددة كما هو محدد في RFC 2616 "النص التشعبي نقل بروتوكول--HTTP/1.1" (http://www.rfc-editor.org/rfc/rfc2616.txt).

يتم تنسيق W3C Extended تسجيل الحقول يفسر بعض الشيء نفسه: من البيانات ووقت فقط على ما يبدو؛ ج-ip هو عنوان IP للعميل؛ خدمات العملاء-الأسلوب هو أسلوب HTTP لطلب التي تم تحقيقها؛ [cs uri-الجذعية] المستند الذي تم طلب؛ [cs uri استعلام] سلسلة الاستعلام التي تم إرسالها كجزء من طلب تسجيل؛ sc-الحالة هو رمز الحالة التي تم إرجاعها من قبل الملقم؛ sc-بايت عدد وحدات البايت التي تم إرجاعها إلى المستخدم; [تتخذ وقت] الوقت بالمللي ثانية الذي استغرق للخادم لإكمال معالجة الطلب؛ [cs(Cookie)] هو ملف تعريف الارتباط أو البيانات المستمرة في الطلب؛ و [cs(Referer)] هو عنوان URL للموقع السابق زيارتها بواسطة المستخدم. لتنسيق W3C Extended تسجيل، هناك عدد من الحقول الإضافية التي يمكن اختيارها، التي تم وصفها في تعليمات IIS وفي موقع Microsoft التالي على الويب:

يتم تنسيق السجلات كما يلي:

التاريخالوقتج-الملكية الفكريةأسلوب cscs uri الجذعيةcs uri الاستعلامحالة اتفاقية استكهولمبايت scوقت الالتقاطcs(User-Agent)cs(Cookie)cs(Referrer)


يقابل مجالات اختيار علامة التبويب خصائص موسعة في خصائص موقع ويب على علامة التبويب موقع ويب ، وفي حالة توسيع تسجيل W3C، رأس ملفات السجل. إذا كانت سجلات الويب الموجودة في أحد الجداول في Microsoft SQL Server، فمن المحتمل بسبب تسجيل الدخول إلى ODBC. ومع ذلك، عند استخدام ODBC تسجيل الحقول غير قابلة للتكوين. تعليمات IIS على إرشادات حول إعداد تسجيل الدخول إلى ODBC، ويتضمن ذلك استخدام Logtemp.sql لإنشاء الجدول في بنية المتوقعة.

يمكنك استخدام إدارة المؤسسة لإنشاء الجدول، ولكن لزيادة سرعة والمساعدة في التنفيذ التلقائي للعملية، بدلاً من ذلك استخدم البرنامج النصي التالي في "محلل استعلام" لإنشاء الجدول:

CREATE TABLE [dbo].[tablename] ([date] [datetime] NULL,
[time] [datetime] NULL ,
[c-ip] [varchar] (50) NULL ,
[cs-method] [varchar] (50) NULL ,
[cs-uri-stem] [varchar] (255) NULL ,
[cs-uri-query] [varchar] (2048) NULL ,
[sc-status] [int] NULL ,
[sc-bytes] [int] NULL ,
[time-taken] [int] NULL ,
[cs(User-Agent)] [varchar] (255) NULL ,
[cs(Cookie)] [varchar] (2048) NULL ,
[cs(Referer)] [varchar] (2048) NULL
)


لاحظ أن بعض هذه الحقول هي كبيرة جداً وقد لا يكون ضروريا لمراجعة ملفات سجل معين.

بمجرد اكتمال إنشاء الجدول، يمكنك استيراد البيانات باستخدام "معالج الاستيراد" تعيين من الملف *.log إلى قاعدة البيانات والجدول.

استخدام المعالج شاقة، حيث التالية يمكن استخدامها للإسراع باستيراد سجلات ويب:

BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'WITH (
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)


لاحظ أن إدراج مجمع ستفشل عندما يواجه الأسطر التي تبدأ ب "#". بالنسبة لسجلات ويب، يتضمن هذا الأسطر الأربعة الأولى، بالإضافة إلى حالات أخرى عندما تتوقف ثم بدأت منذ كتابة سطور رأس عند إعادة تشغيل الخدمة الملقم. مقالة "قاعدة معارف Microsoft" التالية توفر الأداة المساعدة والتعليمات البرمجية المصدر لإزالة هذه الخطوط وإعداد السجل لإدراج المجمعة إلى ملقم SQL:

ملف 296093 : تعد الأداة المساعدة بريبويبلوج سجلات IIS لإدراج SQL المجمعة
عند اكتمال عملية الاستيراد، يمكنك استخدام "محلل استعلام" لتشغيل استعلامات لتنظيم البيانات. على سبيل المثال:

Select [cs-uri-stem], [time-taken] from tablename where [time-taken] >= 20000 and time between '1899-12-30 16:30:00.000' and '1899-12-30 17:30:00.000' 
سيعرض هذا الاستعلام أسماء كافة الصفحات التي استغرق أكثر من 20 ثانية لمعالجة والتي تمت معالجتها بين 4:30 و 5:30 مساء، جنبا إلى جنب مع وقت المعالجة (بالمللي ثانية) لكل.

لاحظ أن قبل المسجلة في توقيت جرينتش سجلات ويب الافتراضي، حتى إلا التغييرات التي أجريت لتسجيل السجلات بالتوقيت المحلي، يجب تعديل للتوقيت المحلي عند مراجعة السجلات.

آخر نموذج الاستعلام:
Select distinct [cs-uri-stem], [time-taken] from tablename where [time-taken] > (select avg([time-taken]) from tablename)order by [time-taken] desc
هذا الاستعلام وإيجاد المتوسط [وقت-أخذ] لكل إدخال في ملف السجل، ثم يحدد [cs-uri-الذراع] وفي [وقت-أخذ] وينظم ذلك في ترتيب تنازلي حسب [أخذ الوقت]. ويمكن إضافة عبارة "وقت بين" تزيد من عزلة نتائج هذا الاستعلام.

المراجع

ملاحظة: لن تعمل إدراج المجمعة مع SQL Server 7.0، لكن العمل مع SQL Server 2000. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

الخطأ 272292 : خطأ 7399 عند المجمع إدراج في جدول باستخدام العمود الافتراضي على عمود عشري أو رقمي
لمزيد من المعلومات حول لوكالتيميرولوفير لسجلات IIS والإعداد لوجفيليلوكالتيميرولوفير:

خصائص

رقم الموضوع: 296085 - آخر مراجعة: 18‏/01‏/2017 - المراجعة: 1

تعليقات