دفق سجلات وحدة تحكم تطبيق Azure Spring Apps في الوقت الفعلي

إشعار

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

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

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

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

المتطلبات الأساسية

استخدام Azure CLI لإنتاج سجلات ذيل

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

az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>

يتم حذف مجموعة الموارد واسم الخدمة في الأمثلة التالية.

عرض سجل الذيل لتطبيق مع مثيل واحد

إذا كان التطبيق المسمى auth-service يحتوي على مثيل واحد فقط، يمكنك عرض سجل مثيل التطبيق باستخدام الأمر التالي:

az spring app logs --name <application-name>

يقوم الأمر بإرجاع سجلات مشابهة لأمثلة التالية، حيث auth-service هو اسم التطبيق.

...
2020-01-15 01:54:40.481  INFO [auth-service,,,] 1 --- [main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]
2020-01-15 01:54:40.482  INFO [auth-service,,,] 1 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/uaa]  : Initializing Spring embedded WebApplicationContext
2020-01-15 01:54:40.760  INFO [auth-service,,,] 1 --- [main] o.s.web.context.ContextLoader  : Root WebApplicationContext: initialization completed in 7203 ms

...

عرض سجل الذيل لتطبيق ذي مثيلات متعددة

في حالة وجود مثيلات متعددة للتطبيق المسمى auth-service، يمكنك عرض سجل المثيل باستخدام الخيار -i/--instance.

أولا، قم بتشغيل الأمر التالي للحصول على أسماء مثيلات التطبيق:

az spring app show --name auth-service --query properties.activeDeployment.properties.instances --output table

ينتج عن الأمر نتائج مشابهة للإخراج التالي:

Name                                         Status    DiscoveryStatus
-------------------------------------------  --------  -----------------
auth-service-default-12-75cc4577fc-pw7hb  Running   UP
auth-service-default-12-75cc4577fc-8nt4m  Running   UP
auth-service-default-12-75cc4577fc-n25mh  Running   UP

بعد ذلك، يمكنك دفق سجلات مثيل التطبيق باستخدام -i/--instance الخيار ، كما يلي:

az spring app logs --name auth-service --instance auth-service-default-12-75cc4577fc-pw7hb

يمكنك أيضاً الحصول على تفاصيل مثيلات التطبيق من مدخل Microsoft Azure. بعد تحديد Apps في جزء التنقّل الأيمن لخدمة Azure Spring Apps، حدد App Instances.

تدفق سجلات جديدة باستمرار

بشكل افتراضي، az spring app logs يقوم بطباعة السجلات الموجودة فقط التي تتدفق إلى وحدة تحكم التطبيق ثم يتم إنهاءها. إذا كنت تريد دفق سجلات جديدة، أضف الوسيطة -f/--follow ، كما هو موضح في المثال التالي:

az spring app logs --name auth-service --follow

عند استخدام الوسيطة --follow لتعقب السجلات الفورية، ترسل خدمة تدفق سجل Azure Spring Apps سجلات رسالة كشف أخطاء الاتصال إلى العميل كل دقيقة ما لم يكن التطبيق الخاص بك يكتب السجلات باستمرار. تستخدم رسائل سجل رسالة كشف أخطاء الاتصال التنسيق التالي: 2020-01-15 04:27:13.473: No log from server.

استخدم الأمر التالي للتحقق من جميع خيارات التسجيل المعتمدة:

az spring app logs --help

تنسيق سجلات JSON المنظمة

إشعار

يتطلب تنسيق سجلات JSON المنظمة إصدار ملحق spring 2.4.0 أو أحدث.

يتم عرض سجلات التطبيقات المنظمة بتنسيق JSON، والذي قد يكون من الصعب قراءته. يمكنك استخدام الوسيطة --format-json لتنسيق السجلات بتنسيق JSON في تنسيق أكثر قابلية للقراءة. لمزيد من المعلومات، راجع سجل التطبيقات المنظمة ل Azure Spring Apps.

يوضح المثال التالي كيفية استخدام الوسيطة --format-json :

# Raw JSON log
$ az spring app logs --name auth-service
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Disable delta property : false"}
{"timestamp":"2021-05-26T03:35:27.533Z","logger":"com.netflix.discovery.DiscoveryClient","level":"INFO","thread":"main","mdc":{},"message":"Single vip registry refresh property : null"}

# Formatted JSON log
$ az spring app logs --name auth-service --format-json
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Disable delta property : false
2021-05-26T03:35:27.533Z  INFO [           main] com.netflix.discovery.DiscoveryClient   : Single vip registry refresh property : null

--format-json تقبل الوسيطة أيضا تنسيقا اختياريا مخصصا باستخدام بناء جملة سلسلة التنسيق. لمزيد من المعلومات، راجع تنسيق بناء جملة السلسلة.

يوضح المثال التالي كيفية استخدام بناء جملة سلسلة التنسيق:

# Custom format
$ az spring app logs --name auth-service --format-json="{message}{n}"
Disable delta property : false
Single vip registry refresh property : null

التنسيق الافتراضي المستخدم هو:

{timestamp} {level:>5} [{thread:>15.15}] {logger{39}:<40.40}: {message}{n}{stackTrace}

دفق سجل تطبيق Azure Spring Apps في مثيل حقن الشبكة الظاهرية

بالنسبة لمثيل Azure Spring Apps المنشور في شبكة ظاهرية مخصصة، يمكنك الوصول إلى دفق السجل بشكل افتراضي من شبكة خاصة. لمزيد من المعلومات، راجع توزيع Azure Spring Apps في شبكة ظاهرية

يمكنك Azure Spring Apps أيضا من الوصول إلى سجلات التطبيقات في الوقت الحقيقي من شبكة عامة باستخدام مدخل Azure أو Azure CLI.

إشعار

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

استخدم الخطوات التالية لتمكين نقطة نهاية تدفق السجل على الشبكة العامة:

  1. حدد مثيل خدمة Azure Spring Apps المنشور في شبكتك الظاهرية ثم حدد Networking في قائمة التنقل.

  2. حدد علامة التبويب حقن Vnet.

  3. قم بتبديل حالة موارد Dataplane على الشبكة العامة لتمكيننقطة نهاية تدفق السجل على الشبكة العامة. وتستغرق هذه العملية بضع دقائق.

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

بعد تمكين نقطة النهاية العامة لدفق السجل، يمكنك الوصول إلى سجل التطبيق من شبكة عامة تماما كما يمكنك الوصول إلى مثيل عادي.

تأمين نسبة استخدام الشبكة إلى نقطة النهاية العامة لتدفق السجل

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

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

إشعار

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

يعرض الجدول التالي مثالا على قاعدة أساسية نوصي بها. يمكنك استخدام أوامر مثل nslookup مع نقطة <service-name>.private.azuremicroservices.io النهاية للحصول على عنوان IP الهدف للخدمة.

أولوية الاسم المنفذ البروتوكول المصدر الوجهة الإجراء
100 اسم القاعدة 80 TCP الإنترنت عنوان IP للخدمة السماح
110 اسم القاعدة 443 TCP الإنترنت عنوان IP للخدمة السماح

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