تمكين تسجيل التشخيص للتطبيقات في Azure App Service
إشعار
بدءا من 1 يونيو 2024، سيكون لجميع تطبيقات App Service التي تم إنشاؤها حديثا خيار إنشاء اسم مضيف افتراضي فريد باستخدام اصطلاح <app-name>-<random-hash>.<region>.azurewebsites.net
التسمية . ستظل أسماء التطبيقات الحالية دون تغيير.
مثال: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
لمزيد من التفاصيل، راجع اسم المضيف الافتراضي الفريد لمورد App Service.
يوضح لك هذا الفيديو كيفية تمكين تسجيل التشخيص للتطبيقات.
يتم أيضا وصف الخطوات الواردة في الفيديو في الأقسام التالية.
نظرة عامة
توفر Azure تشخيصات مضمنة للمساعدة في تصحيح أخطاء تطبيق خدمة التطبيقات. في هذه المقالة، ستتعلم كيفية تمكين التسجيل التشخيصي وإضافة أدوات إلى التطبيق الخاص بك، وكذلك كيفية الوصول إلى المعلومات المسجلة بواسطة Azure.
تستخدم هذه المقالة مدخل Microsoft Azure وAzure CLI للعمل مع سجلات التشخيص. للحصول على معلومات حول العمل مع سجلات التشخيص باستخدام Visual Studio، راجع استكشاف أخطاء Azure وإصلاحها في Visual Studio.
إشعار
بالإضافة إلى إرشادات التسجيل في هذه المقالة، يمكنك أيضا استخدام إمكانية التسجيل المتكامل ل Azure Monitor. ستجد المزيد حول هذه الإمكانية في قسم إرسال السجلات إلى 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 (دون تعديلات التعليمات البرمجية لكتابة السجلات إلى التخزين الخارجي).
أيضاً، إذا قمت بإعادة إنشاء مفاتيح الوصول لحساب التخزين الخاص بك، فيجب عليك إعادة تعيين تكوين التسجيل المعني لاستخدام مفاتيح الوصول المحدثة. للقيام بذلك:
- في علامة التبويب Configure، اضبط ميزة التسجيل المعنية على Off. حفظ الإعداد الخاص بك.
- قم بتمكين تسجيل الدخول إلى 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) عيِّن عدد الأيام التي يجب الاحتفاظ فيها بالسجلات.
إشعار
إذا قمت بإعادة إنشاء مفاتيح الوصول لحساب التخزين، فتجب إعادة تعيين تكوين التسجيل المعني لاستخدام المفاتيح المحدثة. للقيام بذلك:
- في علامة التبويب Configure، اضبط ميزة التسجيل المعنية على Off. حفظ الإعداد الخاص بك.
- قم بتمكين تسجيل الدخول إلى blob لحساب التخزين مرة أخرى. حفظ الإعداد الخاص بك.
عند الانتهاء، حدد حفظ.
إشعار
إذا كتبت سجلات إلى blobs، فلن يتم تطبيق نهج الاحتفاظ بعد الآن إذا حذفت التطبيق مع الاحتفاظ بالسجلات في blobs. لمزيد من المعلومات، راجع التكاليف التي قد تتراكم بعد حذف المورد.
تسجيل الأخطاء التفصيلية
لحفظ صفحة الخطأ أو تتبع الطلبات الفاشلة لتطبيقات Windows في مدخل Microsoft Azure، انتقل إلى التطبيق وحدد App Service logs.
ضمن تسجيل الأخطاء التفصيلية أو تتبع الطلبات الفاشلة، حدد تشغيل، ثم حدد حفظ.
يتم تخزين كلا النوعين من السجلات في نظام ملفات خدمة التطبيقات. يتم الاحتفاظ حتى 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 على سجلات إخراج وحدة التحكم لكل من مضيف Docker وحاوية Docker. بالنسبة إلى تطبيق موسع، يحتوي ملف ZIP على مجموعة واحدة من السجلات لكل مثيل. في نظام ملفات App Service، ملفات السجل هذه هي محتويات الدليل /home/LogFiles. يتم تخزين سجلات التوزيع في /site/deployments/.
بالنسبة لتطبيقات Windows، يحتوي ملف ZIP على محتويات الدليل D:\Home\LogFiles في نظام ملفات خدمة التطبيقات. لديها الهيكل التالي:
نوع السجل | الدليل | الوصف |
---|---|---|
سجلات التطبيق | /LogFiles/Application/ | يحتوي على ملف نصي واحد أو أكثر. يعتمد تنسيق رسائل السجل على مزود التسجيل الذي تستخدمه. |
عمليات تتبع الطلبات الفاشلة | /LogFiles/W3SVC##########/ | يحتوي على ملفات XML وملف XSL. يمكنك عرض ملفات XML المنسقة في المستعرض. |
سجلات الأخطاء التفصيلية | /LogFiles/DetailedErrors/ | يحتوي على ملفات خطأ HTM. يمكنك عرض ملفات HTM في المتصفح. هناك طريقة أخرى لعرض تتبع الطلبات الفاشلة وهي الانتقال إلى صفحة التطبيق في المدخل. من القائمة اليسرى، حدد تشخيص المشكلات وحلها، وابحث عن سجلات تتبع الطلبات الفاشلة، ثم انقر فوق الأيقونة لاستعراض التتبع الذي تريده وعرضه. |
سجلات خادم الويب | /LogFiles/http/RawLogs/ | يحتوي على ملفات نصية منسقة باستخدام تنسيق ملف سجل W3C الموسع. يمكنك قراءة هذه الملفات باستخدام محرر نص أو أداة مساعدة مثل محلل السجل. لا تدعم خدمة التطبيقات الحقول s-computername أو s-ip أو cs-version . |
سجلات التوزيع | / LogFiles/Git / و/ التوزيع / | يحتوي على سجلات تم إنشاؤها بواسطة عمليات التوزيع الداخلية، بالإضافة إلى سجلات عمليات توزيع Git. |
أرسل السجلات إلى Azure Monitor
مع تكامل Azure Monitor، يمكنك إنشاء إعدادات التشخيص لإرسال السجلات إلى حسابات التخزين ومراكز الأحداث وتحليلات السجل. عند إضافة إعداد تشخيص، تضيف App Service إعدادات التطبيق إلى تطبيقك، مما يؤدي إلى إعادة تشغيل التطبيق.
أنواع السجلات المدعومة
للحصول على قائمة أنواع السجلات المدعومة ووصفها، راجع سجلات الموارد المدعومة ل Microsoft.Web.
اعتبارات الشبكات
للحصول على قيود إعدادات التشخيص، راجع وثائق إعدادات التشخيص الرسمية المتعلقة بحدود الوجهة.