سجلات التشخيص لبوابة التطبيق

توفر سجلات بوابة التطبيق معلومات مفصلة للأحداث المتعلقة بالمورد وعملياته. تتوفر هذه السجلات لأحداث مثل Access والنشاط وجدار الحماية والأداء (فقط ل V1). المعلومات الدقيقة في السجلات مفيدة عند استكشاف مشكلة وإصلاحها أو إنشاء لوحة معلومات تحليلات عن طريق استهلاك هذه البيانات الأولية.

تتوفر السجلات لجميع موارد Application Gateway؛ ومع ذلك، لاستهلاكها، يجب تمكين مجموعتها في موقع تخزين من اختيارك. يتم تمكين تسجيل الدخول إلى Azure Application Gateway بواسطة خدمة Azure Monitor. نوصي باستخدام مساحة عمل Log Analytics حيث يمكنك بسهولة استخدام استعلاماتها المحددة مسبقا وتعيين التنبيهات استنادا إلى شروط سجل محددة.

أنواع سجلات التشخيص

يمكنك استخدام أنواع مختلفة من السجلات في Azure لإدارة واستكشاف أخطاء application gateways وإصلاحها. يمكنك معرفة المزيد حول هذه الأنواع أدناه:

  • سجل النشاط: يمكنك استخدام سجلات نشاط Azure (المعروفة سابقاً باسم سجلات التشغيل وسجلات التدقيق) لعرض جميع العمليات التي تم إرسالها إلى اشتراك Azure وحالتها. يتم تجميع إدخالات سجل النشاط بشكل افتراضي، ويمكنك lمشاهدتها في مدخل Microsoft Azure.
  • سجل الوصول: يمكنك استخدام هذا السجل لعرض أنماط الوصول إلى بوابة التطبيق وتحليل المعلومات المهمة. يتضمن ذلك عنوان IP الخاص بالمتصل، وعنوان URL المطلوب، ووقت زمن انتقال الاستجابة، والتعليمة البرمجية للإرجاع، والبايت للداخل والخارج. حيث يتم جمع سجل الوصول كل 60 ثانية. يحتوي هذا التسجيل على سجل واحد لكل مثيل من Application Gateway. يتم تحديد مثيل Application Gateway بواسطة خاصية معرف المثيل.
  • سجل الأداء: يمكنك استخدام هذا السجل لعرض كيفية أداء مثيلات Application Gateway. يلتقط هذا السجل معلومات الأداء لكل مثيل، بما في ذلك إجمالي الطلبات المقدمة، ومعدل النقل بالبايت، وإجمالي الطلبات المقدمة، وعدد الطلبات الفاشلة، وعدد المثيلات الخلفية السليمة وغير السليمة. يتم تجميع سجل الأداء كل 60 ثانية. يتوفر سجل الأداء فقط لـ v1 SKU. بالنسبة إلى v2 SKU، استخدم المقاييس لبيانات الأداء.
  • سجل جدار الحماية: يمكنك استخدام هذا السجل لعرض الطلبات التي تم تسجيلها من خلال وضع الكشف أو المنع لـ application gateway التي تم تكوينها باستخدام جدار حماية تطبيق الويب. يتم جمع سجلات جدار الحماية كل 60 ثانية.

إشعار

تتوفر السجلات فقط للموارد المنشورة في نموذج توزيع Azure Resource Manager. لا يمكنك استخدام السجلات للموارد في نموذج النشر الكلاسيكي. للحصول على فهم أفضل للنموذجين، راجع مقالة فهم نشر Resource Manager والنشر الكلاسيكي.

مواقع التخزين

لديك الخيارات التالية لتخزين السجلات في موقعك المفضل.

مساحة عمل Log Analytic: يسمح لك هذا الخيار باستخدام الاستعلامات المعرفة مسبقا والمرئيات وتعيين التنبيهات استنادا إلى شروط سجل محددة. تعتمد الجداول المستخدمة بواسطة سجلات الموارد في مساحة عمل تحليلات السجل على نوع المجموعة التي يستخدمها المورد:

