مراقبة في الوقت الحقيقي، والمقاييس، والوصول إلى السجلات لـ Azure CDN

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

  • توفر السجلات الأولية معلومات منسقة حول كل طلب تتلقاه شبكة تسليم المحتوى. تختلف السجلات الأولية عن سجلات النشاط. توفر سجلات النشاط إمكانية رؤية العمليات التي تم إجراؤها على موارد Azure.
  • المقاييس، التي تعرض أربعة مقاييس رئيسية على شبكة تسليم المحتوى، بما في ذلك نسبة البايت إلى الوصول وعدد الطلبات وحجم الاستجابة وإجمالي زمن الانتقال. كما يوفر أبعاداً مختلفة لكسر المقاييس.
  • تنبيه، والذي يسمح للعميل بإعداد تنبيه للمقاييس الرئيسية
  • المزيد من المقاييس، التي تسمح للعملاء باستخدام Azure Log Analytics لتمكين المزيد من مقاييس القيمة. كما نقدم عينات استعلام لبعض المقاييس الأخرى ضمن Azure Log Analytics.

هام

تتوفر ميزة سجلات HTTP الأولية لـ Azure CDN من Microsoft.

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

تسجيل الدخول إلى Azure

قم بتسجيل الدخول إلى بوابة Azure.

التكوين - مدخل Azure

لتكوين السجلات الأولية لـ Azure CDN من ملف التعريف Microsoft:

  1. في قائمة مدخل Azur، حدد جميع الخدمات>><ملف تعريف شبكة تسليم المحتوى الخاص بك>.

  2. ضمن Monitoring، اختر Diagnostics settings.

  3. حدد + Add diagnostic setting.

    إضافة إعداد تشخيص لملف تعريف شبكة تسليم المحتوى.

    هام

    تتوفر السجلات الأولية فقط في مستوى ملف التعريف بينما تتوفر سجلات التعليمات البرمجية لحالة HTTP المجمعة في مستوى نقطة النهاية.

  4. ضمن إعدادات التشخيص، أدخل اسماً لإعداد التشخيص ضمن اسم إعدادات التشخيص.

  5. حدد AzureCdnAccessLog وقم بتعيين استبقاء البيانات بالأيام.

  6. حدد «Destination details» خيارات الوجهة هي:

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

    تكوين الوجهة لإعدادات السجل.

  7. حدد حفظ.

التكوين - Azure PowerShell

استخدم Set-AzDiagnosticSetting لتكوين إعداد التشخيص للسجلات الأولية.

يتم تعريف بيانات الاستبقاء بواسطة الخيار -RetentionInDays في الأمر.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

تمكين سجلات التشخيص في حساب تخزين

  1. تسجيل الدخول إلى⁧⁩Azure PowerShell⁧⁩.

    Connect-AzAccount 
    
  2. لتمكين السجلات التشخيصية في حساب تخزين، أدخل هذه الأوامر. استبدل المتغيرات بالقيم الخاصة بك:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $storageacct = <your-storage-account-name>
    $diagname = <your-diagnostic-setting-name>
    $days = '30'
    
    $cdn = Get-AzCdnProfile -ResourceGroupName $rsg -ProfileName $cdnprofile
    
    $storage = Get-AzStorageAccount -ResourceGroupName $rsg -Name $storageacct
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -StorageAccountId $storage.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

تمكين سجلات التشخيص لمساحة عمل Log Analytics

  1. تسجيل الدخول إلى⁧⁩Azure PowerShell⁧⁩.

    Connect-AzAccount 
    
  2. لتمكين السجلات التشخيصية لمساحة عمل Log Analytics، أدخل هذه الأوامر. استبدل المتغيرات بالقيم الخاصة بك:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $workspacename = <your-log-analytics-workspace-name>
    $diagname = <your-diagnostic-setting-name>
    $days = '30'
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rsg -Name $workspacename
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -WorkspaceId $workspace.ResourceId -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

تمكين سجلات التشخيص لمساحة اسم مركز الأحداث

  1. تسجيل الدخول إلى⁧⁩Azure PowerShell⁧⁩.

    Connect-AzAccount 
    
  2. لتمكين سجلات التشخيص لمساحة اسم لوحة مركز الحدث، أدخل هذه الأوامر. استبدل المتغيرات بالقيم الخاصة بك:

    ## Variables for the commands ##
    $rsg = <your-resource-group-name>
    $cdnprofile = <your-cdn-profile-name>
    $cdnendpoint = <your-cdn-endpoint-name>
    $evthubnamespace = <your-event-hub-namespace-name>
    $diagname = <your-diagnostic-setting-name>
    
    $cdn = Get-AzCdnEndpoint -ResourceGroupName $rsg -ProfileName $cdnprofile -EndpointName $cdnendpoint
    
    $eventhub = Get-AzEventHubNamespace -ResourceGroupName $rsg -Name $eventhubname
    
    Set-AzDiagnosticSetting -Name $diagname -ResourceId $cdn.id -EventHubName $eventhub.id -Enabled $true -Category AzureCdnAccessLog -RetentionEnabled 1 -RetentionInDays $days
    

