تحليل السجلات والمقاييس باستخدام إعدادات التشخيص

إشعار

يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.

تنطبق هذه المقالة على: ✔️ Java ✔️ C#‎

تنطبق هذه المقالة على: ✔️ Basic/Standard ✔️ Enterprise

توضح لك هذه المقالة كيفية تحليل بيانات التشخيص في Azure Spring Apps.

باستخدام وظائف التشخيص في Azure Spring Apps، يمكنك تحليل السجلات والمقاييس مع أي من الخدمات التالية:

  • استخدم Azure Log Analytics. هناك تأخير عند تصدير السجلات إلى Log Analytics.
  • حفظ السجلات إلى حساب تخزين للتدقيق أو الفحص اليدوي. يمكنك تحديد وقت الاستبقاء (بالأيام).
  • قم ببث السجلات إلى مركز الأحداث لديك للابتلاع بواسطة خدمة خارجية أو حل تحليلات مخصص.

اختر فئة السجل وفئة القياس التي تريد مراقبتها.

تلميح

إذا كنت تريد فقط دفق سجلاتك، يمكنك استخدام الأمر Azure CLI az spring app logs.

السجلات

سجل ‏‏الوصف
ApplicationConsole سجل وحدة التحكم لجميع تطبيقات العملاء.
سجلات النظام القيم المتوفرة LogType هي ConfigServer(أساسي/قياسي فقط)، ServiceRegistry(جميع الخطط)، ApiPortal(خطة المؤسسة فقط)، ApplicationConfigurationService(خطة المؤسسة فقط)، SpringCloudGateway (خطة المؤسسة فقط)، و SpringCloudGatewayOperator (خطة المؤسسة فقط)
سجلات الدخول سجلات الدخول لجميع تطبيقات العميل، سجلات الوصول فقط.
سجلات الإنشاء بناء سجلات لجميع تطبيقات العميل لكل مرحلة بناء.

إشعار

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

  • dbpass، password، key، secret، sig، متبوعا signature ب : أو =. تظهر هذه الأنماط عادة في معلمات URL ومقالب الحمولة. على سبيل المثال، https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx يصبح https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
  • سلاسل مرمزة تشبه رمز JWT المميز بالتنسيق: eyJxxxxxx.eyJxxxxxx

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

المقاييس

للحصول على قائمة كاملة بالمقاييس، راجع قسم خيارات مقاييس المستخدم في Metrics for Azure Spring Apps.

للبدء، قم بتمكين إحدى هذه الخدمات لتلقي البيانات. لمعرفة المزيد حول Azure Log Analytics، راجع البدء في استخدام تحليلات السجل في Azure Monitor.

تكوين إعدادات التشخيص

  1. في مدخل Microsoft Azure، انتقل إلى مثيل Azure Spring Apps الخاص بك.

  2. حدد خيار diagnostics settings، ثم حدد Add diagnostics setting.

  3. أدخل اسماً للإعداد، ثم اختر المكان الذي تريد إرسال السجلات إليه. يمكنك تحديد أي مجموعة من الخيارات الثلاثة التالية:

    • «Archive to» إلى حساب موقع التخزين
    • دفق بيانات إلى مركز الحدث
    • إرسال إلى Log Analytics
    • إرسال إلى حل الشريك
  4. اختر فئة السجل وفئة القياس التي تريد مراقبتها، ثم حدد وقت الاستبقاء (بالأيام). ينطبق وقت الاستبقاء فقط على حساب التخزين.

  5. حدد حفظ.

إشعار

قد تكون هناك فجوة تصل إلى 15 دقيقة بين وقت إصدار السجلات أو المقاييس ووقت ظهورها في حساب التخزين أو مركز الأحداث أو Log Analytics. في حال تم حذف مثيل Azure Spring Apps أو نقله، فلن تتالي العملية إلى موارد إعدادات التشخيص. ينبغي حذف موارد إعدادات التشخيص يدوياً قبل إجراء العملية ضد الأصل الخاص بها، مثيل Azure Spring Apps. ومن ناحية أخري، في حال قمت بتوفير مثيل Azure Spring Apps جديد بنفس معرف المورد مثل المحذوف، أو إذا قمت بنقل مثيل Azure Spring Apps مرة أخرى، فستستمر موارد إعدادات التشخيص السابقة في توسيعه.

عرض السجلات والمقاييس