تشخيصات Azure: تتم كتابة البيانات إلى جدول تشخيصات Azure. تتم مشاركة جدول Azure Diagnostics بين نوع مورد متعدد، مع إضافة كل منها لحقول مخصصة خاصة به. عندما يتجاوز عدد الحقول المخصصة التي تم استيعابها في جدول تشخيصات Azure 500 حقل، لا تتم إضافة حقول جديدة كمستوى أعلى ولكن تتم إضافتها إلى حقل "AdditionalFields" كأزواج قيمة مفتاح ديناميكية.

خاص بالموارد (مستحسن): تتم كتابة البيانات إلى جداول مخصصة لكل فئة من فئات المورد. في الوضع الخاص بالمورد، يتم تعيين جدول كل فئة سجل محددة في إعداد التشخيص ضمن مساحة العمل المختارة. هذا له العديد من الفوائد، بما في ذلك:

بالنسبة ل Application Gateway، ينشئ الوضع الخاص بالموارد ثلاثة جداول:

إشعار

يتوفر الخيار الخاص بالمورد حاليا في جميع المناطق العامة.
يمكن للمستخدمين الحاليين الاستمرار في استخدام تشخيصات Azure، أو يمكنهم اختيار جداول مخصصة عن طريق تبديل في إعدادات التشخيص إلى Resource specific، أو إلى Dedicated في وجهة API. الوضع المزدوج غير ممكن. يمكن أن تتدفق البيانات الموجودة في جميع السجلات إما إلى تشخيصات Azure أو إلى جداول مخصصة. ومع ذلك، يمكن أن يكون لديك إعدادات تشخيص متعددة حيث يكون تدفق بيانات واحد إلى تشخيص azure وآخر يستخدم موردا محددا في نفس الوقت.

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

لقطة شاشة لمعرف المورد لبوابة التطبيق في المدخل.

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

أمثلة على تحسين سجلات الوصول باستخدام تحويلات مساحة العمل

مثال 1: الإسقاط الانتقائي للأعمدة: تخيل أن لديك سجلات وصول إلى بوابة التطبيق مع 20 عمودا، ولكنك مهتم بتحليل البيانات من 6 أعمدة محددة فقط. باستخدام تحويل مساحة العمل، يمكنك عرض هذه الأعمدة الستة في مساحة العمل الخاصة بك، باستثناء الأعمدة ال 14 الأخرى بشكل فعال. على الرغم من أن البيانات الأصلية من تلك الأعمدة المستبعدة لن يتم تخزينها، إلا أن العناصر النائبة الفارغة لها لا تزال تظهر في شفرة السجلات. يعمل هذا النهج على تحسين التخزين ويضمن الاحتفاظ بالبيانات ذات الصلة فقط للتحليل.

إشعار

ضمن جزء Logs، يؤدي تحديد خيار Try New Log Analytics إلى منح تحكم أكبر في الأعمدة المعروضة في واجهة المستخدم الخاصة بك.

مثال 2: التركيز على رموز الحالة المحددة: عند تحليل سجلات الوصول، بدلا من معالجة جميع إدخالات السجل، يمكنك كتابة استعلام لاسترداد الصفوف التي تحتوي على رموز حالة HTTP معينة فقط (مثل 4xx و5xx). نظرا لأن معظم الطلبات تندرج بشكل مثالي ضمن فئتي 2xx و3xx (تمثل الاستجابات الناجحة)، فإن التركيز على رموز الحالة الإشكالية يضيق نطاق مجموعة البيانات. يسمح لك هذا النهج المستهدف باستخراج المعلومات الأكثر ملاءمة وقابلية للتنفيذ، ما يجعلها مفيدة وفعالة من حيث التكلفة.