خصائص السجلات الأولية

يوفر Azure CDN من خدمة Microsoft حالياً سجلات أولية. توفر السجلات الأولية طلبات واجهة برمجة التطبيقات الفردية مع كل إدخال وجود المخطط التالي:

الخاصية ‏‏الوصف
BackendHostname إذا تمت إعادة توجيه الطلب إلى الخلفية، فإن هذا الحقل يمثل اسم مضيف الخلفية. يكون هذا الحقل فارغا إذا تمت إعادة توجيه الطلب أو إعادة توجيهه إلى ذاكرة تخزين مؤقت إقليمية (عند تمكين التخزين المؤقت لقاعدة التحويل).
CacheStatus بالنسبة لسيناريوهات التخزين المؤقت، يحدد هذا الحقل نتيجة/خطأ ذاكرة التخزين المؤقت في بروتوكول POP
ClientIP عنوان IP للعميل الذي قدم الطلب. إذا كان هناك رأس X-Forwarded-For في الطلب، فسيتم اختيار عنوان IP للعميل من نفس العنوان.
منفذ العميل منفذ IP الخاص بالعميل الذي قدم الطلب.
HttpMethod طريقة HTTP المستخدمة في الطلب.
HttpStatusCode تم إرجاع رمز حالة HTTP من الوكيل. إذا كان طلب إلى مهلة الأصل يتم تعيين قيمة HttpStatusCode إلى 0.
HttpStatusDetails الحالة الناتجة عن الطلب. يمكن العثور على معنى قيمة السلسلة هذه في الجدول المرجعي للحالة.
HttpVersion نوع الطلب أو الاتصال.
POP الاسم المختصر للحافة التي وصل إليها الطلب.
RequestBytes حجم رسالة طلب HTTP بالبايت، بما في ذلك رؤوس الطلب ونص الطلب.
RequestUri URI للطلب المستلم.
ResponseBytes البايت المرسلة من خادم الواجهة الخلفية كاستجابة.
RoutingRuleName اسم قاعدة التحويل التي تطابق الطلب.
RulesEngineMatchNames أسماء القواعد المطابقة للطلب.
SecurityProtocol إصدار بروتوكول TLS/SSL المستخدم بواسطة الطلب أو إصدار فارغ إذا لم يكن هناك تشفير.
SentToOriginShield
(مهمل) * راجع الملاحظات حول الإهمال في القسم التالي.
إذا كان هذا صحيحاً، فهذا يعني أنه تم الرد على هذا الطلب من ذاكرة التخزين المؤقت للدرع الأصلي بدلاً من الحافة المنبثقة. درع الأصل هو ذاكرة تخزين مؤقت الأصل تستخدم لتحسين نسبة عدد مرات الدخول إلى ذاكرة التخزين المؤقت.
isReceivedFromClient إذا كان هذا صحيحاً، فهذا يعني أن الطلب جاء من العميل. إذا كان خطأ، فإن الطلب هو خطأ في الحافة (POP التابع للطفل) ويتم الرد عليه من الفرع الأصلي (POP الأصلي).
TimeTaken طول الوقت من البايت الأول من الطلب إلى Azure Front Door إلى البايت الأخير من الاستجابة، بالثوان.
TrackingReference السلسلة المرجعية الفريدة التي تحدد طلبا يقدمه Azure Front Door، والتي يتم إرسالها أيضا كعنوان X-Azure-Ref إلى العميل. مطلوب للبحث عن تفاصيل في سجلات الوصول لطلب معين.
UserAgent نوع المتصفح الذي استخدمه العميل.
ErrorInfo يحتوي هذا الحقل على نوع معين من الأخطاء لتضييق منطقة استكشاف الأخطاء وإصلاحها.
تتضمن القيم المحتملة:
NoError: يشير إلى عدم العثور على خطأ.
CertificateError: خطأ شهادة SSL عام.
CertificateNameCheckFailed: اسم المضيف في شهادة SSL غير صالح أو غير مطابق.
ClientDisconnected: فشل الطلب بسبب اتصال شبكة العميل.
UnspecifiedClientError: خطأ عام للعميل.
InvalidRequest: طلب غير صالح. قد يحدث بسبب عدم تكوين رأس ونص وعنوان URL بشكل غير صحيح.
DNSFailure: فشل DNS.
DNSNameNotResolved: تعذر تحليل اسم الخادم أو العنوان.
OriginConnectionAborted: توقف الاتصال بالأصل فجأة.
خطأ OriginConnectionError: خطأ اتصال أصل عام.
OriginConnectionRefused: تعذر إنشاء الاتصال بالأصل.
OriginError: خطأ أصل عام.
OriginInvalidResponse: عرض الأصل استجابة غير صالحة أو غير معروفة.
OriginTimeout: انتهت مهلة طلب الأصل.
ResponseHeaderTooBig: أرجع الأصل حجماً كبيراً جداً من رأس الاستجابة.
RestrictedIP: تم حظر الطلب بسبب عنوان IP المقيد.
SSLHandshakeError: تعذر إنشاء اتصال مع الأصل بسبب فشل اهتزاز يد SSL.
UnspecifiedError: حدث خطأ لا يتناسب مع أي من الأخطاء في الجدول.
TimeToFirstByte طول الفترة الزمنية بالمللي ثانية من وقت تلقي Microsoft CDN للطلب إلى وقت إرسال البايت الأول إلى العميل. يتم قياس الوقت فقط من جانب Microsoft. لا يتم قياس البيانات من جانب العميل.
النتيجة SSLMismatchedSNI هو رمز حالة يشير إلى طلب ناجح مع تحذير عدم تطابق بين إشارة اسم الخادم (SNI) ورأس المضيف. يشير رمز الحالة هذا إلى واجهة المجال، وهي تقنية تنتهك شروط خدمة Azure Front Door. سيتم رفض الطلبات مع SSLMismatchedSNI بعد 22 يناير 2024.
SNI يحدد هذا الحقل إشارة اسم الخادم (SNI) التي يتم إرسالها أثناء تأكيد اتصال TLS/SSL. يمكن استخدامه لتحديد قيمة SNI الدقيقة إذا كان SSLMismatchedSNI هناك رمز حالة. بالإضافة إلى ذلك، يمكن مقارنتها بقيمة المضيف في requestUri الحقل للكشف عن مشكلة عدم التطابق وحلها.

