مراقبة Azure Queue Storage
عندما يكون لديك تطبيقات وعمليات أعمال مهمة تعتمد على موارد Azure، فأنت تريد مراقبة هذه الموارد لمعرفة مدى توفرها وأدائها وتشغيلها. توضح هذه المقالة بيانات المراقبة التي تم إنشاؤها بواسطة Azure Queue Storage وكيف يمكنك استخدام ميزات Azure Monitor لتحليل التنبيهات على هذه البيانات.
نظرة عامة على الشاشة
وتتضمن صفحة نظرة عامة في مدخل Azure لكل مورد Queue Storage عرضًا موجزًا لاستخدام المورد، مثل الطلبات والفوترة بالساعة. هذه المعلومات مفيدة، ولكن لا يتوفر سوى قدر ضئيل من بيانات المراقبة. يتم جمع بعض هذه البيانات تلقائياً وتكون متاحة للتحليل بمجرد إنشاء المورد. يمكنك تمكين أنواع إضافية من جمع البيانات مع بعض التكوين.
ما هو Azure Monitor؟
يقوم Azure Blob Storage بإنشاء بيانات المراقبة باستخدام Azure Monitor، وهي خدمة مراقبة كاملة لمكدس ذاكرة مؤقتة في Azure. يوفر Azure Monitor مجموعة كاملة من الميزات لمراقبة موارد Azure وكذلك الموارد في السحابة الأخرى والمحلية.
ابدأ بمقالة مراقبة موارد Azure باستخدام Azure Monitor، والتي تصف ما يلي:
- ما هو Azure Monitor؟
- التكاليف المرتبطة بالمراقبة
- بيانات المراقبة التي يتم جمعها في Azure
- تكوين جمع البيانات
- الأدوات القياسية في Azure للتحليل والتنبيه على بيانات المراقبة
تستند الأقسام التالية إلى هذه المقالة من خلال وصف البيانات المحددة التي تم جمعها من Azure Storage. توضح الأمثلة كيفية تكوين جمع البيانات وتحليل هذه البيانات باستخدام أدوات Azure.
مراقبة البيانات
تَجمع Azure Blob Storage نفس أنواع بيانات المراقبة مثل موارد Azure الأخرى الموضحة في بيانات المراقبة من موارد Azure.
انظُرمرجع بيانات مراقبة تخزين Azure Blob للحصول على معلومات مفصلة حول المقاييس ومقاييس السجلات التي تم إنشاؤها بواسطة Azure Blob Storage.
تدعم المقاييس والسجلات في Azure Monitor حسابات تخزين Azure Resource Manager فقط. لا يدعم Azure Monitor حسابات التخزين الكلاسيكية. إذا كنت تريد استخدام المقاييس أو السجلات في حساب التخزين الكلاسيكي، فستحتاج إلى الترحيل إلى حساب تخزين Azure Resource Manager. الترحيل إلى Azure Resource Manager.
يمكنك الاستمرار في استخدام المقاييس والسجلات الكلاسيكية إذا كنت تريد ذلك. في الواقع، تتوفر المقاييس والسجلات الكلاسيكية بالتوازي مع المقاييس والسجلات في Azure Monitor. يستمر الدعم حتى ينهي Azure Storage الخدمة في المقاييس والسجلات القديمة.
الجمع والتوجيه
يتم جمع مقاييس النظام الأساسي، وسجل النشاط تلقائيًّا، ولكن يمكن توجيهها إلى مواقع أخرى باستخدام إعداد تشخيص.
لتجميع سجلات الموارد، يجب عليك إنشاء إعداد تشخيص. وعند إنشاء الإعداد، اختر كائن ثنائي كبير الحجم كنوع التخزين الذي تريد تمكين السجلات من أجله. بعد ذلك، حدد إحدى فئات العمليات التالية التي تريد جمع السجلات لها.
| الفئة | الوصف |
|---|---|
| قراءة التخزين | قراءة العمليات على العناصر. |
| كتابة التخزين | كتابة العمليات على العناصر. |
| حذف التخزين | حذف العمليات على العناصر. |
إنشاء الإعدادات التشخيصية
يمكنك إنشاء إعداد تشخيص باستخدام مدخل Azure أو PowerShell أو Azure CLI أو قالب Azure Resource Manager أو نهج Azure.
للحصول على إرشادات عامة، راجع «Create» إنشاء إعدادات تشخيصية لتجميع سجلات النظام الأساسي والمقاييس في Azure.
سجّل الدخول إلى مدخل Azure.
انتقل إلى حساب التخزين الخاص بك.
في قسم Monitoring، انقر فوق Diagnostic settings.