استراتيجية الانتقال الموصى بها للانتقال من تشخيص Azure إلى جدول خاص بالموارد:

  1. تقييم استبقاء البيانات الحالي: حدد المدة التي يتم فيها الاحتفاظ بالبيانات حاليا في جدول تشخيص Azure (على سبيل المثال: افترض أن جدول التشخيص يحتفظ بالبيانات لمدة 15 يوما).
  2. إنشاء استبقاء خاص بالموارد: تنفيذ إعداد تشخيص جديد مع جدول خاص بالمورد.
  3. تجميع البيانات المتوازية: لفترة مؤقتة، اجمع البيانات بشكل متزامن في كل من تشخيصات Azure والإعدادات الخاصة بالموارد.
  4. تأكيد دقة البيانات: تحقق من أن جمع البيانات دقيق ومتسق في كلا الإعدادين.
  5. إزالة إعداد تشخيص Azure: قم بإزالة إعداد تشخيص Azure لمنع جمع البيانات المكررة.

مواقع التخزين الأخرى:

  • حساب تخزين Azure: أفضل استخدام لحسابات التخزين للسجلات عند تخزين السجلات لمدة أطول ومراجعتها عند الحاجة.
  • مراكز أحداث Azure: تعد مراكز الأحداث خيارا رائعا للتكامل مع أدوات إدارة معلومات الأمان والأحداث الأخرى (SIEM) للحصول على تنبيهات حول مواردك.
  • تكاملات شركاء Azure Monitor.

تعرف على المزيد حول وجهات إعدادات تشخيص Azure Monitor .

تمكين تسجيل الدخول من خلال PowerShell

يتم تمكين تسجيل النشاط تلقائياً لكل مورد Resource Manager. يجب تمكين الوصول وتسجيل الأداء لبدء تجميع البيانات المتوفرة من خلال تلك السجلات. لتمكين تسجيل الدخول، استخدم الخطوات التالية:

  1. لاحظ معرف مورد حساب التخزين الخاص بك، حيث يتم تخزين بيانات السجل. هذه القيم بالشكل: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<اسم حساب التخزين>. يمكنك استخدام أي حساب تخزين في اشتراكك. يمكنك استخدام مدخل Microsoft Azure للبحث عن هذه المعلومات.

    لقطة شاشة لنقاط نهاية حساب التخزين

  2. لاحظ معرّف مورد application gateway الذي تم تمكين التسجيل له. هذه القيمة هي النموذج: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<اسم بوابة التطبيق>. يمكنك استخدام المدخل للعثور على هذه المعلومات.

    لقطة شاشة لخصائص بوابة التطبيق

  3. تمكين التسجيل التشخيصي باستخدام أمر PowerShell cmdlet التالي:

    Set-AzDiagnosticSetting  -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true     
    

تلميح

لا تتطلب سجلات النشاط حساب تخزين منفصل. يؤدي استخدام التخزين للوصول وتسجيل الأداء إلى فرض رسوم الخدمة.

تمكين تسجيل الدخول عبر مدخل Microsoft Azure

  1. في مدخل Azure، ابحث عن المورد وحدد Diagnostic settings.

    بالنسبة لـ Application Gateway، تتوفر ثلاثة سجلات:

    • سجل الوصول
    • سجل الأداء
    • سجل جدار الحماية
  2. لبدء تجميع البيانات، حدد Turn on diagnostics.

    تشغيل التشخيصات

  3. توفر الصفحة Diagnostics settings الإعدادات اللازمة لسجلات التشخيص. في هذا المثال، يخزن «Log Analytics» السجلات. ويمكنك أيضاً استخدام مراكز الأحداث وحساب تخزين لحفظ سجلات التشخيص.

    بدء عملية التكوين

  4. اكتب اسما للإعدادات، وتأكد من الإعدادات، وحدد Save.

سجل النشاط

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

سجل الوصول