إشعار

يمكن عرض السجلات ضمن ملف تعريف Log Analytics عن طريق تشغيل استعلام. قد تبدو عينة استعلام مثل: AzureDiagnostics | where Category == "AzureCdnAccessLog"

تم الإرسال إلى إيقاف الدرع الأصل

يتم إهمال خاصية السجل الخام isSentToOriginShield واستبدالها بالحقل الجديد isReceivedFromClient. استخدم الحقل الجديد إذا كنت تستخدم الحقل المهمل بالفعل.

تتضمن السجلات الأولية السجلات التي تم إنشاؤها من كل من حافة CDN (POP التابع) ودرع الأصل. يشير درع الأصل إلى العقد الأصلية التي تقع إستراتيجياً في جميع أنحاء العالم. تتواصل هذه العقد مع الخوادم الأصلية وتقلل من حمل المرور على الأصل.

لكل طلب يذهب إلى درع الأصل، هناك إدخالان للسجل:

  • واحد لعُقد الحافة
  • واحد لدرع المنشأ.

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

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

نموذج استعلام Kusto لاستبعاد السجلات التي تم إنشاؤها على درع الأصل في Log Analytics.

AzureDiagnostics
| where OperationName == "Microsoft.Cdn/Profiles/AccessLog/Write" and Category == "AzureCdnAccessLog"
| where isReceivedFromClient == true

هام

تتوفر ميزة سجلات HTTP الأولية تلقائياً لأي ملفات تعريف تم إنشاؤها أو تحديثها بعد 25 فبراير 2020. بالنسبة إلى ملفات تعريف شبكة تسليم المحتوى التي تم إنشاؤها سابقاً، يجب على المرء تحديث نقطة نهاية شبكة تسليم المحتوى بعد إعداد التسجيل. على سبيل المثال، يمكن للمرء الانتقال إلى التصفية الجغرافية تحت نقاط نهاية شبكة تسليم المحتوى وحظر أي بلد/منطقة غير ذات صلة بحمل العمل الخاص به وضرب الحفظ.

المقاييس

يتم تكامل Azure CDN من Microsoft مع Azure Monitor ونشر أربعة مقاييس لشبكة تسليم المحتوى للمساعدة في تعقب المشكلات وإصلاحها وتصحيحها.

يتم عرض المقاييس في المخططات البيانية ويمكن الوصول إليها عبر PowerShell وCLI وAPI. مقاييس شبكة تسليم محتوى مجانية.

يقيس Azure CDN من Microsoft ويرسل مقاييسه في فواصل زمنية 60 ثانية. يمكن أن تستغرق المقاييس ما يصل إلى 3 دقائق لتظهر في المدخل.

لمزيد من المعلومات، راجع مقاييس Azure Monitor.

المقاييس التي يدعمها Azure CDN من Microsoft

