تمكين تسجيل التشخيص للتطبيقات في Azure App Service

يوضح لك هذا الفيديو كيفية تمكين تسجيل التشخيص للتطبيقات.

يتم أيضا وصف الخطوات الواردة في الفيديو في الأقسام التالية.

نظرة عامة

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

تستخدم هذه المقالة مدخل Microsoft Azure وAzure CLI للعمل مع سجلات التشخيص. للحصول على معلومات حول العمل مع سجلات التشخيص باستخدام Visual Studio، راجع استكشاف أخطاء Azure وإصلاحها في Visual Studio.

إشعار

بالإضافة إلى إرشادات التسجيل في هذه المقالة، هناك إمكانية تسجيل جديدة ومتكاملة باستخدام Azure Monitoring. ستجد المزيد حول هذه الإمكانية في قسم إرسال السجلات إلى Azure Monitor.

نوع النظام الأساسي الموقع ‏‏الوصف
تسجيل التطبيق Windows, Linux نظام ملفات App Service وكائنات Azure Storage أو أيٍ منهما تسجيل الرسائل التي أنشأتها تعليمات تطبيقك البرمجية. يمكن إنشاء الرسائل بواسطة إطار عمل الويب الذي تختاره، أو من تعليمات تطبيقك البرمجية مباشرةً باستخدام نمط التسجيل القياسي للغتك. تُعيَّن كل رسالة واحدة من الفئات التالية: حرجة، وخطأ، وتحذير، ومعلومات، وتتبع الأخطاء، وتتبع. يمكنك تحديد مدى الإسهاب الذي تريده للتسجيل عن طريق تعيين مستوى الخطورة عند قيامك بتمكين تسجيل التطبيق.
تسجيل خادم ويب Windows نظام ملفات App Service أو كائنات Azure Storage بيانات طلب HTTP الأولية بتنسيق ملف السجل الموسع W3C. تتضمن كل رسالة سجل بيانات مثل طريقة HTTP ومورد URI للمورد وعنوان IP للعميل ومنفذ العميل وعامل المستخدم ورمز الاستجابة وما إلى ذلك.
رسائل خطأ مفصلة Windows نظام ملفات App Service نسخ من صفحات الخطأ .htm التي قد أُرسِلت إلى مستعرض العميل. لأسباب أمنية، لا يجب إرسال صفحات الأخطاء التفصيلية إلى العملاء في مرحلة التشغيل، ولكن يمكن لـ App Service حفظ صفحة الخطأ في كل مرة يحدث فيها خطأ في التطبيق يحتوي على تعليمة HTTP 400 البرمجية أو أكثر. قد تحتوي الصفحة على معلومات يمكن أن تساعد في تحديد سبب إرجاع الخادم لرمز الخطأ.
فشل تتبع الطلب Windows نظام ملفات App Service معلومات التتبع التفصيلية عن الطلبات الفاشلة، بما في ذلك تتبع مكونات IIS المستخدمة لمعالجة الطلب والوقت المستغرق في كل مكون. إنه مفيد إذا كنت ترغب في تحسين أداء الموقع أو عزل خطأ HTTP معين. يتم إنشاء مجلد واحد لكل طلب فاشل، والذي يحتوي على ملف سجل XML، وورقة أنماط XSL لعرض ملف السجل باستخدامه.
تسجيل التوزيع Windows, Linux نظام ملفات App Service سجلات لوقت نشر المحتوى إلى أحد التطبيقات. تسجيل التوزيع يحدث تلقائياً ولا توجد إعدادات قابلة للتكوين لتسجيل التوزيع. يساعدك على تحديد سبب فشل التوزيع. على سبيل المثال، إذا كنت تستخدم برنامجاً نصياً للتوزيع المخصص، فقد تستخدم تسجيل التوزيع لتحديد سبب فشل البرنامج النصي.

عند تخزينها في نظام ملفات App Service، تخضع السجلات للتخزين المتاح لمستوى التسعير الخاص بك (راجع حدود App Service).

إشعار

توفر خدمة التطبيقات أداة تشخيص تفاعلية مخصصة لمساعدتك في استكشاف أخطاء التطبيق وإصلاحها. لمزيد من المعلومات، راجع نظرة عامة على تشخيصات Azure App Service.

بالإضافة إلى ذلك، يمكنك استخدام خدمات Azure الأخرى لتحسين إمكانيات التسجيل والمراقبة لتطبيقك، مثل Azure Monitor.

تمكين سجل التطبيقات (Windows)

لتمكين تسجيل التطبيقات لتطبيقات Windows في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد App Service logs.

