إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يمكنك مراقبة موارد Web Application Firewall باستخدام السجلات. يمكنك حفظ الأداء والوصول والبيانات الأخرى أو استهلاكها من مورد الأغراض الخاص بالمراقبة.
Note
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
Diagnostic logs
يمكنك استخدام أنواع مختلفة من السجلات في Azure لإدارة واستكشاف أخطاء application gateways وإصلاحها. يمكنك الوصول إلى بعض هذه السجلات من خلال المدخل. يمكن استخراج جميع السجلات من تخزين Azure Blob وعرضها في أدوات مختلفة، مثل سجلات مراقب Azure وExcel وPower BI. يمكنك معرفة المزيد حول الأنواع المختلفة من السجلات من القائمة التالية:
- Activity log: You can use Azure activity logs to view all operations that are submitted to your Azure subscription, and their status. يتم تجميع إدخالات سجل النشاط بشكل افتراضي، ويمكنك lمشاهدتها في مدخل Microsoft Azure.
- Access Resource log: يمكنك استخدام هذا السجل لعرض أنماط الوصول إلى بوابة التطبيق وتحليل المعلومات المهمة. يتضمن ذلك عنوان IP الخاص بالمتصل وعنوان URL المطلوب وزمن انتقال الاستجابة ورمز الإرجاع ووحدات البايت الواردة والمخرجة. يحتوي هذا السجل على سجلات فردية لكل طلب ويربط هذا الطلب ببوابة التطبيق الفريدة التي قامت بمعالجة الطلب. يمكن تحديد مثيلات Application Gateway الفريدة بواسطة معرف مثيل الخاصية.
- Performance Resource log: يمكنك استخدام هذا السجل لعرض كيفية أداء مثيلات Application Gateway. يسجل هذا التسجيل معلومات الأداء لكل مثيل، بما في ذلك إجمالي الطلبات التي يتم تقديمها، ومعدل النقل بالبايت، وإجمالي الطلبات التي يتم تقديمها، وعدد الطلبات الفاشلة، وعدد مثيلات الخلفية السليمة وغير السليمة. يتم تجميع سجل الأداء كل 60 ثانية. يتوفر سجل الأداء فقط لـ v1 SKU. For the v2 SKU, use Metrics for performance data.
- Firewall Resource log: يمكنك استخدام هذا السجل لعرض الطلبات التي تم تسجيلها من خلال وضع الكشف أو المنع لـ application gateway التي تم تكوينها باستخدام جدار حماية تطبيق الويب.
Note
تتوفر السجلات فقط للموارد المنشورة في نموذج توزيع Azure Resource Manager. لا يمكنك استخدام سجلات للموارد في نموذج النشر الكلاسيكي. للحصول على فهم أفضل للنموذجين، راجع مقالة فهم نشر Resource Manager والنشر الكلاسيكي.
لديك ثلاثة خيارات لتخزين سجلاتك:
- Storage account: Storage accounts are best used for logs when logs are stored for a longer duration and reviewed when needed.
- Event hubs: Event hubs are a great option for integrating with other security information and event management (SIEM) tools to get alerts on your resources.
- سجلات Azure Monitor من الأفضل استخدام سجلات Azure Monitor للمراقبة العامة في الوقت الفعلي لتطبيقك أو الاطلاع على الاتجاهات.
تمكين تسجيل الدخول من خلال PowerShell
يتم تمكين تسجيل النشاط تلقائياً لكل مورد Resource Manager. يجب تمكين الوصول وتسجيل الأداء لبدء تجميع البيانات المتوفرة من خلال تلك السجلات. لتمكين تسجيل الدخول، استخدم الخطوات التالية:
لاحظ معرف مورد حساب التخزين الخاص بك، حيث يتم تخزين بيانات السجل. هذه القيم بالشكل: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<اسم حساب التخزين>. يمكنك استخدام أي حساب تخزين في اشتراكك. يمكنك استخدام مدخل Microsoft Azure للبحث عن هذه المعلومات.
لاحظ معرّف مورد application gateway الذي تم تمكين التسجيل له. هذه القيمة هي النموذج: /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<اسم بوابة التطبيق>. يمكنك استخدام المدخل للعثور على هذه المعلومات.
تمكين التسجيل التشخيصي باستعمال أمر 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
Tip
Activity logs do not require a separate storage account. يؤدي استخدام التخزين للوصول وتسجيل الأداء إلى فرض رسوم الخدمة.
تمكين تسجيل الدخول عبر مدخل Microsoft Azure
In the Azure portal, find your resource and select Diagnostic settings.
بالنسبة لـ Application Gateway، تتوفر ثلاثة سجلات:
- Access log
- Performance log
- Firewall log
حدد Add diagnostic setting.
The Diagnostic setting page provides the settings for the resource logs. في هذا المثال، يخزن «Log Analytics» السجلات. يمكنك أيضا استخدام مركز أحداث أو حساب تخزين أو حل شريك لحفظ سجلات الموارد.
Type a name for the settings, confirm the settings, and select Save.
Activity log
يقوم Azure بإنشاء سجل النشاط بشكل افتراضي. يتم الاحتفاظ بالسجلات لمدة 90 يوماً في مخزن سجلات أحداث Azure. تعرف على المزيد حول هذه السجلات من خلال قراءة مقالة عرض الأحداث وسجل النشاط.
Access log
يتم إنشاء سجل الوصول فقط إذا قمت بتمكينه على كل مثيل Application Gateway، كما هو مفصّل في الخطوات السابقة. يتم تخزين البيانات في حساب التخزين الذي حددته عند تمكين التسجيل. يسجل كل وصول لـ Application Gateway بتنسيق JSON، كما هو مبين في المثال التالي للإصدار 1:
| Value | Description |
|---|---|
| instanceId | مثيل Application Gateway الذي قدم الطلب. |
| clientIP | إنشاء IP للطلب. |
| clientPort | إنشاء منفذ للطلب. |
| httpMethod | طريقة HTTP المستخدمة في الطلب. |
| requestUri | URI للطلب المستلم. |
| RequestQuery |
Server-Routed: Back-end pool instance that was sent the request. X-AzureApplicationGateway-LOG-ID: Correlation ID used for the request. ويمكن استخدامه لاستكشاف مشكلات حركة المرور على الخوادم الخلفية وإصلاحها. SERVER-STATUS: HTTP response code that Application Gateway received from the back end. |
| UserAgent | عامل المستخدم من عنوان طلب HTTP. |
| httpStatus | إرجاع التعليمة البرمجية لحالة HTTP إلى العميل من Application Gateway. |
| httpVersion | إصدار HTTP من الطلب. |
| receivedBytes | حجم الحزمة المتلقاة بالبايت. |
| sentBytes | حجم الحزمة المرسلة بالبايت. |
| timeTaken | المدة الزمنية (بالملي ثانية) التي تستغرقها معالجة الطلب وإرسال استجابته. يتم حساب هذا على أنه الفاصل الزمني من وقت تلقي Application Gateway للبايت الأول من طلب HTTP إلى الوقت الذي تنتهي فيه عملية إرسال الاستجابة. من المهم ملاحظة أن حقل الوقت المستغرق يتضمن عادةً الوقت الذي تنتقل فيه حزم الطلب والرد عبر الشبكة. |
| sslEnabled | ما إذا كان الاتصال إلى تجمعات back-end قد استخدم TLS/SSL. القيم الصالحة هي تشغيل وإيقاف. |
| host | اسم المضيف الذي تم إرسال الطلب به إلى الخادم الخلفي. إذا تم تجاوز اسم المضيف الخلفية، فسيعكس هذا الاسم ذلك. |
| originalHost | اسم المضيف الذي تم استلام الطلب به بواسطة Application Gateway من العميل. |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayAccess",
"timestamp": "2017-04-26T19:27:38Z",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "ApplicationGatewayRole_IN_0",
"clientIP": "203.0.113.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=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e&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"
}
}
بالنسبة لـ Application Gateway وWAF v2، تظهر السجلات المزيد من التفاصيل:
| Value | Description |
|---|---|
| instanceId | مثيل Application Gateway الذي قدم الطلب. |
| clientIP | إنشاء IP للطلب. |
| clientPort | إنشاء منفذ للطلب. |
| httpMethod | طريقة HTTP المستخدمة في الطلب. |
| requestUri | URI للطلب المستلم. |
| UserAgent | عامل المستخدم من عنوان طلب HTTP. |
| httpStatus | إرجاع التعليمة البرمجية لحالة HTTP إلى العميل من Application Gateway. |
| httpVersion | إصدار HTTP من الطلب. |
| receivedBytes | حجم الحزمة المتلقاة بالبايت. |
| sentBytes | حجم الحزمة المرسلة بالبايت. |
| timeTaken | المدة الزمنية (بالملي ثانية) التي تستغرقها معالجة الطلب وإرسال استجابته. يتم حساب هذا على أنه الفاصل الزمني من وقت تلقي Application Gateway للبايت الأول من طلب HTTP إلى الوقت الذي تنتهي فيه عملية إرسال الاستجابة. من المهم ملاحظة أن حقل الوقت المستغرق يتضمن عادةً الوقت الذي تنتقل فيه حزم الطلب والرد عبر الشبكة. |
| sslEnabled | ما إذا كان الاتصال إلى مجموعات back-end قد استخدم TLS. القيم الصالحة هي تشغيل وإيقاف. |
| sslCipher | مجموعة التشفير المستخدمة لاتصال TLS (إذا تم تمكين TLS). |
| sslProtocol | يكون بروتوكول SSL/TLS قيد الاستخدام (في حالة تم تمكين TLS). |
| serverRouted | الخادم الخلفي الذي يقوم application gateway بتوجيه الطلب إليه. |
| serverStatus | التعليمة البرمجية لحالة HTTP للخادم الخلفي. |
| serverResponseLatency | زمن انتقال الاستجابة من الخادم الخلفي. |
| host | العنوان المدرج في عنوان المضيف للطلب. |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayAccess",
"time": "2017-04-26T19:27:38Z",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "appgw_1",
"clientIP": "203.0.113.97",
"clientPort": 46886,
"httpMethod": "GET",
"requestUri": "/phpmyadmin/scripts/setup.php",
"userAgent": "-",
"httpStatus": 404,
"httpVersion": "HTTP/1.0",
"receivedBytes": 65,
"sentBytes": 553,
"timeTaken": 205,
"sslEnabled": "off",
"sslCipher": "",
"sslProtocol": "",
"serverRouted": "104.41.114.59:80",
"serverStatus": "200",
"serverResponseLatency": "0.023",
"host": "www.contoso.com",
}
}
Performance log
يتم إنشاء سجل الأداء فقط إذا قمت بتمكينه على كل مثيل Application Gateway، كما هو مفصل في الخطوات السابقة. يتم تخزين البيانات في حساب التخزين الذي حددته عند تمكين التسجيل. يتم إنشاء بيانات سجل الأداء في فترات زمنية مدتها دقيقة واحدة. يتوفر فقط لـ v1 SKU. For the v2 SKU, use Metrics for performance data. يتم تسجيل البيانات التالية:
| Value | Description |
|---|---|
| instanceId | مثيل Application Gateway الذي يتم إنشاء بيانات الأداء من أجله. بالنسبة لـ application gateway متعددة المثيلات، يوجد صف واحد لكل مثيل. |
| healthyHostCount | عدد المضيفين السليمين في مجموعة back-end. |
| unHealthyHostCount | عدد المضيفين غير السليمين في مجموعة back-end. |
| requestCount | عدد الطلبات التي تقديمها. |
| latency | متوسط زمن الوصول (بالملي ثانية) للطلبات من النسخة إلى النهاية الخلفية التي تخدم الطلبات. |
| failedRequestCount | عدد الطلبات الفاشلة. |
| throughput | متوسط معدل النقل منذ السجل الأخير، مقاساً بالبايت في الثانية. |
{
"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"
}
}
Note
يتم حساب زمن الانتقال من وقت استلام البايت الأول من طلب HTTP إلى وقت إرسال البايت الأخير من استجابة HTTP. إنه مجموع وقت معالجة Application Gateway بالإضافة إلى تكلفة الشبكة حتى النهاية، بالإضافة إلى الوقت الذي تستغرقه حتى النهاية لمعالجة الطلب.
Firewall log
يتم إنشاء سجل جدار الحماية فقط إذا قمت بتمكينه لكل application gateway، كما هو مفصل في الخطوات السابقة. كما يتطلب هذا السجل أيضاً تكوين جدار حماية تطبيق الويب على application gateway. يتم تخزين البيانات في الوجهة التي حددتها عند تمكين التسجيل. يتم تسجيل البيانات التالية:
Application Gateway
Log Format
| Value | Description |
|---|---|
| instanceId | مثيل Application Gateway الذي يتم من أجله إنشاء بيانات جدار الحماية. بالنسبة لـ application gateway متعددة المثيلات، يوجد صف واحد لكل مثيل. |
| clientIp | إنشاء IP للطلب. |
| requestUri | URL للطلب المستلم. |
| ruleSetType | نوع مجموعة القواعد. القيمة المتوفرة هي OWASP. |
| ruleSetVersion | إصدار مجموعة القواعد المستخدمة. القيم المتوفرة هي 2.2.9 و3.0. |
| ruleId | معرّف القاعدة للحدث المشغل. |
| message | رسالة سهلة الاستخدام للحدث المشغل. يتم توفير المزيد من التفاصيل في قسم التفاصيل. |
| action |
Policy Mode: Detection - Detected - This is the only action for the WAF when in detection mode. All the conditions for a given rule were matched and the request was logged then passed to the backend. Policy Mode: Prevention - Allowed - All conditions were matched for a given rule and the request was passed to the backend. - Blocked - All of the conditions were matched for a given rule and the request was blocked. - Matched - One/more conditions were matched for a given rule, but the decision to block or pass the request will need further evaluation and will be evaluated based on the final anomaly scoring rule. Policy Mode: JS challenge - JSChallengeIssued: Issued due to missing/invalid challenge clearance, missing answer. يتم إنشاء هذا السجل عندما يطلب عميل الوصول إلى تطبيق ويب للمرة الأولى ولم يتم تحديه مسبقا. يتلقى هذا العميل صفحة تحدي JS ويتابع لحساب تحدي JS. عند الحساب الناجح، يتم منح العميل ملف تعريف ارتباط الصلاحية. - JSChallengePass: Passed due to valid challenge answer. يتم إنشاء هذا السجل عندما يحل العميل تحدي JS ويعيد إرسال الطلب بالإجابة الصحيحة. في هذه الحالة، يتحقق Azure WAF من صحة ملف تعريف الارتباط ويتابع معالجة القواعد المتبقية دون إنشاء تحدي JS آخر. - JSChallengeValid: Logged/passthrough due to valid challenge يتم إنشاء هذا السجل عندما يكون العميل قد حل تحديا مسبقا. في هذه الحالة، يسجل Azure WAF الطلب ويتابع معالجة القواعد المتبقية. - JSChallengeBlock: Blocked يتم إنشاء هذا السجل عند فشل حساب تحدي JS. |
| site | الموقع الذي تم إنشاء السجل من أجله. حاليا، يتم سرد العمومية فقط لأن القواعد عمومية. |
| details | تفاصيل الحدث المشغل. |
| details.message | وصف القاعدة. |
| details.data | بيانات محددة تم العثور عليها عند الطلب تطابق القاعدة. |
| details.file | ملف التكوين الذي يحتوي على القاعدة. |
| details.line | رقم السطر في ملف التكوين الذي قام بتشغيل الحدث. |
| hostname | اسم المضيف أو عنوان IP لـ Application Gateway. |
| transactionId | معرّف فريد لمعاملة معينة يساعد في تجميع انتهاكات القواعد المتعددة التي حدثت في نفس الطلب. |
| policyId | المعرف الفريد لسياسة جدار الحماية المقترن بعبارة التطبيق أو وحدة الإصغاء أو المسار. |
| policyScope | موقع النهج - يمكن أن تكون القيم "Global" أو "Listener" أو "Location". |
| policyScopeName | اسم العنصر حيث يتم تطبيق النهج. |
Example
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayFirewall",
"time": "2017-03-20T15:52:09.1494499Z",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "ApplicationGatewayRole_IN_0",
"clientIp": "203.0.113.147",
"requestUri": "/",
"ruleSetType": "OWASP",
"ruleSetVersion": "3.0",
"ruleId": "920350",
"ruleGroup": "920-PROTOCOL-ENFORCEMENT",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
"data": "127.0.0.1",
"file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
"line": "791"
},
"hostname": "127.0.0.1",
"transactionId": "16861477007022634343",
"policyId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/perListener",
"policyScope": "Listener",
"policyScopeName": "httpListener1"
}
}
}
عرض سجل النشاط وتحليله
يمكنك عرض بيانات سجل النشاط وتحليلها باستخدام أي من الطرق التالية:
- Azure tools: Retrieve information from the activity log through Azure PowerShell, the Azure CLI, the Azure REST API, or the Azure portal. تم تفصيل التعليمات الاسترشادية المُفصّلة لكل أسلوب في مقالة عمليات النشاط باستخدام إدارة الموارد "ARM".
- Power BI: If you don't already have a Power BI account, you can try it for free. باستخدام تطبيقات قالب Power BI، يمكنك تحليل بياناتك.
عرض وتحليل سجلات الوصول، والأداء، وجدار الحماية
يمكن أن تجمع سجلات Azure Monitor ملفات الحساب وسجل الأحداث من حساب تخزين كائن ثنائي كبير الحجم Blob storage. يتضمن تصورات وقدرات بحث قوية لتحليل سجلاتك.
يمكنك أيضاً الاتصال بحساب التخزين لديك واسترداد إدخالات سجل JSON للوصول وسجلات الأداء. بعد تنزيل ملفات JSON، يمكنك تحويلها إلى CSV وعرضها في Excel أو Power BI أو أي أداة أخرى لتصور البيانات.
Tip
إذا كنت على دراية بـ Visual Studio والمفاهيم الأساسية لتغيير قيم الثوابت والمتغيرات في C#، فيمكنك استخدام أدوات محول السجل المتوفرة من GitHub.
تحليل سجلات الوصول من خلال GoAccess
We have published a Resource Manager template that installs and runs the popular GoAccess log analyzer for Application Gateway Access Logs. يوفر GoAccess إحصاءات استخدام شبكة HTTP قيِّمة، مثل الزوار الفريدين، والملفات المطلوبة، والمضيفين، وأنظمة التشغيل، والمتصفحات ورموز حالة HTTP. لمزيد من التفاصيل، الرجاء مراجعة الملف التمهيدي في مجلد نموذج Resource Manager في GitHub.
Next steps
- تصور سجلات العداد والأحداث باستخدام سجلات Azure Monitor.
- تصور سجل نشاط Azure باستخدام مشاركة منشور مدونة Power BI.
- راجع عرض وتحليل سجلات نشاط Azure في Power BI والمزيد من منشورات المدونة.