دفق سجلات المكونات المدارة في Azure Spring Apps في الوقت الفعلي
إشعار
يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.
تنطبق هذه المقالة على:❌ Basic/Standard ✔️ Enterprise
توضح هذه المقالة كيفية استخدام Azure CLI للحصول على سجلات في الوقت الحقيقي للمكونات المدارة لاستكشاف الأخطاء وإصلاحها. يمكنك أيضا استخدام إعدادات التشخيص لتحليل بيانات التشخيص في Azure Spring Apps. لمزيد من المعلومات، راجع تحليل السجلات والمقاييس باستخدام إعدادات التشخيص. لمزيد من المعلومات حول سجلات الدفق، راجع دفق سجلات وحدة تحكم تطبيق Azure Spring Apps في الوقت الفعلي وسجلات مهام Stream Azure Spring Apps في الوقت الفعلي.
المتطلبات الأساسية
- Azure CLI مع ملحق Azure Spring Apps، الإصدار 1.24.0 أو أعلى. يمكنك تثبيت الملحق باستخدام الأمر التالي:
az extension add --name spring
.
المكونات المدارة المدعومة
يسرد الجدول التالي المكونات المدارة المدعومة حاليا، جنبا إلى جنب مع المكونات الفرعية الخاصة بها:
مكون مدار | المكونات الفرعية |
---|---|
خدمة تكوين التطبيق | application-configuration-service flux-source-controller (مدعوم في إصدار ACS Gen2) |
بوابة Spring Cloud | spring-cloud-gateway spring-cloud-gateway-operator |
خادم تكوين Spring Cloud | config-server |
يمكنك استخدام الأمر التالي لسرد جميع المكونات الفرعية:
az spring component list
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name>
تعيين دور Azure
لدفق سجلات المكونات المدارة، يجب أن يكون لديك أدوار Azure ذات الصلة المعينة لك. يسرد الجدول التالي الأدوار المطلوبة والعمليات التي يتم منح هذه الأدوار لها الأذونات:
مكون مدار | والدور المطلوب | العمليات |
---|---|---|
خدمة تكوين التطبيق | دور قارئ سجل خدمة تكوين تطبيق Azure Spring Apps | Microsoft.AppPlatform/Spring/ApplicationConfigurationService/logstream/action |
بوابة Spring Cloud | دور قارئ سجل بوابة Spring Cloud لتطبيقات Azure | Microsoft.AppPlatform/Spring/SpringCloudGateway/logstream/action |
خادم تكوين Spring Cloud | دور قارئ سجل خادم تكوين Spring Cloud في Azure Spring Apps | Microsoft.AppPlatform/Spring/configService/logstream/action |
استخدم الخطوات التالية لتعيين دور Azure باستخدام مدخل Microsoft Azure:
افتح مدخل Azure.
افتح مثيل خدمة Azure Spring Apps.
في جزء التنقل، حدد Access Control (IAM).
في صفحة Access Control (IAM)، حدد Add ثم حدد Add role assignment.
في صفحة إضافة تعيين دور، في قائمة الاسم ، ابحث عن الدور الهدف وحدده ثم حدد التالي.
حدد الأعضاء ثم ابحث عن اسم المستخدم وحدده.
حدد مراجعة + تعيين.
سرد كافة المثيلات في مكون
استخدم الأمر التالي لسرد كافة المثيلات في مكون:
az spring component instance list \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--component <component-name>
على سبيل المثال، لسرد كافة المثيلات في flux-source-controller
إصدار ACS Gen2، استخدم الأمر التالي:
az spring component instance list \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--component flux-source-controller
عرض سجلات الطرف
يوفر هذا القسم أمثلة على استخدام Azure CLI لإنتاج سجلات ذيل.
عرض سجلات الذيل لمثيل معين
لعرض سجلات الذيل لمثيل معين، استخدم az spring component logs
الأمر مع الوسيطة -i/--instance
، كما هو موضح في القسم التالي.
عرض سجلات الطرف لمثيل خدمة تكوين التطبيق
استخدم الأمر التالي لعرض سجلات الذيل ل application-configuration-service
:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name application-configuration-service \
--instance <instance-name>
بالنسبة إلى ACS Gen2، يقوم الأمر بإرجاع سجلات مشابهة للمثال التالي:
...
2023-12-18T07:09:54.020Z INFO 16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8090 (https)
2023-12-18T07:09:54.116Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Starting service [Tomcat]
2023-12-18T07:09:54.117Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:54.522Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:54.524Z INFO 16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 14100 ms
2023-12-18T07:09:56.920Z INFO 16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8090 (https) with context path ''
2023-12-18T07:09:57.528Z INFO 16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http)
2023-12-18T07:09:57.529Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Starting service [Tomcat]
2023-12-18T07:09:57.529Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:57.629Z INFO 16715 --- [main] org.apache.juli.logging.DirectJDKLog : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:57.629Z INFO 16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 603 ms
2023-12-18T07:09:57.824Z INFO 16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2023-12-18T07:09:58.127Z INFO 16715 --- [main] o.springframework.boot.StartupInfoLogger : Started ReconcilerApplication in 21.005 seconds (process running for 22.875)
...
عرض سجلات الذيل لمثيل flux-source-controller
استخدم الأمر التالي لعرض سجلات الذيل ل flux-source-controller
:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name flux-source-controller \
--instance <instance-name>
يقوم الأمر بإرجاع سجلات مشابهة للمثال التالي:
...
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"setup","msg":"starting manager"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","kind":"health probe","addr":"[::]:9440"}
{"level":"info","ts":"2023-12-18T07:07:54.817Z","logger":"runtime","msg":"attempting to acquire leader lease flux-system/source-controller-leader-election...\n"}
{"level":"info","ts":"2023-12-18T07:07:54.830Z","logger":"runtime","msg":"successfully acquired lease flux-system/source-controller-leader-election\n"}
...
عرض سجلات الذيل لمثيل spring-cloud-gateway
استخدم الأمر التالي لعرض سجلات الذيل ل spring-cloud-gateway
:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name spring-cloud-gateway \
--instance <instance-name>
يقوم الأمر بإرجاع سجلات مشابهة للمثال التالي:
...
2023-12-11T14:13:40.310Z INFO 1 --- [ main] i.p.s.c.g.s.SsoDeactivatedConfiguration : SSO is deactivated, setting up default security filters
2023-12-11T14:13:40.506Z INFO 1 --- [ main] .h.HazelcastReactiveSessionConfiguration : Configuring Hazelcast as a session management storage
2023-12-11T14:13:51.008Z INFO 1 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8443
2023-12-11T14:13:51.810Z INFO 1 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 7 endpoint(s) beneath base path '/actuator'
2023-12-11T14:13:52.410Z INFO 1 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8090
2023-12-11T14:13:52.907Z INFO 1 --- [ main] i.p.s.c.g.r.h.HazelcastRateLimitsRemover : Removing Hazelcast map 'GLOBAL_RATE_LIMIT' with rate limit information
2023-12-11T14:13:52.912Z INFO 1 --- [ main] i.p.s.cloud.gateway.GatewayApplication : Started GatewayApplication in 36.084 seconds (process running for 38.651)
...
عرض سجلات الذيل لمثيل عامل تشغيل spring-cloud-gateway
استخدم الأمر التالي لعرض سجلات الذيل ل spring-cloud-gateway-operator
:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name spring-cloud-gateway-operator \
--instance <instance-name>
يقوم الأمر بإرجاع سجلات مشابهة للمثال التالي:
...
2023-12-01T08:37:05.080Z INFO 1 --- [ main] c.v.t.s.OperatorApplication : Starting OperatorApplication v2.0.6 using Java 17.0.7 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2023-12-01T08:37:05.157Z INFO 1 --- [ main] c.v.t.s.OperatorApplication : No active profile set, falling back to 1 default profile: "default"
2023-12-01T08:37:14.379Z INFO 1 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-12-01T08:37:15.274Z INFO 1 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080
2023-12-01T08:37:15.366Z INFO 1 --- [ main] c.v.t.s.OperatorApplication : Started OperatorApplication in 11.489 seconds (process running for 12.467)
...
عرض سجلات الذيل لمثيل خادم التكوين
استخدم الأمر التالي لعرض سجلات الذيل ل config-server
:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name config-server \
--instance <instance-name>
يقوم الأمر بإرجاع سجلات مشابهة للمثال التالي:
...
{"app":"config-server","ts":"2024-05-08T05:38:29.44Z","logger":"org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext","level":"INFO","class":"org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext","method":"prepareWebApplicationContext","file":"ServletWebServerApplicationContext.java","line":291,"thread":"main","message":"Root WebApplicationContext: initialization completed in 3771 ms"}
{"app":"config-server","ts":"2024-05-08T05:38:31.058Z","logger":"com.microsoft.azure.spring.service.CloudConfigServerApplication","level":"INFO","class":"org.springframework.boot.StartupInfoLogger","method":"logStarted","file":"StartupInfoLogger.java","line":57,"thread":"main","message":"Started CloudConfigServerApplication in 6.888 seconds (process running for 8.986)"}
...
عرض سجلات الذيل لكافة المثيلات في أمر واحد
لعرض سجلات الذيل لكافة المثيلات، استخدم الوسيطة --all-instances
، كما هو موضح في الأمر التالي. اسم المثيل هو بادئة كل سطر سجل. عند وجود مثيلات متعددة، تتم طباعة السجلات على دفعة لكل مثيل، لذلك لا يتم تداخل سجلات مثيل واحد مع سجلات مثيل آخر.
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <component-name> \
--all-instances
دفق سجلات جديدة باستمرار
بشكل افتراضي، az spring component logs
يطبع السجلات الموجودة فقط التي تم دفقها إلى وحدة التحكم ثم يخرج. إذا كنت تريد دفق سجلات جديدة، أضف الوسيطة -f/--follow
.
عند استخدام -f/--follow
الخيار لتعقب السجلات الفورية، ترسل خدمة تدفق سجل Azure Spring Apps سجلات كشف أخطاء الاتصال إلى العميل كل دقيقة ما لم يكن المكون يكتب السجلات باستمرار. تستخدم رسائل سجل رسالة كشف أخطاء الاتصال التنسيق التالي: 2023-12-18 09:12:17.745: No log from server
.
دفق السجلات لمثيل معين
استخدم الأمر التالي لدفق السجلات لمثيل معين:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <component-name> \
--instance <instance-name> \
--follow
سجلات الدفق لجميع المثيلات
استخدم الأمر التالي لدفق السجلات لجميع المثيلات:
az spring component logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <component-name> \
--all-instances \
--follow
عند دفق سجلات لمثيلات متعددة في مكون، تتداخل سجلات مثيل واحد مع سجلات أخرى.
دفق السجلات في مثيل حقن الشبكة الظاهرية
بالنسبة لمثيل Azure Spring Apps المنشور في شبكة ظاهرية مخصصة، يمكنك الوصول إلى دفق السجل بشكل افتراضي من شبكة خاصة. لمزيد من المعلومات، راجع توزيع Azure Spring Apps في شبكة ظاهرية
تمكنك Azure Spring Apps أيضا من الوصول إلى سجلات المكونات المدارة في الوقت الحقيقي من شبكة عامة.
إشعار
يؤدي تمكين نقطة نهاية دفق السجل على الشبكة العامة إلى إضافة عنوان IP عام وارد إلى شبكتك الظاهرية. تأكد من توخي الحذر إذا كان هذا مصدر قلق بالنسبة لك.
استخدم الخطوات التالية لتمكين نقطة نهاية تدفق السجل على الشبكة العامة:
بعد تمكين نقطة النهاية العامة لدفق السجل، يمكنك الوصول إلى سجلات المكونات المدارة من شبكة عامة تماما كما يمكنك الوصول إلى مثيل عادي.
تأمين نسبة استخدام الشبكة إلى نقطة النهاية العامة لتدفق السجل
يستخدم دفق السجل للمكونات المدارة Azure RBAC لمصادقة الاتصالات بالمكونات. ونتيجة لذلك، يمكن فقط للمستخدمين الذين لديهم الأدوار المناسبة الوصول إلى السجلات.
لضمان أمان المكونات المدارة عند الكشف عن نقطة نهاية عامة لها، قم بتأمين نقطة النهاية عن طريق تصفية حركة مرور الشبكة إلى الخدمة الخاصة بك باستخدام مجموعة أمان الشبكة. لمزيد من المعلومات، راجع البرنامج التعليمي: تصفية نسبة استخدام الشبكة باستخدام مجموعة أمان الشبكة باستخدام مدخل Microsoft Azure. تحتوي مجموعة أمان الشبكة على قواعد أمان تسمح (أو ترفض) نسبة استخدام الشبكة الوارد (أو الصادر) إلى عدة أنواع من موارد Azure. يُمكنك تحديد، لكل قاعدة أمان، مصدر ووجهة ومنفذ وبروتوكول.
إشعار
إذا لم تتمكن من الوصول إلى سجلات المكونات المدارة في مثيل حقن الشبكة الظاهرية من الإنترنت بعد تمكين نقطة نهاية عامة لدفق السجل، فتحقق من مجموعة أمان الشبكة لمعرفة ما إذا كنت قد سمحت بنسبة استخدام الشبكة الواردة هذه.
يعرض الجدول التالي مثالا على قاعدة أساسية نوصي بها. يمكنك استخدام أوامر مثل nslookup
مع نقطة <service-name>.private.azuremicroservices.io
النهاية للحصول على عنوان IP الهدف للخدمة.
أولوية | الاسم | المنفذ | البروتوكول | المصدر | الوجهة | الإجراء |
---|---|---|---|---|---|---|
100 | اسم القاعدة | 80 | TCP | الإنترنت | عنوان IP للخدمة | السماح |
110 | اسم القاعدة | 443 | TCP | الإنترنت | عنوان IP للخدمة | السماح |
الخطوات التالية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