يتم إنشاء سجل الوصول فقط إذا قمت بتمكينه على كل مثيل Application Gateway، كما هو مفصّل في الخطوات السابقة. يتم تخزين البيانات في حساب التخزين الذي حددته عند تمكين التسجيل. يتم تسجيل كل وصول إلى Application Gateway بتنسيق JSON كما هو موضح أدناه.

لـ Application Gateway وWAF v2 SKU

إشعار

  • للحصول على المعلومات المتعلقة بوكيل TLS/TCP، تفضل بزيارة مرجع البيانات.
  • لا يزال يتم نقل بعض الأعمدة من جدول AzureDiagnostics المشترك إلى الجداول المخصصة. لذلك، تتوفر الأعمدة التي تحتوي على تفاصيل المصادقة المتبادلة حاليا فقط من خلال جدول AzureDiagnostics.
  • تنشأ سجلات الوصول بقيمة clientIP 127.0.0.1 من عملية أمان داخلية تعمل على مثيلات بوابة التطبيق. يمكنك تجاهل إدخالات السجل هذه بأمان.
قيمة ‏‏الوصف
instanceId مثيل Application Gateway الذي قدم الطلب.
ClientIP IP للعميل المباشر لبوابة التطبيق. إذا كان وكيل آخر أمام بوابة التطبيق الخاص بك، فهذا يعرض IP لوكيل الواجهة الأمامية هذا.
httpMethod طريقة HTTP المستخدمة في الطلب.
requestUri URI للطلب المستلم.
UserAgent عامل المستخدم من عنوان طلب HTTP.
httpStatus إرجاع التعليمة البرمجية لحالة HTTP إلى العميل من Application Gateway.
httpVersion إصدار HTTP من الطلب.
receivedBytes حجم الحزمة المتلقاة بالبايت.
sentBytes حجم الحزمة المرسلة بالبايت.
clientResponseTime الفرق الزمني (بالثوان) بين البايت الأول وبوابة تطبيق البايت الأخيرة المرسلة إلى العميل. مفيد في مراقبة وقت معالجة بوابة التطبيق للاستجابات أو العملاء البطيءين.
timeTaken طول الوقت (بالثوان) الذي يستغرقه البايت الأول من طلب العميل ليتم معالجته وإرسال البايت الأخير الخاص به في الاستجابة للعميل. من المهم ملاحظة أن حقل الوقت المستغرق يتضمن عادةً الوقت الذي تنتقل فيه حزم الطلب والرد عبر الشبكة.
WAFEvaluationTime المدة الزمنية (بالثوان) التي يستغرقها الطلب ليتم معالجته بواسطة WAF.
WAFMode يمكن أن تكون القيمة إما الكشف أو الوقاية
transactionId معرف فريد لربط الطلب المستلم من العميل
sslEnabled ما إذا كان الاتصال بتجمعات الواجهة الخلفية يستخدم TLS. القيم الصالحة هي تشغيل وإيقاف.
sslCipher مجموعة التشفير المستخدمة لاتصال TLS (إذا تم تمكين TLS).
sslProtocol يكون بروتوكول SSL/TLS قيد الاستخدام (إذا تم تمكين TLS).
serverRouted الخادم الخلفي الذي يقوم application gateway بتوجيه الطلب إليه.
serverStatus التعليمة البرمجية لحالة HTTP للخادم الخلفي.
serverResponseLatency زمن الانتقال (بالثواني)من خادم الواجهة الخلفية.
مضيف العنوان المدرج في عنوان المضيف للطلب. إذا أعيدت كتابته باستخدام إعادة كتابة العنوان، فإن هذا الحقل يحتوي على اسم المضيف المحدث
originalRequestUriWithArgs يحتوي هذا الحقل على عنوان URL للطلب الأصلي
requestUri يحتوي هذا الحقل على عنوان URL بعد عملية إعادة الكتابة على Application Gateway
المصدرمصدر المصدر منفذ المصدر المستخدم من قبل بوابة التطبيق عند بدء اتصال بالهدف الخلفي
originalHost يحتوي هذا الحقل على اسم مضيف الطلب الأصلي
error_info سبب الخطأ 4xx و5xx. يعرض رمز خطأ لطلب فاشل. مزيد من التفاصيل في معلومات رمز الخطأ.
نوع المحتوى نوع المحتوى أو البيانات التي تتم معالجتها أو تسليمها بواسطة بوابة التطبيق
{
    "timeStamp": "2021-10-14T22:17:11+00:00",
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "listenerName": "HTTP-Listener",
    "ruleName": "Storage-Static-Rule",
    "backendPoolName": "StaticStorageAccount",
    "backendSettingName": "StorageStatic-HTTPS-Setting",
    "operationName": "ApplicationGatewayAccess",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "appgw_2",
        "clientIP": "185.42.129.24",
        "clientPort": 45057,
        "httpMethod": "GET",
        "originalRequestUriWithArgs": "\/",
        "requestUri": "\/",
        "requestQuery": "",
        "userAgent": "Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/52.0.2743.116 Safari\/537.36",
        "httpStatus": 200,
        "httpVersion": "HTTP\/1.1",
        "receivedBytes": 184,
        "sentBytes": 466,
        "clientResponseTime": 0,
        "timeTaken": 0.034,
        "WAFEvaluationTime": "0.000",
        "WAFMode": "Detection",
        "transactionId": "592d1649f75a8d480a3c4dc6a975309d",
        "sslEnabled": "on",
        "sslCipher": "ECDHE-RSA-AES256-GCM-SHA384",
        "sslProtocol": "TLSv1.2",
        "sslClientVerify": "NONE",
        "sslClientCertificateFingerprint": "",
        "sslClientCertificateIssuerName": "",
        "serverRouted": "52.239.221.65:443",
        "serverStatus": "200",
        "serverResponseLatency": "0.028",
        "upstreamSourcePort": "21564",
        "originalHost": "20.110.30.194",
        "host": "20.110.30.194",
        "error_info":"ERRORINFO_NO_ERROR",
        "contentType":"application/json"
    }
}