حدد On إما لسجل التطبيقات (Filesystem) أو لسجل التطبيقات (Blob)أو لكليهما.

يُعد خيار Filesystem مخصصاً لأغراض تصحيح الأخطاء المؤقت ثم إيقاف تشغيله تلقائياً في 12 ساعة. يُعد خيار Blob مخصصاً للتسجيل طويل الأجل، ويحتاج إلى حاوية تخزين blob لكتابة السجلات إليها. يشتمل خيار Blob أيضاً على معلومات إضافية في رسائل السجل، مثل معرف مثيل الجهاز الظاهري الأصلي لرسالة السجل (InstanceId) ومعرف سلسلة الرسائل (Tid) وطابع زمني أكثر دقة (EventTickCount).

إشعار

حالياً يمكن كتابة سجلات تطبيق NET. فقط في وحدة تخزين البيانات الثنائية الكبيرة. لا يمكن تخزين سجلات تطبيقات Java وPHP وNode.js وPython إلا على نظام ملفات App Service (دون تعديلات التعليمة البرمجية لكتابة السجلات في وحدة التخزين الخارجية).

أيضاً، إذا قمت بإعادة إنشاء مفاتيح الوصول لحساب التخزين الخاص بك، فيجب عليك إعادة تعيين تكوين التسجيل المعني لاستخدام مفاتيح الوصول المحدثة. للقيام بذلك:

  1. في علامة التبويب Configure، اضبط ميزة التسجيل المعنية على Off. حفظ الإعداد الخاص بك.
  2. قم بتمكين تسجيل الدخول إلى blob لحساب التخزين مرة أخرى. حفظ الإعداد الخاص بك.

حدد Level، أو مستوى التفاصيل لتسجيل الدخول. يوضح الجدول التالي فئات السجل المضمنة في كل مستوى:

المستوى الفئات المضمنة
Disabled بلا
خطأ خطأ، حرجة
التحذير تحذير، خطأ، حرجة
معلومات معلومات، تحذير، خطأ، حرجة
مطول تتبع، تتبع الأخطاء، معلومات، تحذير، خطأ، حرجة (جميع الفئات)

عند الانتهاء، حدد حفظ.

إشعار

إذا كتبت سجلات إلى blobs، فلن يتم تطبيق نهج الاحتفاظ بعد الآن إذا حذفت التطبيق مع الاحتفاظ بالسجلات في blobs. لمزيد من المعلومات، راجع التكاليف التي قد تتراكم بعد حذف المورد.

تمكين سجل التطبيقات (Linux/Container)

لتمكين تسجيل التطبيق لتطبيقات Linux أو الحاويات المخصصة في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد App Service logs.

في Application logging، حدد File System.

في Quota (MB)، حدد الحصة النسبية للقرص لسجلات التطبيقات. في Retention Period (Days) عيِّن عدد الأيام التي يجب الاحتفاظ فيها بالسجلات.

عند الانتهاء، حدد حفظ.

تمكين تسجيل خادم الويب

لتمكين تسجيل خادم الويب لتطبيقات Windows في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد App Service logs.

لتسجيل خادم ويب، حدد Storage لتخزين سجلات على تخزين الكائن الثنائي كبير الحجم أو File System لتخزين السجلات على نظام ملفات App Service.

في Retention Period (Days) عيِّن عدد الأيام التي يجب الاحتفاظ فيها بالسجلات.

إشعار

إذا قمت بإعادة إنشاء مفاتيح الوصول لحساب التخزين، فتجب إعادة تعيين تكوين التسجيل المعني لاستخدام المفاتيح المحدثة. للقيام بذلك:

  1. في علامة التبويب Configure، اضبط ميزة التسجيل المعنية على Off. حفظ الإعداد الخاص بك.
  2. قم بتمكين تسجيل الدخول إلى blob لحساب التخزين مرة أخرى. حفظ الإعداد الخاص بك.

عند الانتهاء، حدد حفظ.

إشعار

إذا كتبت سجلات إلى blobs، فلن يتم تطبيق نهج الاحتفاظ بعد الآن إذا حذفت التطبيق مع الاحتفاظ بالسجلات في blobs. لمزيد من المعلومات، راجع التكاليف التي قد تتراكم بعد حذف المورد.

تسجيل الأخطاء التفصيلية

لحفظ صفحة الخطأ أو تتبع الطلبات الفاشلة لتطبيقات Windows في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد App Service logs.

ضمن Detailed Error Logging أو Failed Request Tracing، حدد On، ثم حدد Save.

يتم تخزين كلا النوعين من السجلات في نظام ملفات خدمة التطبيقات. يتم الاحتفاظ بما يصل إلى 50 خطأ (ملفات/مجلدات). عندما يتجاوز عدد ملفات HTML 50، يتم حذف أقدم ملفات الأخطاء تلقائياً.