مقاييس ‏‏الوصف الأبعاد
نسبة مرات الوصول بالبايت* النسبة المئوية للخروج من ذاكرة التخزين المؤقت لشبكة تسليم المحتوى، محسوبة مقابل إجمالي الخروج. نقطة النهاية
RequestCount عدد طلبات العملاء التي تقدمها شبكة تسليم المحتوى (CDN). بلد عميل نقطة النهاية
.
منطقة العميل.
حالة HTTP.
مجموعة حالة HTTP.
ResponseSize عدد وحدات البايت المرسلة كاستجابات من حافة شبكة تسليم المحتوى للعملاء. بلد عميل نقطة النهاية
.
منطقة العميل.
حالة HTTP.
مجموعة حالة HTTP.
TotalLatency إجمالي الوقت بدءًا من طلب العميل الذي تلقته شبكة تسليم المحتوى (CDN) حتى إرسال آخر بايت من الاستجابة من شبكة تسليم المحتوى (CDN) إلى العميل. بلد عميل نقطة النهاية
.
منطقة العميل.
حالة HTTP.
مجموعة حالة HTTP.

إشعار

إذا تم تعيين طلب إلى مهلة الأصل، يتم تعيين قيمة HttpStatusCode إلى 0.

*نسبة عدد وحدات البايت = (الخروج من الحافة - الخروج من الأصل)/الخروج من الحافة

السيناريوهات المستثناة في حساب نسبة مرات الوصول بالبايت:

  • تكوين أي ذاكرة التخزين المؤقت بشكل صريح إما من خلال سلوك التخزين المؤقت "محرك القواعد" أو "سلسلة الاستعلام".
  • يمكنك تكوين توجيه التحكم في ذاكرة التخزين المؤقت بشكل صريح مع ذاكرة التخزين المؤقت الخاصة أو بدون مخزن.

تكوين المقاييس

  1. في قائمة مدخل Azur، حدد جميع الخدمات>><ملف تعريف شبكة تسليم المحتوى الخاص بك>.

  2. ضمن "مراقبة"، حدد "المقاييس":

    مقاييس لملف تعريف شبكة تسليم المحتوى.

  3. حدد إضافة مقياس، وحدد المقياس لإضافته:

    إضافة مقياس وتحديده لملف تعريف شبكة تسليم المحتوى.

  4. حدد "إضافة عامل تصفية" لإضافة عامل تصفية:

    تطبيق عامل التصفية على المقياس.

  5. حدد تطبيق التقسيم لرؤية الاتجاه حسب أبعاد مختلفة:

    تطبيق التقسيم على المقياس.

  6. حدد "مخطط جديد" لإضافة مخطط جديد:

    إضافة مخطط جديد إلى طريقة عرض القياس.

التنبيهات

يمكنك إعداد التنبيهات على Microsoft CDN عن طريق تحديد مراقبة>>التنبيهات.

حدد قاعدة تنبيه جديدة للمقاييس المُدرجة في قسم «المقاييس»:

تكوين التنبيهات لنقطة نهاية شبكة تسليم المحتوى.

يتم فرض رسوم على التنبيه استنادا إلى Azure Monitor. لمزيد من المعلومات حول التنبيهات، راجع تنبيهات Azure Monitor.

المزيد من المقاييس

يمكنك تمكين المزيد من المقاييس باستخدام Azure Log Analytics والسجلات الأولية بتكلفة إضافية.

  1. اتبع الخطوات الواردة في القسم السابق لتمكين التشخيصات من إرسال سجل أولي إلى Log Analytics.

  2. حدد مساحة عمل Log Analytics التي أنشأتها:

    لقطة شاشة لقائمة مساحة عمل Log Analytics المحددة.

  3. حدد Logs ضمن General في مساحة عمل Log Analytics. ثم حدد ⁧⁩بدء الاستخدام⁧⁩:

    لقطة شاشة لمساحة عمل مورد Log Analytics.

  4. حدد ملفات تعريف شبكة تسليم المحتوى. حدد استعلام مثال لتشغيل أو إغلاق شاشة المثال لإدخال استعلام مخصص:

    لقطة شاشة لشاشة استعلام المثال.

    لقطة شاشة لتنفيذ الاستعلام.

  5. لعرض البيانات حسب المخطط البياني، حدد المخطط البياني. حدد تثبيت بلوحة المعلومات لتثبيت المخطط البياني بلوحة معلومات Azure:

    لقطة شاشة لتثبيت المخطط بلوحة المعلومات.

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

في هذه المقالة، لقد قمت بتمكين سجلات HTTP الأولية لخدمة Microsoft CDN.

لمزيد من المعلومات حول Azure CDN وخدمات Azure الأخرى المذكورة في هذه المقالة، راجع: