مراقبة قاعدة بيانات Azure SQL باستخدام Azure SQL Analytics (إصدار أولي)

ينطبق على:قاعدة بيانات Azure SQL، مثيل Azure SQL المدار

تنبيه

إن Azure SQL Analytics (إصدار أولي) هو تكامل مع Azure Monitor، حيث لم يعد العديد من حلول المراقبة قيد التطوير النشط. لمزيد من خيارات المراقبة، راجع المراقبة وضبط الأداء في Azure SQL Database ومثيل Azure SQL المُدار.

Azure SQL Analytics (إصدار أولي) هو حل متقدم لمراقبة السحابة لمراقبة أداء جميع قواعد بيانات Azure SQL على نطاق واسع وعبر اشتراكات متعددة في طريقة عرض واحدة. تجمع Azure SQL Analytics مقاييس الأداء الرئيسية وتمثلها باستخدام التحليل الذكي المضمن لاستكشاف أخطاء الأداء وإصلاحها.

باستخدام هذه المقاييس المجمعة، يمكنك إنشاء قواعد وتنبيهات مراقبة مخصصة. تساعدك Azure SQL Analytics على تحديد المشكلات في كل طبقة من مكدس الذاكرة المؤقتة لتطبيقك. يستخدم مقاييسAzure Diagnosticsإلى جانب طرق عرض Azure Monitor لتقديم بيانات بشأن كافة قواعد بيانات Azure SQL في مساحة عمل واحدة لتحليلات السجل. يساعدك Azure Monitor على جمع البيانات المصنفة وغير المصنفة وربطها وتمثيلها.

المصادر المتصلة

يمثل Azure SQL Analytics حل مراقبة سحابي فحسب يدعم تدفق بيانات التشخيص عن بعد لجميع قواعد بيانات Azure SQL. نظرًا لأن Azure SQL Analytics لا يستخدم العوامل للاتصال بـ Azure Monitor، فإنه لا يدعم مراقبة SQL Server المستضافة محليًا أو في الأجهزة الظاهرية.

المصدر المتصل مدعوم الوصف
إعدادات التشخيص نعم تُرسل بيانات قياس وسجل Azure إلى سجلات مراقبة Azure مباشرة بواسطة Azure.
حساب مخزن Azure لا لا يقرأ Azure Monitor البيانات من حساب التخزين.
عوامل Windows لا لا تستخدم عوامل Windows المباشرة من قِبل Azure SQL Analytics.
عوامل Linux لا لا تستخدم عوامل Linux المباشرة من قِبل Azure SQL Analytics.
مجموعة إدارة عمليات مركز النظام لا لا يتم استخدام اتصال مباشر من عامل مدير العمليات إلى Azure Monitor من قِبل Azure SQL Analytics.

خيارات Azure SQL Analytics

يوضح الجدول أدناه الخيارات المدعومة للمخططات التفصيلية بإصداريها من لوحة معلومات Azure SQL Analytics، أحدهما لقاعدة بيانات Azure SQL، والآخر لقواعد بيانات Azure SQL المثيل المُدار.

خيارات Azure SQL Analytics الوصف دعم قاعدة بيانات SQL دعم SQL Managed Instance
المورد حسب النوع المنظور الذي يحسب جميع الموارد التي تم رصدها. نعم نعم
نتائج التحليلات يوفر التنقل الهرمي للأسفل نتائج تحليلات ذكية للأداء. نعم نعم
أخطاء يوفر التنقل الهرمي لأسفل أخطاء SQL التي حدثت على قواعد البيانات. نعم نعم
المهلات يوفر التنقل الهرمي لأسفل مهلات SQL التي حدثت على قواعد البيانات. نعم لا
عمليات الحظر يوفر التنقل الهرمي لأسفل عمليات الحظر لـ SQL التي حدثت على قواعد البيانات. نعم لا
ينتظر قاعدة البيانات يوفر التنقل الهرمي لأسفل إحصائيات انتظار SQL التي حدثت على مستوى قاعدة البيانات. يتضمن ملخصات لإجمالي وقت الانتظار ووقت الانتظار لكل نوع انتظار. نعم لا
مدة الاستعلام يوفر التنقل الهرمي لأسفل إحصائيات تنفيذ الاستعلام مثل مدة الاستعلام، واستخدام المعالج، واستخدام الإدخال/الإخراج للبيانات، واستخدام الإدخال/الإخراج للتسجيل. نعم نعم
ينتظر الاستعلام يوفر التنقل الهرمي لأسفل إحصائيات انتظار الاستعلام حسب فئة الانتظار. نعم نعم

تكوين Azure SQL Analytics (إصدار أولي)