لمعيار Application Gateway وWAF SKU (v1)

قيمة ‏‏الوصف
instanceId مثيل Application Gateway الذي قدم الطلب.
ClientIP إنشاء IP للطلب.
clientPort إنشاء منفذ للطلب.
httpMethod طريقة HTTP المستخدمة في الطلب.
requestUri URI للطلب المستلم.
RequestQuery Server-Routed: مثيل تجمع الخلفية الذي تم إرسال الطلب.
X-AzureApplicationGateway-LOG-ID: معرف الارتباط المستخدم للطلب. يمكن استخدامه لاستكشاف مشكلات حركة المرور وإصلاحها على خوادم الواجهة الخلفية.
SERVER-STATUS: رمز استجابة HTTP الذي تلقته بوابة التطبيق من النهاية الخلفية.
UserAgent عامل المستخدم من عنوان طلب HTTP.
httpStatus إرجاع التعليمة البرمجية لحالة HTTP إلى العميل من Application Gateway.
httpVersion إصدار HTTP من الطلب.
receivedBytes حجم الحزمة المتلقاة بالبايت.
sentBytes حجم الحزمة المرسلة بالبايت.
timeTaken المدة الزمنية (بالملي ثانية) التي تستغرقها معالجة الطلب وإرسال استجابته. يتم حساب هذا على أنه الفاصل الزمني من وقت تلقي Application Gateway للبايت الأول من طلب HTTP إلى الوقت الذي تنتهي فيه عملية إرسال الاستجابة. من المهم ملاحظة أن حقل الوقت المستغرق يتضمن عادةً الوقت الذي تنتقل فيه حزم الطلب والرد عبر الشبكة.
sslEnabled ما إذا كان الاتصال بتجمعات الواجهة الخلفية يستخدم TLS/SSL. القيم الصالحة هي تشغيل وإيقاف.
مضيف اسم المضيف الذي تم إرسال الطلب إليه إلى الخادم الخلفي. إذا تم تجاوز اسم مضيف الواجهة الخلفية، فإن هذا الاسم يعكس ذلك.
originalHost اسم المضيف الذي تم تلقي الطلب من قبل بوابة التطبيق من العميل.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayAccess",
    "time": "2017-04-26T19:27:38Z",
    "category": "ApplicationGatewayAccessLog",
    "properties": {
        "instanceId": "ApplicationGatewayRole_IN_0",
        "clientIP": "191.96.249.97",
        "clientPort": 46886,
        "httpMethod": "GET",
        "requestUri": "/phpmyadmin/scripts/setup.php",
        "requestQuery": "X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.4.0.4&X-AzureApplicationGateway-LOG-ID=874f1f0f-6807-41c9-b7bc-f3cfa74aa0b1&SERVER-STATUS=404",
        "userAgent": "-",
        "httpStatus": 404,
        "httpVersion": "HTTP/1.0",
        "receivedBytes": 65,
        "sentBytes": 553,
        "timeTaken": 205,
        "sslEnabled": "off",
        "host": "www.contoso.com",
        "originalHost": "www.contoso.com"
    }
}

