ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar ar ar ar ar ar ar ar ar ar ar en ar en ar en ar en ar en ar en ar en ar ar ar ar en ar ru ar en ar en ar en ar ru ar en ar en ar ar ar ar ar ar en ar ar ar ar en ar en en en en en en en en en en ar ar ar ar ar en ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar en ar en en ar ar ar ar en it en ar ca it ceb ar ar ar ar ar ar ar ar ar ar ar en ar it ar af ar ar fr ar ar fr ar ar en ar ar en ar en ar ar ceb ar ar fr ar ar en ar ar ceb ar ar en ar ar en ar ar ar ceb ar ar en ar ar nb ar ar fr ar ar en ar ar ar en ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar ar en ar ar ar ar ar ar ur ar ar ar ar ar ar ar ar en ar ar ur ar ar ar ar ar ar ar ar en
توضح هذه المقالة معلومات استكشاف الأخطاء وإصلاحها ذات الصلة باستخدام Azure Diagnostics. لمزيد من المعلومات حول تشخيص Azure، راجع نظرة عامة على تشخيص Azure Diagnostics.
"مشغّل المكوّن الإضافي للتشخيص" (DiagnosticsPluginLauncher.exe) : يشغّل ملحق التشخيص Azure Diagnostics. يعمل بمثابة عملية نقطة الدخول.
"المكوّن الإضافي للتشخيص" (DiagnosticsPlugin.exe) : يقوم بتكوين وإطلاق وإدارة عمر عامل الرصد. هذه هي العملية الرئيسية التي يتم إطلاقها من قبل مشغّل البرامج.
عامل المراقبة (عمليات MonAgent*.exe): يراقب بيانات التشخيص ويجمعها وينقلها.
فيما يلي المسارات إلى بعض السجلات الهامة والأدوات. ونقوم بالإشارة إلى هذه المعلومات في بقية الوثيقة.
حزمة ملحق تشخيص Azure Diagnostics
لا تظهر بيانات القياس في مدخل Microsoft Azure
يوفر Azure Diagnostics بيانات مترية يمكن عرضها في مدخل Microsoft Azure. إذا كنت تواجه مشكلات في رؤية البيانات في المدخل، فتحقق من جدول WADMetrics * في حساب تخزين Azure Diagnostics لمعرفة ما إذا كانت سجلات القياسات المقابلة موجودة وتأكد من أن موفر الموارد Microsoft.Insights مسجل.
هنا، PartitionKey الجدول هو معرف المورد ID أو الجهاز الظاهري أو مجموعة مقياس الجهاز الظاهري. RowKey هو اسم متري (يعرف أيضاً باسم عداد الأداء).
.NET CLR Memory(Global)% Time in GC
إذا تم تعيين التكوين بشكل صحيح ولكن لا يزال يتعذر عليك مشاهدة البيانات المترية، فاستخدم الإرشادات التالية لمساعدتك على استكشاف الأخطاء وإصلاحها.
تشخيص Azure لا يبدأ
للحصول على معلومات حول سبب فشل بدء تشغيل تشخيص Azure، راجع DiagnosticsPluginLauncher.log وDiagnosticsPlugin.log الملفات في موقع ملفات السجل التي تم توفيرها مسبقاً.
إذا كانت هذه السجلات تشير إلى Monitoring Agent not reporting success after launch، فهذا يعني أنه كان هناك فشل في إطلاق MonAgentHost.exe. انظر إلى السجلات في الموقع المشار إليه MonAgentHost log file في القسم السابق.
السطر الأخير من ملفات السجل يحتوي على رمز الإنهاء.
DiagnosticsPluginLauncher.exe Information: 0 : [4/16/2016 6:24:15 AM] DiagnosticPlugin exited with code 0
إذا وجدت رمز إنهاء سالب، فراجع جدول رمز الإنهاء في المقطع مراجع.
لم يتم تسجيل بيانات التشخيص إلى تخزين Azure
تحديد ما إذا كان أي من البيانات يظهر أو بعض البيانات تظهر.
سجلات البنية الأساسية للتشخيص
التشخيص بتسجيل كافة الأخطاء في سجلات البنية الأساسية التشخيص. تأكد من تمكين التقاط سجلات البنية الأساسية التشخيص في التكوين الخاص بك. ثم يمكنك البحث بسرعة عن أي أخطاء ذات صلة تظهر في DiagnosticInfrastructureLogsTable الجدول في حساب التخزين المكون.
لا تظهر أية بيانات
السبب الأكثر شيوعاً لعدم ظهور بيانات الحدث على الإطلاق هو أن معلومات حساب التخزين معرفة بشكل غير صحيح.
الحل: قم بتصحيح تكوين التشخيص وإعادة تثبيت التشخيص.
إذا تم تكوين حساب التخزين بشكل صحيح، الوصول البعيد إلى الجهاز وتحقق من أن DiagnosticsPlugin.exeMonAgentCore.exe قيد التشغيل. إذا لم تكن قيد التشغيل، اتبع الخطوات في Azure Diagnostics لا يبدأ تشغيل.
إذا كانت العمليات قيد التشغيل، فاذهب إلى هل يتم التقاط البيانات محليّاً؟ واتبع الإرشادات الموجودة هناك.
إذا لم يحل هذا المشكلة، فحاول:
قم بتثبيت عامل مرة أخرى
جزء من البيانات مفقود
إذا كنت تحصل على بعض البيانات ولكن ليس كل شيء، فهذا يعني أن يتم تعيين مسار تدفق جمع البيانات / نقل بشكل صحيح. اتبع الأقسام الفرعية هنا لتضييق نطاق المشكلة.
هل تم تكوين المجموعة؟
يحتوي تكوين التشخيص على إرشادات لنوع معين من البيانات التي سيتم تجميعها. راجع التكوين للتحقق من أنك تبحث فقط عن البيانات التي قمت بتكوينها للمجموعة.
هل يقوم المضيف بإنشاء بيانات؟
عدادات الأداء: فتح perfmon والتحقق من العداد.
سجلات التتبع: الوصول عن بُعد إلى الجهاز الظاهري وإضافة TextWriterTraceListener إلى ملف تكوين التطبيق. راجع https://msdn.microsoft.com/library/sk36c28t.aspx لإعداد وحدة الإصغاء النص. تأكد من أن   العنصر يحتوي   على.
إذا لم تشاهد سجلات التتبع التي يتم إنشاؤها، راجع المزيد حول سجلات التتبع المفقودة.
ETW تتبع: الوصول البعيد إلى VM وتثبيت PerfView. في PerfView، قم بتشغيل>"الأمر المستخدم>ملف" الاستماع etwprovder1>etwprovider2، وهكذا. الأمر "الإصغاء" حساس لحالة الأحرف، ولا يمكن أن تكون هناك مسافات بين قائمة موفري ETW المتباعدة بفاصلة. في حال فشل تشغيل الأمر، يمكنك تحديد الزر Log في الجزء السفلي الأيمن من أداة Perfview لمعرفة ما الذي حاول تشغيله والنتيجة. بافتراض أن الإدخال صحيح، تظهر نافذة جديدة. في بضع ثوان، تبدأ في رؤية آثار ETW.
سجلات الأحداث: الوصول البعيد إلى VM. افتح Event Viewer، ثم تأكد من وجود الأحداث.
هل يتم التقاط البيانات محليّاً؟
بعد ذلك، تأكد من الحصول على البيانات التي يتم التقاطها محليّاً. يتم تخزين البيانات محليّاً في *.tsf الملفات الموجودة في المخزن المحلي لبيانات التشخيص. أنواع مختلفة من سجلات الحصول على جمعها في .tsf ملفات مختلفة. تشبه الأسماء أسماء الجداول في تخزين Azure.
على سبيل المثال، Performance Counters الحصول على جمع في PerformanceCountersTable.tsf. يتم جمع سجلات الأحداث في WindowsEventLogsTable.tsf. استخدم الإرشادات الموجودة في المقطع استخراج السجل المحلي لفتح ملفات المجموعة المحلية والتحقق من أن تشاهدها الحصول على تجميعها على القرص.
إذا لم تشاهد سجلات يتم تجميعها محليّاً، وتحققت بالفعل من أن المضيف يقوم بإنشاء بيانات، فمن المحتمل أن يكون لديك مشكلة في التكوين. راجع التكوين بعناية.
راجع أيضاً التكوين الذي تم إنشاؤه لـ MonitoringAgent MaConfig.xml. تحقق من وجود مقطع يصف مصدر السجل ذي الصلة. ثم تحقق من أنه لا يتم فقدان في الترجمة بين تكوين التشخيص وتكوين عامل المراقبة.
هل يتم نقل البيانات؟
إذا تحققت من أن البيانات يتم التقاطها محليّاً ولكنك لا تزال لا تراها في حساب التخزين، فاتبع الخطوات التالية:
تحقق من أنك قدمت حساب تخزين صحيحاً، وأنك لم تقم بتدحرج المفاتيح لحساب التخزين المحدد. بالنسبة لخدمات Azure Cloud، نرى أحياناً أن الأشخاص لا يتم useDevelopmentStorage=true تحديثهم.
تحقق من صحة حساب التخزين المتوفر. تأكد من عدم وجود قيود على الشبكة تمنع المكونات من الوصول إلى نقاط نهاية التخزين العامة. إحدى الطرق للقيام بذلك هي الوصول عن بعد إلى الجهاز، ثم محاولة كتابة شيء إلى حساب التخزين نفسه بنفسك.
وأخيراً، يمكنك إلقاء نظرة على ما يتم الإبلاغ عن الإخفاقات من قبل عامل المراقبة. يقوم عامل المراقبة بكتابة سجلاته في maeventtable.tsf، الموجود في المخزن المحلي لبيانات التشخيص. اتبع الإرشادات الموجودة في المقطع استخراج السجل المحلي لفتح هذا الملف. ثم حاول تحديد ما إذا كان هناك errors التي تشير إلى فشل القراءة إلى الملفات المحلية الكتابة إلى التخزين.
إذا كنت تفكر في الاتصال بالدعم، فإن أول شيء قد يطلبونه منك هو جمع السجلات من جهازك. يمكنك توفير الوقت عن طريق القيام بذلك بنفسك. قم بتشغيل CollectGuestLogs.exe الأداة المساعدة في مسار الأداة المساعدة مجموعة سجل. فإنه ينشئ ملف .zip مع كافة سجلات Azure ذات الصلة في نفس المجلد.
لم يتم العثور على جداول بيانات التشخيص
يتم تسمية الجداول الموجودة في تخزين Azure التي تحتوي على أحداث ETW باستخدام التعليمة البرمجية التالية:
if (String.IsNullOrEmpty(eventDestination)) { if (e == "DefaultEvents") tableName = "WADDefault" + MD5(provider); else tableName = "WADEvent" + MD5(provider) + eventId; } else tableName = "WAD" + eventDestination;
وفيما يلي مثال على ذلك:
"EtwEventSourceProviderConfiguration": [ { "provider": "prov1", "Event": [ { "id": 1 }, { "id": 2, "eventDestination": "dest1" } ], "DefaultEvents": { "eventDestination": "DefaultEventDestination", "sinks": "" } }, { "provider": "prov2", "DefaultEvents": { "eventDestination": "dest2" } } ]
ينشئ هذا الرمز أربعة جداول:
كيفية التحقق من تكوين ملحق التشخيص
أسهل طريقة للتحقق من تكوين التمديد الخاص بك هو الذهاب إلى مستكشف الموارد Azure، ومن ثم انتقل إلى الجهاز الظاهري أو خدمة سحابة حيث ملحق Azure Diagnostics (IaaSDiagnostics / PaaDiagnostics) هو.
بدلاً من ذلك، سطح المكتب البعيد في الجهاز وانظر إلى ملف تكوين تشخيص Azure الموضح في المقطع مسار Artifacts السجل.
في كلتا الحالتين، ابحث عن Microsoft.Azure.Diagnostics، ثم عن xmlCfg أو حقل WadCfg.
إذا كنت تبحث على جهاز ظاهري وكان الحقل WadCfg موجوداً، فهذا يعني أن التكوين بتنسيق JSON. إذا كان الحقل xmlCfg موجوداً، فهذا يعني أن التكوين موجود في XML وهو مرمز بقاعدة64. تحتاج إلى فك ترميزه لمشاهدة XML الذي تم تحميله بواسطة التشخيص.
بالنسبة لدور خدمة مجموعة النظراء، إذا اخترت التكوين من القرص، تكون البيانات مشفرة بقاعدة64، لذا تحتاج إلى فك ترميزها لرؤية XML الذي تم تحميله بواسطة التشخيص.
رموز الخروج من البرنامج المساعد لتشخيص Azure
يقوم المكون الإضافي بإرجاع رموز الخروج التالية:
غير قادر على تحميل ملف rcf.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء مشغل البرنامج المساعد عامل الضيف يدويّاً بشكل غير صحيح على VM.
لا يمكن تحميل ملف تكوين التشخيص.
الحل: بسبب ملف تكوين لا تمرير التحقق من صحة المخطط. الحل هو توفير ملف تكوين يتوافق مع المخطط.
مثيل آخر عن "تشخيص عامل المراقبة" يستخدم بالفعل دليل المورد المحلي.
الحل: تحديد قيمة مختلفة لـ LocalResourceDirectory.
حاوَل مشغل البرنامج المساعد عامل الضيف تشغيل التشخيص مع سطر أوامر غير صالح.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء مشغل البرنامج المساعد عامل الضيف يدويّاً بشكل غير صحيح على VM.
خرَج المكون الإضافي Diagnostics مع استثناء غير معالج.
تعذر على عامل الضيف إنشاء العملية المسؤولة عن تشغيل عامل المراقبة ومراقبته.
الحل: تحقّق من توفر موارد كافية للنظام لبدء عمليات جديدة.
وسائط غير صالحة عند استدعاء المكون الإضافي التشخيص.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء مشغل البرنامج المساعد عامل الضيف يدويّاً بشكل غير صحيح على VM.
عملية البرنامج المساعد غير قادر على تهيئة نفسه.
الحل: تحقّق من توفر موارد كافية للنظام لبدء عمليات جديدة.
عملية البرنامج المساعد غير قادر على تهيئة نفسه. وبوجه خاص، غير قادر على إنشاء كائن المسجل.
الحل: تحقّق من توفر موارد كافية للنظام لبدء عمليات جديدة.
غير قادر على تحميل ملف rcf الموفرة من قبل عامل الضيف ( guest).
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء مشغل البرنامج المساعد عامل الضيف يدويّاً بشكل غير صحيح على VM.
لا يمكن فتح البرنامج المساعد التشخيص ملف تكوين التشخيص.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء البرنامج المساعد التشخيص يدويّاً بشكل غير صحيح على VM.
لا يمكن قراءة ملف تكوين التشخيص.
بسبب ملف تكوين لا تمرير التحقق من صحة المخطط.
الحل: توفير ملف تكوين يتوافق مع المخطط. لمزيد من المعلومات، راجع كيفية التحقق من تكوين ملحق التشخيص.
تمرير دليل المورد إلى عامل المراقبة غير صالح.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء عامل المراقبة يدويّاً بشكل غير صحيح على VM.
غير قادر على تحويل ملف تكوين التشخيص إلى ملف تكوين عامل المراقبة.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء المكون الإضافي التشخيص يدويّاً مع ملف تكوين غير صالح.
خطأ تكوين التشخيص العام.
يجب أن يحدث هذا الخطأ الداخلي فقط إذا تم استدعاء المكون الإضافي التشخيص يدويّاً مع ملف تكوين غير صالح.
غير قادر على بدء تشغيل عامل المراقبة.
الحل: تحقق من توفر موارد كافية للنظام.
عامل المراقبة بجمع السجلات والتحف .tsf كملفات. .tsfالملف غير قابل للقراءة ولكن يمكنك تحويله إلى كما .csv يلي:
يتم إنشاء ملف جديد يسمى  .csv في نفس المسار مثل الملف .tsf المطابق.
تحتاج فقط إلى تشغيل هذه الأداة المساعدة مقابل الملف .tsf الرئيسي (على سبيل المثال، PerformanceCountersTable.tsf). تتم معالجة الملفات المصاحبة (على سبيل المثال، PerformanceCountersTables_**001.tsf, PerformanceCountersTables_**002.tsf، وما إلى ذلك) تلقائياً.
المزيد حول سجلات التتبع المفقودة
تنطبق المعلومات التالية في الغالب على خدمات سحابة Azure إلا إذا قمت بتكوين DiagnosticsMonitorTraceListener على تطبيق قيد التشغيل على الجهاز الظاهري VM IaaS.
تأكد من تكوين DiagnosticMonitorTraceListener في web.config أو app.config. يتم تكوين هذا بشكل افتراضي في مشاريع الخدمات السحابية. ومع ذلك، بعض العملاء تعليق بها، مما يؤدي إلى بيانات التتبع التي لا يمكن تجميعها بواسطة التشخيص.
إذا لم تتم كتابة السجلات من طريقة OnStart أو Run، فتأكد من وجود DiagnosticMonitorTraceListener في app.config. بشكل افتراضي، يكون موجوداً في web.config، ولكن هذا ينطبق فقط على التعليمة البرمجية التي يتم تشغيلها داخل w3wp.exe. لذلك كنت في حاجة إليها في app.config لالتقاط الآثار التي يتم تشغيلها في WaIISHost.exe.
تأكد من أنك تستخدم Diagnostics.Trace.TraceXXX بدلاً من Diagnostics.Debug.WriteXXX. تتم إزالة عبارات التصحيح من بنية الإصدار.
تأكد من أن التعليمة البرمجية المترجمة تحتوي بالفعل على خطوط Diagnostics.Trace (استخدم Reflector أو ildasm أو ILSpy للتحقق). يتم إزالة Diagnostics.Trace أوامر من ثنائي المترجمة إلا إذا كنت تستخدم رمز التحويل البرمجي الشرطي TRACE. هذه مشكلة شائعة تحدث عند استخدام msbuild لإنشاء مشروع.
فيما يلي قائمة بالمشاكل المعروفة مع عوامل التخفيف المعروفة:
1. تبعية .NET 4.5
Windows ملحق التشخيص Azure لديه تبعية وقت التشغيل على إطار عمل .NET 4.5 أو أحدث. في وقت كتابة هذا التقرير، كافة الأجهزة التي تم توفيرها لخدمات سحابة Azure، بالإضافة إلى كافة الصور الرسمية التي تستند إلى الأجهزة الظاهرية Azure، يكون .NET 4.5 أو أحدث مثبتة.
لا يزال من الممكن مواجهة موقف حيث تحاول تشغيل ملحق تشخيص Azure Windows على جهاز ليس لديه .NET 4.5 أو أحدث. يحدث هذا عند إنشاء الجهاز من صورة قديمة أو لقطة أو عند إحضار القرص المخصص الخاص بك.
يظهر هذا بشكل عام كتعليمة برمجية خروج 255 عند تشغيل DiagnosticsPluginLauncher.exe. يحدث الفشل بسبب الاستثناء التالي الذي لم تتم معالجته:
System.IO.FileLoadException: Could not load file or assembly 'System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies
التخفيف: تثبيت .NET 4.5 أو أحدث على الجهاز.
2. بيانات عدادات الأداء متوفرة في التخزين ولكن لا تظهر في المدخل
تعرض تجربة المدخل في الأجهزة الظاهرية عدادات أداء معينة بشكل افتراضي. إذا لم تشاهد عدادات الأداء، وكنت تعرف أن البيانات يتم إنشاؤها لأنها متوفرة في التخزين، تحقق مما يلي:
ما إذا كانت البيانات الموجودة في التخزين تحتوي على أسماء عداد باللغة الإنجليزية. إذا لم تكن أسماء العدادات باللغة الإنجليزية، فلن يتمكن مخطط قياس المدخل من التعرف عليها. التخفيف: تغيير لغة الجهاز إلى اللغة الإنجليزية لحسابات النظام. للقيام بذلك، حدد Control Panel>Region>Administrative>Copy Settings. بعد ذلك، قم بإلغاء تحديد حسابات شاشة ونظام الترحيب بحيث لا يتم تطبيق اللغة المخصصة على حساب النظام.
إذا كنت تستخدم أحرف البدل (*) في أسماء عداد الأداء، فلن يتمكن المدخل من ربط العداد المكون والمجمع عند إرسال عدادات الأداء إلى حوض Azure Storage. التخفيف: للتأكد من أنه يمكنك استخدام أحرف البدل وجعل المدخل يتوسع (*)، وجّه عدادات الأداء إلى حوض Azure Monitor.