دفق سجلات وحدة تحكم تطبيق 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 Spring Apps، الإصدار 1.0.0 أو أعلى. يمكنك تثبيت الملحق باستخدام الأمر التالي:
az extension add --name spring
- مثيل من Azure Spring Apps مع تطبيق قيد التشغيل. لمزيد من المعلومات، راجع التشغيل السريع: توزيع التطبيق الأول الخاص بك على تطبيقات Azure Spring.
استخدام 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 عام وارد إلى شبكتك الظاهرية. تأكد من توخي الحذر إذا كان هذا مصدر قلق بالنسبة لك.
استخدم الخطوات التالية لتمكين نقطة نهاية تدفق السجل على الشبكة العامة:
بعد تمكين نقطة النهاية العامة لدفق السجل، يمكنك الوصول إلى سجل التطبيق من شبكة عامة تماما كما يمكنك الوصول إلى مثيل عادي.
تأمين نسبة استخدام الشبكة إلى نقطة النهاية العامة لتدفق السجل
يستخدم دفق السجل نفس مفتاح نقطة نهاية الاختبار الموضحة في إعداد بيئة التقسيم المرحلي في Azure Spring Apps لمصادقة الاتصالات إلى عمليات النشر الخاصة بك. ونتيجة لذلك، يمكن فقط للمستخدمين الذين لديهم حق الوصول للقراءة إلى مفاتيح الاختبار الوصول إلى دفق السجل.
لضمان أمان التطبيقات الخاصة بك عند الكشف عن نقطة نهاية عامة لها، قم بتأمين نقطة النهاية عن طريق تصفية حركة مرور الشبكة إلى الخدمة الخاصة بك باستخدام مجموعة أمان الشبكة. لمزيد من المعلومات، راجع البرنامج التعليمي: تصفية نسبة استخدام الشبكة باستخدام مجموعة أمان الشبكة باستخدام مدخل Microsoft Azure. تحتوي مجموعة أمان الشبكة على قواعد أمان تسمح (أو ترفض) نسبة استخدام الشبكة الوارد (أو الصادر) إلى عدة أنواع من موارد Azure. يُمكنك تحديد، لكل قاعدة أمان، مصدر ووجهة ومنفذ وبروتوكول.
إشعار
إذا لم تتمكن من الوصول إلى سجلات التطبيقات في مثيل حقن الشبكة الظاهرية من الإنترنت بعد تمكين نقطة نهاية عامة لدفق السجل، فتحقق من مجموعة أمان الشبكة لمعرفة ما إذا كنت قد سمحت بنسبة استخدام الشبكة الواردة هذه.
يعرض الجدول التالي مثالا على قاعدة أساسية نوصي بها. يمكنك استخدام أوامر مثل nslookup
مع نقطة <service-name>.private.azuremicroservices.io
النهاية للحصول على عنوان IP الهدف للخدمة.
أولوية | الاسم | المنفذ | البروتوكول | المصدر | الوجهة | الإجراء |
---|---|---|---|---|---|---|
100 | اسم القاعدة | 80 | TCP | الإنترنت | عنوان IP للخدمة | السماح |
110 | اسم القاعدة | 443 | TCP | الإنترنت | عنوان IP للخدمة | السماح |