اختر قائمة الانتظار كنوع التخزين الذي تريد تمكين سجلات له.
اخترAdd diagnostic setting.

تظهر صفحة إعدادات التشخيص.

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

في القائمة المنسدلة حساب التخزين، حدد حساب التخزين الذي تريد أرشفة السجلات فيه، ثم انقر فوق الزر موافق ثم حدد الزر حفظ.
هام
لا يمكنك إعداد نهج استبقاء. ومع ذلك، يمكنك إدارة نهج الاحتفاظ بحاوية السجل عن طريق تحديد نهج إدارة دورة الحياة. لمعرفة كيفية القيام بذلك، انظر تحسين التكاليف عن طريق أتمتة مستويات الوصول إلى Azure Blob Storage.
ملاحظة
قبل اختيار حساب تخزين كوجهة تصدير، انظرسجلات موارد Archive Azure لفهم المتطلبات الأساسية على حساب التخزين.
سجلات الدفق إلى مراكز الأحداثAzure Event Hubs
إذا اخترت دفق سجلاتك إلى مركز أحداث، فستدفع مقابل حجم السجلات التي يتم إرسالها إلى مركز الأحداث. للحصول على تسعير محدد، انظر قسم سجلات النظام الأساسي في صفحة التسعير Azure Monitor.
حدد خانة الاختيار دفق إلى لوحة وصل حدث، ثم حدد زر تكوين.
في جزء تحديد لوحة وصل حدث، اختر مساحة الاسم، والاسم، واسم النهج الخاص بلوحة وصل الأحداث التي تريد دفق السجلات إليها.

انقر فوق زر موافق ثم حدد زر حفظ.
أرسل السجلات إلى Azure Log Analytics
حدد خانة الاختيار إرسال إلى سجل التحليلات، وحدد مساحة عمل سجل التحليلات ثم حدد الزر حفظ.

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

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