استخدم العملية الموضحة في إضافة حلول Azure Monitor من معرض الحلول لإضافة Azure SQL Analytics (معاينة) إلى مساحة عمل تحليلات التسجيل.

تكوين قاعدة بيانات Azure SQL لدفق بيانات تتبع الاستخدام التشخيصية.

بمجرد إنشاء حل Azure SQL Analytics في مساحة العمل، ستحتاج إلى تكوين كل مورد تريد مراقبته لدفق بيانات تتبع الاستخدام التشخيصية إلى Azure SQL Analytics. اتبع الإرشادات التفصيلية في هذه الصفحة:

توفر الصفحة أعلاه أيضًا إرشادات حول تمكين الدعم لمراقبة اشتراكات Azure المتعددة من مساحة عمل Azure SQL Analytics الفردية كجزء فردي من الزجاج.

استخدم Azure SQL Analytics (إصدار أولي)

انتقل إلى نشر SQL Analytics من صفحة الحلول القديمة في مساحة عمل Log Analytics.

يوفر Azure SQL Analytics طريقتين عرض منفصلتين: أحدهما لمراقبة قاعدة بيانات SQL والآخر لمراقبة مثيل SQL المُدار.

عرض Azure SQL Analytics

تتضمن لوحة المعلومات نظرة عامة على كافة قواعد البيانات التي يتم مراقبتها من خلال مناظير مختلفة. لكي تعمل المناظير المختلفة، يجب أن تمكِّن المقاييس المناسبة أو تسجيل الدخول إلى موارد SQL ليتم بثها إلى مساحة عمل تحليلات السجل.

إذا لم يتم دفق بعض المقاييس أو السجلات إلى Azure Monitor، فلن تُملأ الإطارات المتجانبة في Azure SQL Analytics بمعلومات المراقبة.

عرض قاعدة بيانات SQL

بمجرد تحديد تجانب Azure SQL Analytics لقاعدة البيانات، تُعرَض لوحة معلومات المراقبة.

تُظهِر لقطة الشاشة لوحة معلومات المراقبة.

حدد أي تجانب، وافتح تقرير التنقل لأسفل في منظور معين. بمجرد تحديد المنظور، يتم فتح تقرير التنقل لأسفل.

تعرض لقطة الشاشة تقرير التنقل للأسفل في المنظور المحدد.

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

عرض المثيل المُدار لـ SQL

بمجرد تحديد تجانب Azure SQL Analytics لقواعد البيانات، تُعرَض لوحة معلومات المراقبة.

نظرة عامة على Azure SQL Analytics

حدد أي تجانب، وافتح تقرير التنقل لأسفل في منظور معين. بمجرد تحديد المنظور، يتم فتح تقرير التنقل لأسفل.

تحديد طريقة عرض المثيل المُدار SQL، يعرض تفاصيل حول استخدام المثيل وقواعد البيانات المثيلة وبيانات تتبع الاستهلاك على الاستعلامات المنفذة عبر المثيل المُدار.

مهلات Azure SQL Analytics

تقرير نتيجة التحليلات الذكي

يتيح لك تحليل البيانات الذكي لقاعدة بيانات Azure SQL معرفة ما يحدث مع أداء جميع قواعد بيانات Azure SQL. يمكن تمثيل جميع نتيجة التحليلات الذكية التي تم جمعها والوصول إليها من خلال منظور نتيجة التحليلات.

نتيجة تحليلات Azure SQL Analytics

مجموعات مرنة وتقارير قاعدة البيانات

تحتوي كل من المجموعات المرنة وقواعد البيانات على تقارير خاصة بها تعرض كافة البيانات التي يتم تجميعها للمورد في الوقت المحدد.

قاعدة بيانات Azure SQL Analytics

مجموعات مرنة لـ Azure SQL

تقارير الاستعلام

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

استعلامات Azure SQL Analytics

الأذونات

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

إنشاء دور مخصص في المدخل

ملاحظة

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

مع إدراك أن بعض المؤسسات تفرض ضوابط صارمة على الأذونات في Azure، ابحث عن البرنامج النصي PowerShell التالي الذي يتيح إنشاء دور مخصص «SQL Analytics Monitoring Operator» في مدخل Microsoft Azure مع الحد الأدنى من أذونات القراءة والكتابة المطلوبة لاستخدام Azure SQL Analytics إلى أقصى حد.