هناك طرق مختلفة لعرض السجلات والمقاييس كما هو موضح تحت العناوين التالية.

استخدام جزء السجلات

  1. في مدخل Microsoft Azure، انتقل إلى مثيل Azure Spring Apps الخاص بك.

  2. لفتح جزء Log Search، حدد Logs.

  3. في مربع البحث Tables

    • لعرض السجلات، أدخل استعلاماً بسيطاً مثل:
    AppPlatformLogsforSpring
    | limit 50
    
    • لعرض القياسات، أدخِل استعلاماً بسيطاً مثل:
    AzureMetrics
    | limit 50
    
  4. لعرض نتيجة البحث، حدد Run.

استخدام "Log Analytics"

  1. في مدخل Microsoft Azure، في الجزء الأيسر، حدد Log Analytics.

  2. حدد مساحة عمل Log Analytics التي اخترتها عند إضافة إعدادات التشخيص.

  3. لفتح جزء Log Search، حدد Logs.

  4. في مربع البحث Tables،

    • لعرض السجلات، أدخل استعلاماً بسيطاً مثل:
    AppPlatformLogsforSpring
    | limit 50
    
    • لعرض القياسات، أدخِل استعلاماً بسيطاً مثل:
    AzureMetrics
    | limit 50
    
  5. لعرض نتيجة البحث، حدد Run.

  6. يمكنك البحث في سجلات مثيل أو تطبيق محدد عن طريق تعيين شرط عامل تصفية:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    إشعار

    == حساس لحالة الأحرف، ولكنه =~ ليس كذلك.

لمعرفة المزيد حول لغة الاستعلام المستخدمة في Log Analytics، راجع استعلامات سجل Azure Monitor. للاستعلام عن جميع سجلات Log Analytics من عميل مركزي، راجع Azure Data Explorer.

استخدام حساب التخزين الخاص بك

  1. في مدخل Microsoft Azure، ابحث عن حسابات التخزين في لوحة التنقل اليسرى أو مربع البحث.
  2. حدد حساب التخزين الذي اخترته عند إضافة إعدادات التشخيص.
  3. لفتح جزء Blob Container، حدد Blobs.
  4. لمراجعة سجلات التطبيق، ابحث عن حاوية تسمى insights-logs-applicationconsole.
  5. لمراجعة مقاييس التطبيق، ابحث عن حاوية تسمى insights-metrics-pt1m.

لمعرفة المزيد حول إرسال معلومات التشخيص إلى حساب تخزين، راجع تخزين بيانات التشخيص وعرضها في Azure Storage.

استخدام مركز الحدث

  1. في مدخل Microsoft Azure، ابحث عن Event Hubs في لوحة التنقل اليسرى أو مربع البحث.

  2. ابحث عن مركز الأحداث الذي اخترته عند إضافة إعدادات التشخيص وحدده.

  3. لفتح جزء Event Hub List، حدد Event Hubs.

  4. لمراجعة سجلات التطبيق، ابحث عن حاوية تسمى insights-logs-applicationconsole.

  5. لمراجعة مقاييس التطبيق، ابحث عن حاوية تسمى insights-metrics-pt1m.

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

تحليل السجلات

يتم تشغيل Azure Log Analytics باستخدام محرك Kusto حتى تتمكن من الاستعلام عن سجلاتك للتحليل. للحصول على مقدمة سريعة للاستعلام عن السجلات باستخدام Kusto، راجع البرنامج التعليمي Log Analytics.

توفر سجلات التطبيق معلومات هامة وسجلات مطولة حول صحة التطبيق الخاص بك وأدائه والمزيد. في المقاطع الآتية توجد بعض الاستعلامات لمساعدتك على فهم حالات التطبيق الحالية والسابقة.

إظهار سجلات التطبيقات من Azure Spring Apps

لمراجعة قائمة سجلات التطبيقات من Azure Spring Apps، التي تم فرزها حسب الوقت مع أحدث السجلات المعروضة أولاً، قم بتشغيل الاستعلام التالي:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

عرض إدخالات السجل التي تحتوي على أخطاء أو استثناءات

لمراجعة إدخالات السجل غير المفروزة التي تذكر خطأ أو استثناء، قم بتشغيل الاستعلام التالي:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

قم باستخدام الاستعلام للبحث عن أخطاء أو تعديل شروط الاستعلام للعثور على رموز خطأ أو استثناءات معينة.