للحصول على قائمة كاملة بالأبعاد التي يدعمها Azure Storage، انظرأبعاد المقاييس.
توجد مقاييس تخزين Azure Queue في مساحات الأسماء التالية:
- Microsoft.Storage/storageAccounts
- Microsoft.Storage/storageAccounts/queueServices
وللحصول على قائمة بجميع مقاييس دعم Azure Monitor، والتي تتضمن تخزين Azure Blob، انظر مقاييس Azure Monitor المدعومة.
الوصول إلى المقاييس
تلميح
لعرض أمثلة Azure CLI أو .NET ، اختر علامات التبويب المقابلة المدرجة أدناه.
يوفّر Azure Monitor SDK.NET لقراءة تعريف القياس والقيم. يوضح نموذج التعليمة البرمجية للعينة كيفية استخدام SDK مع معلمات مختلفة. تحتاج إلى استخدام أو 0.18.0-previewإصدار أحدث لمقاييس التخزين.
في هذه الأمثلة، استبدل <resource-ID>العنصر النائب بمعرف المورد لحساب التخزين بالكامل أو قائمة الانتظار. يمكنك العثور على معرفات المورد هذه على صفحات خصائص حساب التخزين الخاص بك في مدخل Microsoft Azure.
استبدل <subscription-ID> المتغير بمعرّف اشتراكك. للحصول على إرشادات حول كيفية الحصول على قيم لـ<tenant-ID>، <application-ID>، و <AccessKey>، انظر استخدام البوابة الإلكترونية لإنشاء تطبيق Azure AD ومبدأ الخدمة الذي يمكنه الوصول إلى الموارد.
اذكر تعريف المقياس على مستوى الحساب
يوضح المثال التالي كيفية إدراج تعريف مقياس على مستوى الحساب:
public static async Task ListStorageMetricDefinition()
{
var resourceId = "<resource-ID>";
var subscriptionId = "<subscription-ID>";
var tenantId = "<tenant-ID>";
var applicationId = "<application-ID>";
var accessKey = "<AccessKey>";
MonitorManagementClient readOnlyClient = AuthenticateWithReadOnlyClient(tenantId, applicationId, accessKey, subscriptionId).Result;
IEnumerable<MetricDefinition> metricDefinitions = await readOnlyClient.MetricDefinitions.ListAsync(resourceUri: resourceId, cancellationToken: new CancellationToken());
foreach (var metricDefinition in metricDefinitions)
{
// Enumrate metric definition:
// Id
// ResourceId
// Name
// Unit
// MetricAvailabilities
// PrimaryAggregationType
// Dimensions
// IsDimensionRequired
}
}
قراءة قيم المقاييس على مستوى الحساب
يوضح المثال التالي كيفية قراءة البيانات على UsedCapacity مستوى الحساب:
public static async Task ReadStorageMetricValue()
{
var resourceId = "<resource-ID>";
var subscriptionId = "<subscription-ID>";
var tenantId = "<tenant-ID>";
var applicationId = "<application-ID>";
var accessKey = "<AccessKey>";
MonitorClient readOnlyClient = AuthenticateWithReadOnlyClient(tenantId, applicationId, accessKey, subscriptionId).Result;
Microsoft.Azure.Management.Monitor.Models.Response Response;
string startDate = DateTime.Now.AddHours(-3).ToUniversalTime().ToString("o");
string endDate = DateTime.Now.ToUniversalTime().ToString("o");
string timeSpan = startDate + "/" + endDate;
Response = await readOnlyClient.Metrics.ListAsync(
resourceUri: resourceId,
timespan: timeSpan,
interval: System.TimeSpan.FromHours(1),
metricnames: "UsedCapacity",
aggregation: "Average",
resultType: ResultType.Data,
cancellationToken: CancellationToken.None);
foreach (var metric in Response.Value)
{
// Enumrate metric value
// Id
// Name
// Type
// Unit
// Timeseries
// - Data
// - Metadatavalues
}
}
قراءة القيم المترية متعددة الأبعاد
بالنسبة للمقاييس متعددة الأبعاد، تحتاج إلى تحديد عوامل تصفية البيانات الوصفية إذا كنت تريد قراءة بيانات المقاييس على قيم أبعاد معينة.
يوضح المثال التالي كيفية قراءة البيانات المترية على المقياس الذي يدعم الأبعاد المتعددة:
public static async Task ReadStorageMetricValueTest()
{
// Resource ID for queue storage
var resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/queueServices/default";
var subscriptionId = "<subscription-ID}";
// How to identify Tenant ID, Application ID and Access Key: https://azure.microsoft.com/documentation/articles/resource-group-create-service-principal-portal/
var tenantId = "<tenant-ID>";
var applicationId = "<application-ID>";
var accessKey = "<AccessKey>";
MonitorManagementClient readOnlyClient = AuthenticateWithReadOnlyClient(tenantId, applicationId, accessKey, subscriptionId).Result;
Microsoft.Azure.Management.Monitor.Models.Response Response;
string startDate = DateTime.Now.AddHours(-3).ToUniversalTime().ToString("o");
string endDate = DateTime.Now.ToUniversalTime().ToString("o");
string timeSpan = startDate + "/" + endDate;
// It's applicable to define meta data filter when a metric support dimension
// More conditions can be added with the 'or' and 'and' operators, example: BlobType eq 'BlockBlob' or BlobType eq 'PageBlob'
ODataQuery<MetadataValue> odataFilterMetrics = new ODataQuery<MetadataValue>(
string.Format("BlobType eq '{0}'", "BlockBlob"));
Response = readOnlyClient.Metrics.List(
resourceUri: resourceId,
timespan: timeSpan,
interval: System.TimeSpan.FromHours(1),
metricnames: "BlobCapacity",
odataQuery: odataFilterMetrics,
aggregation: "Average",
resultType: ResultType.Data);
foreach (var metric in Response.Value)
{
//Enumrate metric value
// Id
// Name
// Type
// Unit
// Timeseries
// - Data
// - Metadatavalues
}
}
تحليل السجلات
يمكنك الوصول إلى سجلات الموارد إما كقائمة انتظار في حساب تخزين، أو كبيانات حدث، أو من خلال استعلامات Log Analytics.
للحصول على مرجع مفصل للحقول التي تظهر في تلك السجلات، انظر مرجع بيانات مراقبة Azure Blob Storage.
يتم إنشاء إدخالات السجل فقط إذا كانت هناك طلبات تم إجراؤها على نقطة نهاية الخدمة. على سبيل المثال، إذا كان حساب التخزين يحتوي على نشاط في نقطة نهاية قائمة الانتظار الخاصة به ولكن ليس في جدوله أو نقاط نهاية blob الخاصة به، يتم فقط إنشاء السجلات التي تتعلق بتخزين قائمة الانتظار. تحتوي سجلات Azure Storage على معلومات مفصلة حول الطلبات الناجحة والفاشلة لخدمة التخزين. يمكن استخدام هذه المعلومات لمراقبة الطلبات الفردية وتشخيص المشكلات المتعلقة بخدمة التخزين. يتم تسجيل الطلبات على أساس أفضل جهد.
سجل الطلبات المصدق عليها
تُسجل الأنواع التالية من طلبات التخويل:
- طلبات ناجحة
- الطلبات الفاشلة، بما في ذلك أخطاء المهلة، والتقييد، والشبكة، والتخويل، والأخطاء الأخرى
- الطلبات التي تستخدم توقيع وصول مشترك (SAS) أو OAuth، بما في ذلك الطلبات الفاشلة والناجحة
- طلبات تحليل البيانات (بيانات السجل الكلاسيكية في حاوية $logs وبيانات قياس الفئة في جداول $metric)
لا تُسجل الطلبات التي يتم إجراؤها بواسطة خدمة تخزين قائمة الانتظار نفسها، مثل إنشاء السجل أو حذفه. للحصول على قائمة كاملة بالبيانات المسجلة، انظر عمليات التخزين المسجلة ورسائل الحالةوتنسيق سجل التخزين.
سجل الطلبات المجهولة
يتم تسجيل الأنواع التالية من الطلبات المجهولة:
- طلبات ناجحة
- أخطاء الخادم
- أخطاء المهلة لكل من العميل والخادم
- الطلبات الفاشلة
GETبرمز الخطأ 304 (Not Modified)
لا يتم تسجيل جميع الطلبات المجهولة الأخرى الفاشلة. للحصول على قائمة كاملة بالبيانات المسجلة، انظر عمليات التخزين المسجلة ورسائل الحالةوتنسيق سجل التخزين.
الوصول إلى السجلات في حساب التخزين
تظهر السجلات كنقاط كبيرة مخزنة في حاوية في حساب التخزين الهدف. يتم جمع البيانات وتخزينها داخل كائن ثنائي كبير الحجم واحد كحمولة JSON محددة الأسطر. يتبع اسم الكائن الثنائي كبير الحجم اصطلاح التسمية هذا:
https://<destination-storage-account>.blob.core.windows.net/insights-logs-<storage-operation>/resourceId=/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<source-storage-account>/queueServices/default/y=<year>/m=<month>/d=<day>/h=<hour>/m=<minute>/PT1H.json
وفيما يلي مثال على ذلك:
https://mylogstorageaccount.blob.core.windows.net/insights-logs-storagewrite/resourceId=/subscriptions/208841be-a4v3-4234-9450-08b90c09f4/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount/queueServices/default/y=2019/m=07/d=30/h=23/m=12/PT1H.json
الوصول إلى السجلات في مركز الأحداث
لا يتم تخزين السجلات المرسلة إلى مركز الأحداث كملف، ولكن يمكنك التحقق من أن مركز الحدث قد تلقى معلومات السجل. في مدخل Azure، انتقل إلى مركز الأحداث وتحقق من أن عدد incoming requests أكبر من الصفر.