تقوم ميزة تتبع الطلبات الفاشلة افتراضياً بتسجيل سجل الطلبات التي فشلت مع رموز حالة HTTP بين 400 و600. لتحديد قواعد مخصصة، يمكنك تجاوز قسم <traceFailedRequests> في ملف web.config.

إضافة رسائل السجل في التعليمات البرمجية

في التعليمات البرمجية الخاصة بتطبيقك، يمكنك استخدام مرافق التسجيل المعتادة لإرسال رسائل السجل إلى سجلات التطبيقات. على سبيل المثال:

  • يمكن لتطبيقات ASP.NET استخدام فئة System.Diagnostics.Trace لتسجيل المعلومات في سجل تشخيص التطبيق. على سبيل المثال:

    System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
    

    بشكل افتراضي، يستخدم ASP.NET Core موفر تسجيل Microsoft.Extensions.Logging.AzureAppServices. لمزيد من المعلومات، راجع تسجيل ASP.NET Core في Azure. للحصول على معلومات حول تسجيل WebJobs SDK، راجع بدء استخدام Azure WebJobs SDK

  • يمكن لتطبيقات Python استخدام حزمة OpenCensus لإرسال السجلات إلى سجل تشخيص التطبيق.

سجلات التدفق

قبل دفق السجلات في الوقت الفعلي، بادر بتمكين نوع السجل الذي تريده. يتم دفق أي معلومات مكتوبة إلى إخراج وحدة التحكم أو الملفات التي تنتهي .txt أو .log أو .htm المخزنة في الدليل /home/LogFiles (D:\home\LogFiles) بواسطة App Service.

إشعار

تكتب بعض أنواع المخزن المؤقت للتسجيل في ملف السجل، مما قد ينتج عنه أحداث خارج الترتيب في الدفق. على سبيل المثال، قد يُعرض إدخال سجل التطبيقات الذي يحدث عندما يزور مستخدم إحدى الصفحات في الدفق قبل إدخال سجل HTTP المقابل لطلب الصفحة.

في مدخل Microsoft Azure

لدفق السجلات في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد Log stream.

في Cloud Shell

لدفق السجلات مباشرة في Cloud Shell، استخدم الأمر التالي:

هام

قد لا يعمل هذا الأمر مع تطبيقات الويب المستضافة في خطة خدمة تطبيقات Linux.

az webapp log tail --name appname --resource-group myResourceGroup

لتصفية أنواع سجلات معينة، مثل HTTP، استخدم معلمة - Provider. على سبيل المثال:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

في محطة محلية

لدفق السجلات في وحدة التحكم المحلية، ثبّت Azure CLI وسجّل الدخول إلى حسابك. بمجرد تسجيل الدخول، اتبع إرشادات Cloud Shell

الوصول إلى ملفات السجل

إذا بادرت بتكوين الخيار Azure Storage blobs لنوع سجل تحتاج إلى أداة عميل تعمل مع Azure Storage. لمزيد من المعلومات، راجع أدوات عميل Azure Storage.

بالنسبة للسجلات المخزنة في نظام ملفات App Service، فإن أسهل طريقة هي تنزيل ملف ZIP في المتصفح على:

  • حاويات Linux/المخصصة: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • تطبيقات Windows: https://<app-name>.scm.azurewebsites.net/api/dump

بالنسبة إلى حاويات Linux/المخصصة، يحتوي ملف ZIP على سجلات إخراج وحدة التحكم لكل من مضيف عامل الإرساء وحاوية عامل الإرساء. بالنسبة إلى تطبيق موسع، يحتوي ملف ZIP على مجموعة واحدة من السجلات لكل مثيل. في نظام ملفات App Service، ملفات السجل هذه هي محتويات الدليل /home/LogFiles.

بالنسبة لتطبيقات Windows، يحتوي ملف ZIP على محتويات الدليل D:\Home\LogFiles في نظام ملفات خدمة التطبيقات. لديها الهيكل التالي:

نوع السجل الدليل ‏‏الوصف
سجلات التطبيق /LogFiles/Application/ يحتوي على ملف نصي واحد أو أكثر. يعتمد تنسيق رسائل السجل على مزود التسجيل الذي تستخدمه.
عمليات تتبع الطلبات الفاشلة /LogFiles/W3SVC##########/ يحتوي على ملفات XML وملف XSL. يمكنك عرض ملفات XML المنسقة في المستعرض.
سجلات الأخطاء التفصيلية /LogFiles/DetailedErrors/ يحتوي على ملفات خطأ HTM. يمكنك عرض ملفات HTM في المتصفح.
هناك طريقة أخرى لعرض تتبع الطلبات الفاشلة وهي الانتقال إلى صفحة التطبيق في المدخل. من القائمة اليسرى، حدد Diagnose and solve problems، ثم ابحث عن Failed Request Tracing Logs، ثم انقر على الرمز لتصفح وعرض التتبع الذي تريده.
سجلات خادم الويب /LogFiles/http/RawLogs/ يحتوي على ملفات نصية منسقة باستخدام تنسيق ملف سجل W3C الموسع. يمكن قراءة هذه المعلومات باستخدام محرر نصوص أو أداة مساعدة مثل Log Parser.
لا تدعم خدمة التطبيقات الحقول s-computernameأو s-ipأو cs-version.
سجلات التوزيع / LogFiles/Git / و/ التوزيع / تحتوي على سجلات تم إنشاؤها بواسطة عمليات التوزيع الداخلية، بالإضافة إلى سجلات عمليات توزيع Git.

أرسل السجلات إلى Azure Monitor

باستخدام تكامل Azure Monitorالجديد، يمكنك إنشاء إعدادات التشخيص لإرسال السجلات إلى حسابات التخزين ومراكز الأحداث وتحليلات السجلات.

Diagnostic Settings

أنواع السجلات المدعومة

يوضح الجدول التالي أنواع وأوصاف السجلات المدعومة:

اسم السجل نوع السجل Windows حاوية Windows Linux حاوية Linux ‏‏الوصف
سجلات وحدة تحكم خدمة التطبيق AppServiceConsoleLogs Java SE & Tomcat ‏‏نعم‬ نعم ‏‏نعم‬ الإخراج القياسي والخطأ القياسي 3
سجلات HTTP AppServiceHTTPLogs ‏‏نعم‬ نعم نعم ‏‏نعم‬ سجلات خادم الويب
سجلات النظام الأساسي لبيئة خدمة التطبيقات سجلات النظام الأساسي لبيئة خدمة التطبيقات ‏‏نعم‬ غير متوفر نعم ‏‏نعم‬ بيئة App Service: التحجيم وتغييرات التكوين وسجلات الحالة
سجلات تدقيق الوصول سجلات تدقيق الوصول ‏‏نعم‬ نعم نعم ‏‏نعم‬ نشاط تسجيل الدخول عبر FTP وKudu
سجلات تدقيق تغيير محتوى الموقع AppServiceFileAuditLogs ‏‏نعم‬ ‏‏نعم‬ TBA TBA تغييرات الملف التي تم إجراؤها على محتوى الموقع؛ متاح فقط للمستوى المميز وما فوق
سجلات تطبيق خدمة التطبيقات AppServiceAppLogs ASP.NET و.NET Core وTomcat 1 ASP.NET و تومكات 1 .NET Core, Java, SE & Tomcat Blessed Images 2 Java SE و Tomcat Blessed Images 2 سجلات التطبيق 3
سجلات تدقيق IPSecurity سجلات تدقيق IPSec لخدمة التطبيقات ‏‏نعم‬ نعم نعم ‏‏نعم‬ طلبات من قواعد بروتوكول الإنترنت
سجلات نظام خدمة التطبيقات سجلات نظام خدمة التطبيقات TBA ‏‏نعم‬ نعم ‏‏نعم‬ سجلات عمليات الحاوية
تقرير سجلات تدقيق مكافحة الفيروسات AppServiceAntivirusScanAuditLogs 4 ‏‏نعم‬ نعم نعم ‏‏نعم‬ سجلات الفحص لمكافحة الفيروسات باستخدام Microsoft Defender for Cloud؛ متاح فقط للطبقة المميزة

1 بالنسبة إلى تطبيقات Tomcat، أضف TOMCAT_USE_STARTUP_BAT إلى إعدادات التطبيق واضبطه على false أو 0. يجب أن تكون على أحدث إصدار من Tomcat وأن تستخدم java.util.logging.

2 بالنسبة لتطبيقات Java SE، أضف WEBSITE_AZMON_PREVIEW_ENABLED إلى إعدادات التطبيق واضبطه على true أو إلى 1.

3 يتم تعيين حد التسجيل الحالي إلى 100 سجل في الدقيقة.

4 لا يزال نوع سجل AppServiceAntivirusScanAuditLogs قيد المعاينة حاليا

اعتبارات الشبكات

للحصول على قيود الإعدادات التشخيصية، راجع وثائق الإعدادات التشخيصية الرسمية المتعلقة بحدود الوجهة.

الخطوات التالية