معلومات رمز الخطأ

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

أخطاء 4XX (تشير رموز الخطأ 4xx إلى وجود مشكلة في طلب العميل، ولا يمكن لبوابة التطبيق الوفاء بها.)
ERRORINFO_INVALID_METHOD أرسل العميل طلبا غير متوافق مع RFC. الأسباب المحتملة: العميل الذي يستخدم أسلوب HTTP غير مدعوم من قبل الخادم، الأسلوب الذي به خطأ إملائي، إصدار بروتوكول HTTP غير متوافق وما إلى ذلك.
ERRORINFO_INVALID_REQUEST لا يمكن للخادم تلبية الطلب بسبب بناء جملة غير صحيح.
ERRORINFO_INVALID_VERSION تلقت بوابة التطبيق طلبا بإصدار HTTP غير صالح أو غير معتمد.
ERRORINFO_INVALID_09_METHOD أرسل العميل طلبا مع إصدار بروتوكول HTTP 0.9.
ERRORINFO_INVALID_HOST القيمة المتوفرة في عنوان "المضيف" مفقودة أو منسقة بشكل غير صحيح أو لا تتطابق مع قيمة المضيف المتوقعة. على سبيل المثال، عندما لا يوجد مستمع أساسي، ولا يتطابق أي من أسماء مضيفي وحدات الاستماع متعددة المواقع مع المضيف.
ERRORINFO_INVALID_CONTENT_LENGTH لا يتطابق طول المحتوى المحدد من قبل العميل في عنوان طول المحتوى مع الطول الفعلي للمحتوى في الطلب.
ERRORINFO_INVALID_METHOD_TRACE أرسل العميل أسلوب HTTP TRACE، وهو غير مدعوم من قبل بوابة التطبيق.
ERRORINFO_CLIENT_CLOSED_REQUEST أغلق العميل الاتصال ببوابة التطبيق قبل انقضاء فترة مهلة الخمول. تحقق مما إذا كانت فترة مهلة العميل أكبر من فترة مهلة الخمول لبوابة التطبيق.
ERRORINFO_REQUEST_URI_INVALID يشير إلى وجود مشكلة في معرف الموارد الموحد (URI) المتوفر في طلب العميل.
ERRORINFO_HTTP_NO_HOST_HEADER أرسل العميل طلبا بدون عنوان المضيف.
ERRORINFO_HTTP_TO_HTTPS_PORT أرسل العميل طلب HTTP عادي إلى منفذ HTTPS.
ERRORINFO_HTTPS_NO_CERT يشير إلى أن العميل لا يرسل شهادة TLS صالحة ومكونة بشكل صحيح أثناء مصادقة TLS المتبادلة.
أخطاء 5XX ‏‏الوصف
ERRORINFO_UPSTREAM_NO_LIVE بوابة التطبيق غير قادرة على العثور على أي خوادم خلفية نشطة أو يمكن الوصول إليها لمعالجة الطلبات الواردة
ERRORINFO_UPSTREAM_CLOSED_CONNECTION أغلق الخادم الخلفي الاتصال بشكل غير متوقع أو قبل معالجة الطلب بالكامل. قد يحدث هذا بسبب وصول الخادم الخلفي إلى حدوده، أو تعطله، وما إلى ذلك.
ERRORINFO_UPSTREAM_TIMED_OUT تم إغلاق اتصال TCP الذي تم إنشاؤه مع الخادم حيث استغرق الاتصال وقتا أطول من قيمة المهلة المكونة.