يمكنك الوصول إلى بيانات السجل التي تم إرسالها إلى مركز الأحداث وقراءتها باستخدام معلومات الأمان وأدوات إدارة الأحداث ومراقبتها. لمزيد من المعلومات، انظرماذا يمكنني أن أفعل مع بيانات المراقبة التي يتم إرسالها إلى مركز الأحداث الخاص بي؟.
الوصول إلى السجلات في مساحة عمل Log Analytics
يمكنك الوصول إلى السجلات المرسلة إلى مساحة عمل Log Analytics باستخدام استعلامات سجل Azure Monitor.
لمزيد من المعلومات، انظر البدء في استعلامات السجل في Azure Monitor.
تُخزَّن البيانات في StorageQueueLogs جدول.
استفسارات عينة Kusto
فيما يلي بعض الاستعلامات التي يمكنك إدخالها في شريط البحث في السجل لمساعدتك في مراقبة قائمة الانتظار. تعمل هذه الاستعلامات مع new language.
هام
عند تحديد السجلات من قائمة مجموعة موارد حساب التخزين، يتم فتح تحليلات السجل بنطاق طلب البحث الذي تم تعيينه على مجموعة الموارد الحالية. هذا يعني أن استعلامات السجل ستتضمن فقط بيانات من مجموعة المورد. إذا كنت تريد تشغيل استعلام يتضمن بيانات من موارد أخرى أو بيانات من خدمات Azure الأخرى، فحدد Logs من قائمة Azure Monitor. راجع نطاق الاستعلام عن السجل والزمن في Azure Monitor Log Analytics للحصول على التفاصيل.
استخدم هذه الاستعلامات لمساعدتك في مراقبة حسابات Azure Storage الخاصة بك:
لإدراج الأخطاء العشرة الأكثر شيوعًا خلال الأيام الثلاثة الماضية.
StorageQueueLogs | where TimeGenerated > ago(3d) and StatusText !contains "Success" | summarize count() by StatusText | top 10 by count_ descلإدراج أهم 10 عمليات تسببت في أكبر عدد من الأخطاء خلال الأيام الثلاثة الماضية.
StorageQueueLogs | where TimeGenerated > ago(3d) and StatusText !contains "Success" | summarize count() by OperationName | top 10 by count_ descلإدراج أهم 10 عمليات مع أطول زمن انتقال من طرف إلى طرف خلال الأيام الثلاثة الماضية.
StorageQueueLogs | where TimeGenerated > ago(3d) | top 10 by DurationMs desc | project TimeGenerated, OperationName, DurationMs, ServerLatencyMs, ClientLatencyMs = DurationMs - ServerLatencyMsلإدراج كافة العمليات التي تسببت في أخطاء التحكم من جانب الخادم خلال الأيام الثلاثة الماضية.
StorageQueueLogs | where TimeGenerated > ago(3d) and StatusText contains "ServerBusy" | project TimeGenerated, OperationName, StatusCode, StatusTextلإدراج جميع الطلبات مع وصول مجهول خلال الأيام الثلاثة الماضية.
StorageBlobLogs | where TimeGenerated > ago(3d) and AuthenticationType == "Anonymous" | project TimeGenerated, OperationName, AuthenticationType, Uriلإنشاء مخطط دائري للعمليات المستخدمة خلال الأيام الثلاثة الماضية.
StorageQueueLogs | where TimeGenerated > ago(3d) | summarize count() by OperationName | sort by count_ desc | render piechart
الأسئلة المتداولة
هل يدعم Azure Storage مقاييس الأقراص المُدارة، أو الأقراص غير المُدارة؟
كلا. تدعم مثيلات الحساب المقاييس الموجودة على الأقراص. للحصول على مزيد من المعلومات، انظرمقاييس لكل قرص للأقراص المُدارة وغير المُدارة.
الخطوات التالية
- للحصول على مرجع للسجلات والمقاييس التي تم إنشاؤها بواسطة Azure Blob Storage، انظُر مرجع بيانات مراقبة تخزين Azure Blob.
- للحصول على تفاصيل حول مراقبة موارد Azure، انظر مراقبة موارد Azure باستخدام Azure Monitor.
- لمزيد من المعلومات حول ترحيل المقاييس، انظرترحيل مقاييس تخزين Azure.