استبدل «{SubscriptionId}» في البرنامج النصي أدناه بمعرف اشتراك Azure الخاص بك، وقم بتنفيذ البرنامج النصي الذي تم تسجيل الدخول إليه بصفتك مالكًا أو دورًا مساهمًا في Azure.

 Connect-AzAccount
 Select-AzSubscription {SubscriptionId}
 $role = Get-AzRoleDefinition -Name Reader
 $role.Name = "SQL Analytics Monitoring Operator"
 $role.Description = "Lets you monitor database performance with Azure SQL Analytics as a reader. Does not allow change of resources."
 $role.IsCustom = $true
 $role.Actions.Add("Microsoft.SQL/servers/databases/read");
 $role.Actions.Add("Microsoft.SQL/servers/databases/topQueries/queryText/*");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/write");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/advisors/recommendedActions/write");
 $role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/read");
 $role.Actions.Add("Microsoft.Sql/servers/databases/automaticTuning/write");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/read");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/write");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/read");
 $role.Actions.Add("Microsoft.Sql/servers/advisors/recommendedActions/write");
 $role.Actions.Add("Microsoft.Resources/deployments/write");
 $role.AssignableScopes = "/subscriptions/{SubscriptionId}"
 New-AzRoleDefinition $role

بمجرد إنشاء الدور الجديد، قم بتعيين هذا الدور لكل مستخدم تحتاج إلى منحه أذونات مخصصة لاستخدام Azure SQL Analytics.

تحليل البيانات وإنشاء تنبيهات

يستند تحليل البيانات في Azure SQL Analytics إلى لغة تحليل السجل للاستعلام والتقارير المخصصة لك. البحث عن وصف للبيانات المتوفرة التي تم جمعها من مورد قاعدة البيانات للاستعلام المخصص في المقاييس والسجلات المتوفرة.

يستند التنبيه التلقائي في Azure SQL Analytics إلى كتابة استعلام تحليلات السجل الذي يشغل تنبيهًا عند استيفاء شرط. تجد أدناه عدة أمثلة على استعلامات تحليلات السجل التي يمكن على أساسها إعداد التنبيه في Azure SQL Analytics.

إنشاء تنبيهات لقاعدة البيانات Azure SQL

يمكنك بسهولة إنشاء تنبيهات مع البيانات الواردة من موارد قاعدة بيانات Azure SQL. فيما يلي بعض استعلامات السجل المفيدة والتي يمكنك استخدامها مع تنبيه السجل:

معالج بدرجة عالية

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/DATABASES/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن قواعد البيانات المراقبة تبث المقاييس الأساسية إلى مساحة عمل تحليلات السجل التي يستخدمها Azure SQL Analytics.
  • استبدل قيمة MetricName cpu_percentبـdtu_consumption_percentللحصول على نتائج DTU عالية بدلاً من ذلك.

معالج بدرجة عالية على المجموعات المرنة

AzureMetrics
| where ResourceProvider=="MICROSOFT.SQL"
| where ResourceId contains "/ELASTICPOOLS/"
| where MetricName=="cpu_percent"
| summarize AggregatedValue = max(Maximum) by bin(TimeGenerated, 5m)
| render timechart

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن قواعد البيانات المراقبة تبث المقاييس الأساسية إلى مساحة عمل تحليلات السجل التي يستخدمها Azure SQL Analytics.
  • استبدل قيمة MetricName cpu_percentبـdtu_consumption_percentللحصول على نتائج DTU عالية بدلاً من ذلك.

التخزين في المتوسط أكثر من 95% في آخر ساعة

let time_range = 1h;
let storage_threshold = 95;
AzureMetrics
| where ResourceId contains "/DATABASES/"
| where MetricName == "storage_percent"
| summarize max_storage = max(Average) by ResourceId, bin(TimeGenerated, time_range)
| where max_storage > storage_threshold
| distinct ResourceId

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن قواعد البيانات المراقبة تبث المقاييس الأساسية إلى مساحة عمل تحليلات السجل التي يستخدمها Azure SQL Analytics.
  • يتطلب هذا الاستعلام إعداد قاعدة تنبيه لإطلاق تنبيه عند وجود نتائج (>0 نتيجة) من الاستعلام، مما يدل على وجود الشرط في بعض قواعد البيانات. الإخراج هو قائمة من موارد قاعدة البيانات التي هي أعلى من storage_threshold داخل time_range المحددة.
  • الإخراج هو قائمة من موارد قاعدة البيانات التي هي أعلى من storage_threshold داخل time_range المحددة.

تنبيه على نتيجة التحليلات الذكية

هام

في حالة أداء قاعدة البيانات بشكل جيد، وعدم إنشاء رؤى ذكية، سيفشل هذا الاستعلام مع ظهور رسالة خطأ: فشل في حل التعبير القياسي المسمىrootCauseAnalysis_s. هذا السلوك المتوقع لكافة الحالات حيث لا توجد أية نتيجة تحليلات ذكية لقاعدة البيانات.