سجل الأداء

يتم إنشاء سجل الأداء فقط إذا قمت بتمكينه على كل مثيل Application Gateway، كما هو مفصل في الخطوات السابقة. يتم تخزين البيانات في حساب التخزين الذي حددته عند تمكين التسجيل. يتم إنشاء بيانات سجل الأداء في فترات زمنية مدتها دقيقة واحدة. وهي متاحة فقط ل v1 SKU. بالنسبة إلى v2 SKU، استخدم المقاييس لبيانات الأداء. يتم تسجيل البيانات التالية:

قيمة ‏‏الوصف
instanceId مثيل Application Gateway الذي يتم إنشاء بيانات الأداء من أجله. بالنسبة لبوابة تطبيق متعددة المثيلات، هناك صف واحد لكل مثيل.
healthyHostCount عدد المضيفين الأصحاء في تجمع الخلفية.
unHealthyHostCount عدد المضيفين غير السليمين في تجمع الخلفية.
requestCount عدد الطلبات التي تقديمها.
زمن الوصول متوسط زمن الوصول (بالملي ثانية) للطلبات من النسخة إلى النهاية الخلفية التي تخدم الطلبات.
failedRequestCount عدد الطلبات الفاشلة.
معدل النقل متوسط معدل النقل منذ السجل الأخير، مقاساً بالبايت في الثانية.
{
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayPerformance",
    "time": "2016-04-09T00:00:00Z",
    "category": "ApplicationGatewayPerformanceLog",
    "properties":
    {
        "instanceId":"ApplicationGatewayRole_IN_1",
        "healthyHostCount":"4",
        "unHealthyHostCount":"0",
        "requestCount":"185",
        "latency":"0",
        "failedRequestCount":"0",
        "throughput":"119427"
    }
}

إشعار

يتم حساب زمن الانتقال من وقت استلام البايت الأول من طلب HTTP إلى وقت إرسال البايت الأخير من استجابة HTTP. إنه مجموع وقت معالجة Application Gateway بالإضافة إلى تكلفة الشبكة حتى النهاية، بالإضافة إلى الوقت الذي تستغرقه حتى النهاية لمعالجة الطلب.

سجل جدار الحماية

يتم إنشاء سجل جدار الحماية فقط إذا قمت بتمكينه لكل application gateway، كما هو مفصل في الخطوات السابقة. كما يتطلب هذا السجل أيضاً تكوين جدار حماية تطبيق الويب على application gateway. يتم تخزين البيانات في حساب التخزين الذي حددته عند تمكين التسجيل. يتم تسجيل البيانات التالية:

قيمة ‏‏الوصف
instanceId مثيل Application Gateway الذي يتم من أجله إنشاء بيانات جدار الحماية. بالنسبة لبوابة تطبيق متعددة المثيلات، هناك صف واحد لكل مثيل.
clientIp إنشاء IP للطلب.
clientPort إنشاء منفذ للطلب.
requestUri URL للطلب المستلم.
ruleSetType نوع مجموعة القواعد. القيمة المتوفرة هي OWASP.
ruleSetVersion إصدار مجموعة القواعد المستخدمة. القيم المتوفرة هي 2.2.9 و3.0.
ruleId معرّف القاعدة للحدث المشغل.
رسالة رسالة سهلة الاستخدام للحدث المشغل. يتم توفير المزيد من التفاصيل في قسم التفاصيل.
إجراء الإجراءات المتخذة بناءً على الطلب. القيم المتاحة محظورة ومسموح بها (للقواعد المخصصة)، ومتوافقة (عندما تتطابق قاعدة مع جزء من الطلب)، ومكتشفة ومحظورة (كلاهما للقواعد الإلزامية، اعتماداً على ما إذا كان WAF في وضع الاكتشاف أو المنع).
موقع الموقع الذي تم إنشاء السجل من أجله. حاليا، يتم سرد العمومية فقط لأن القواعد عمومية.
details تفاصيل الحدث المشغل.
details.message وصف القاعدة.
details.data بيانات محددة تم العثور عليها عند الطلب تطابق القاعدة.
details.file ملف التكوين الذي يحتوي على القاعدة.
details.line رقم السطر في ملف التكوين الذي قام بتشغيل الحدث.
اسم المضيف اسم المضيف أو عنوان IP لـ Application Gateway.
transactionId معرّف فريد لمعاملة معينة يساعد في تجميع انتهاكات القواعد المتعددة التي حدثت في نفس الطلب.
{
    "timeStamp": "2021-10-14T22:17:11+00:00",
    "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
    "operationName": "ApplicationGatewayFirewall",
    "category": "ApplicationGatewayFirewallLog",
    "properties": {
        "instanceId": "appgw_2",
        "clientIp": "185.42.129.24",
        "clientPort": "",
        "requestUri": "\/",
        "ruleSetType": "OWASP_CRS",
        "ruleSetVersion": "3.0.0",
        "ruleId": "920350",
        "message": "Host header is a numeric IP address",
        "action": "Matched",
        "site": "Global",
        "details": {
            "message": "Warning. Pattern match \\\"^[\\\\d.:]+$\\\" at REQUEST_HEADERS:Host .... ",
            "data": "20.110.30.194:80",
            "file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
            "line": "791"
        },
        "hostname": "20.110.30.194:80",
        "transactionId": "592d1649f75a8d480a3c4dc6a975309d",
        "policyId": "default",
        "policyScope": "Global",
        "policyScopeName": "Global"
    }
}

عرض سجل النشاط وتحليله

يمكنك عرض بيانات سجل النشاط وتحليلها باستخدام أي من الطرق التالية:

عرض وتحليل سجلات الوصول، والأداء، وجدار الحماية

يمكن أن تجمع سجلات Azure Monitor ملفات الحساب وسجل الأحداث من حساب تخزين كائن ثنائي كبير الحجم Blob storage. يتضمن تصورات وقدرات بحث قوية لتحليل سجلاتك.

يمكنك أيضاً الاتصال بحساب التخزين لديك واسترداد إدخالات سجل JSON للوصول وسجلات الأداء. بعد تنزيل ملفات JSON، يمكنك تحويلها إلى CSV وعرضها في Excel أو Power BI أو أي أداة أخرى لتصور البيانات.

تلميح

إذا كنت معتاداً على Visual Studio والمفاهيم الأساسية لتغيير قيم الثوابت والمتغيرات في C#، فيمكنك استخدام أدوات محول السجل المتوفرة من GitHub.

تحليل سجلات الوصول من خلال GoAccess

يمكنك أيضاً استخدام قالب Resource Manager الذي يقوم بتثبيت محلل السجلات الشائع GoAccess وتشغيله بالنسبة لسجلات الوصول في Application Gateway. يوفر GoAccess إحصاءات استخدام شبكة HTTP قيِّمة، مثل الزوار الفريدين، والملفات المطلوبة، والمضيفين، وأنظمة التشغيل، والمتصفحات ورموز حالة HTTP. لمزيد من التفاصيل، الرجاء مراجعة الملف التمهيدي في مجلد نموذج Resource Manager في GitHub.

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