إظهار عدد الأخطاء والاستثناءات التي أبلغ عنها التطبيق الخاص بك خلال الساعة الأخيرة

لإنشاء مخطط دائري يعرض عدد الأخطاء والاستثناءات التي تم تسجيلها من قبل التطبيق الخاص بك، قم بتشغيل الاستعلام التالي:

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

إظهار إدخالات سجل الدخول التي تحتوي على مضيف معين

لمراجعة إدخالات السجل التي تم إنشاؤها باستخدام خدمة معينة، قم بتشغيل الاستعلام التالي:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

استخدم هذا الاستعلام للعثور على الاستجابة Statusو RequestTimeخصائص أخرى لسجلات دخول هذا المضيف المحدد.

إظهار إدخالات سجل الدخول لمعرف طلب معين

لمراجعة إدخالات السجل requestIdلقيمةمعينة <request_ID>، قم بتشغيل الاستعلام التالي:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

إظهار إدخالات سجل البناء لتطبيق معين

لمراجعة إدخالات السجل لتطبيق معين أثناء عملية الإنشاء، قم بتشغيل الاستعلام التالي:

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

إظهار إدخالات سجل البناء لتطبيق معين في مرحلة بناء محددة

لمراجعة إدخالات السجل لتطبيق معين في مرحلة بناء معينة، قم بتشغيل الاستعلام التالي. استبدل العنصر النائب <app-name> باسم تطبيقك. استبدل <build-stage> العنصر النائب بإحدى القيم التالية، والتي تمثل مراحل عملية الإنشاء: prepareأو detect أو restore أو analyze أو build أو export أو completion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

إظهار سجلات بوابة VMware Spring Cloud في خطة المؤسسة

لمراجعة إدخالات السجل لسجلات بوابة VMware Spring Cloud في خطة المؤسسة، قم بتشغيل الاستعلام التالي:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

يتحكم مكون آخر، يسمى عامل تشغيل Spring Cloud Gateway، في دورة حياة بوابة Spring Cloud والمسارات. إذا واجهت أي مشكلات في المسار لا يسري مفعولها، فتحقق من سجلات هذا المكون. لمراجعة إدخالات السجل ل VMware Spring Cloud Gateway Operator في خطة Enterprise، قم بتشغيل الاستعلام التالي:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

إظهار خدمة تكوين التطبيق لسجلات Tanzu في خطة المؤسسة

لمراجعة إدخالات السجل لخدمة تكوين التطبيق لسجلات Tanzu في خطة المؤسسة، قم بتشغيل الاستعلام التالي:

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

إظهار سجلات سجل خدمة Tanzu في خطة المؤسسة

لمراجعة إدخالات السجل لسجلات سجل خدمة Tanzu في خطة المؤسسة، قم بتشغيل الاستعلام التالي:

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

إظهار مدخل واجهة برمجة التطبيقات لسجلات VMware Tanzu في خطة المؤسسة

لمراجعة إدخالات السجل لمدخل API لسجلات VMware Tanzu في خطة المؤسسة، قم بتشغيل الاستعلام التالي:

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

تعرف على المزيد حول الاستعلام عن سجلات التطبيقات

يوفر Azure Monitor دعماً شاملاً للاستعلام عن سجلات التطبيقات باستخدام Log Analytics. لمعرفة المزيد حول هذه الخدمة، راجع بدء استخدام استعلامات السجل في Azure Monitor. لمزيد من المعلومات حول إنشاء استعلامات لتحليل سجلات التطبيق، راجع نظرة عامة على استعلامات السجل في Azure Monitor.

الأسئلة الشائعة (FAQ)

كيف يمكنني تحويل تتبعات مكدس Java متعدد الأسطر إلى سطر واحد؟

هناك حل بديل لتحويل تتبعات المكدس متعدد الأسطر إلى سطر واحد. يمكنك تعديل إخراج سجل Java لعملية إعادة تنسيق رسائل تتبع المكدس، واستبدال أحرف سطر جديدة برمز مميز. إذا كنت تستخدم مكتبة Java Logback، يمكنك إعادة تنسيق رسائل تتبع المكدس عن طريق إضافة %replace(%ex){'[\r\n]+', '\\n'}%nopex كما يلي:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

يمكنك بعد ذلك استبدال الرمز المميز بأحرف سطر جديد في Log Analytics كما يلي:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

قد تتمكن من استخدام نفس الاستراتيجية لمكتبات سجل Java الأخرى.

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