let alert_run_interval = 1h;
let insights_string = "hitting its CPU limits";
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| where TimeGenerated > ago(alert_run_interval)
| where rootCauseAnalysis_s contains insights_string
| distinct ResourceId

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن تقوم قواعد البيانات المراقبة ببث سجل تشخيص SQLInsights إلى مساحة عمل Log Analytics التي يستخدمها Azure SQL Analytics.
  • يتطلب هذا الاستعلام إعداد قاعدة تنبيه ليتم تشغيلها بنفس التردد مثلalert_run_intervalلتجنب تكرار النتائج. يجب إعداد القاعدة لإيقاف التنبيه عند وجود نتائج (0 > نتائج) من الاستعلام.
  • تخصيص alert_run_interval لتحديد النطاق الزمني للتحقق مما إذا كان الشرط قد حدث على قواعد البيانات المكونة لدفق سجل SQLInsights إلى Azure SQL Analytics.
  • تخصيص سلسلة_نتيجة التحليلات لتسجيل ناتج جذر نتائج التحليلات المسببة لنص التحليل. هذا هو نفس النص المعروض في واجهة المستخدم في Azure SQL Analytics الذي يمكنك استخدامه من نتيجة التحليلات الموجودة. بدلاً من ذلك، يمكنك استخدام الاستعلام أدناه لرؤية نص كل نتيجة التحليلات التي تم إنشاؤها على اشتراكك. استخدم ناتج الاستعلام لتجميع سلاسل مميزة لإعداد التنبيهات على نتيجة التحليلات.
AzureDiagnostics
| where Category == "SQLInsights" and status_s == "Active"
| distinct rootCauseAnalysis_s

إنشاء التنبيهات لـ SQL Managed Instance

التخزين أعلى من 90%

let storage_percentage_threshold = 90;
AzureDiagnostics
| where Category =="ResourceUsageStats"
| summarize (TimeGenerated, calculated_storage_percentage) = arg_max(TimeGenerated, todouble(storage_space_used_mb_s) *100 / todouble (reserved_storage_mb_s))
   by ResourceId
| where calculated_storage_percentage > storage_percentage_threshold

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن المثيل المُدار الخاضع للمراقبة به تدفق سجل ResourceUsageStats ممكّنًا إلى مساحة عمل Log Analytics التي يستخدمها Azure SQL Analytics.
  • يتطلب هذا الاستعلام قاعدة تنبيه ليتم إعدادها لإيقاف تشغيل تنبيه عند وجود نتائج (>0 نتائج) من الاستعلام، ما يدل على وجود الشرط على المثيل المُدار. الناتج هو استهلاك نسبة التخزين على المثيل المُدار.

معدل استهلاك المعالج أعلى من 95% في آخر ساعة

let cpu_percentage_threshold = 95;
let time_threshold = ago(1h);
AzureDiagnostics
| where Category == "ResourceUsageStats" and TimeGenerated > time_threshold
| summarize avg_cpu = max(todouble(avg_cpu_percent_s)) by ResourceId
| where avg_cpu > cpu_percentage_threshold

ملاحظة

  • الشرط المسبق لإعداد هذا التنبيه هو أن المثيل المُدار الخاضع للمراقبة به تدفق سجل ResourceUsageStats ممكّنًا إلى مساحة عمل Log Analytics التي يستخدمها Azure SQL Analytics.
  • يتطلب هذا الاستعلام قاعدة تنبيه ليتم إعدادها لإيقاف تشغيل تنبيه عند وجود نتائج (>0 نتائج) من الاستعلام، ما يدل على وجود الشرط على المثيل المُدار. الناتج عبارة عن متوسط استهلاك نسبة استخدام المعالج في الفترة المحددة على المثيل المُدار.

التسعير

في حين أن Azure SQL Analytics (إصدار أولي) متاح للاستخدام المجاني، فإن استهلاك بيانات تتبع الاستخدام التشخيصية أعلى من الوحدات المجانية لابتلاع البيانات المخصصة المنطبقة على كل شهر، انظرتسعير تحليلات السجل. وتتيح الوحدات المجانية من عملية استيعاب البيانات المتاحة المراقبة المجانية لعدة قواعد بيانات كل شهر. تستوعب قواعد البيانات الأكثر نشاطًا ذات أعباء العمل الثقيلة المزيد من البيانات مقابل قواعد البيانات الخاملة. يمكنك بسهولة مراقبة استهلاكك لتحويل البيانات في Azure SQL Analytics عن طريق تحديد مساحة عمل OMS في قائمة التنقل في Azure SQL Analytics، ثم تحديد الاستخدام والتكاليف المقدرة.

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