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

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

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

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

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

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

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

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

للحصول على قائمة كاملة بالأبعاد التي يدعمها Azure Storage، انظرأبعاد المقاييس.
توجد مقاييس تخزين Azure Table في مساحات الأسماء هذه:
- Microsoft.Storage/storageAccounts
- Microsoft.Storage/storageAccounts/tableServices
للحصول على قائمة بجميع مقاييس دعم Azure Monitor، والتي تتضمن تخزين Azure Table، راجع مقاييس دعم Azure Monitor .
الوصول إلى المقاييس
تلميح
لعرض أمثلة Azure CLI أو .NET ، اختر علامات التبويب المقابلة المدرجة أدناه.
يوفّر Azure Monitor SDK.NET لقراءة تعريف القياس والقيم. يوضح نموذج التعليمة البرمجية للعينة كيفية استخدام SDK مع معلمات مختلفة. تحتاج إلى استخدام أو 0.18.0-previewإصدار أحدث لمقاييس التخزين.
في هذه الأمثلة، استبدل العنصر النائب <resource-ID> بمعرف المورد لحساب التخزين بالكامل أو خدمة Table storage. يمكنك العثور على معرّفات الموارد هذه في صفحات الخصائص لحساب التخزين في مدخل 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 table storage
var resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/tableServices/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 Analytic.
للحصول على مرجع تفصيلي للحقول التي تظهر في هذه السجلات، راجع مرجع بيانات مراقبة تخزين جدول Azure .
يتم إنشاء إدخالات السجل فقط إذا كانت هناك طلبات تم إجراؤها على نقطة نهاية الخدمة. على سبيل المثال، إذا كان حساب التخزين يحتوي على نشاط في نقطة نهاية الجدول الخاصة به ولكن ليس في نقاط نهاية كائن ثنائي كبير الحجم أو قائمة الانتظار الخاصة به، يتم إنشاء السجلات المتعلقة بخدمة الجدول فقط. تحتوي سجلات Azure Storage على معلومات مفصلة حول الطلبات الناجحة والفاشلة لخدمة التخزين. يمكن استخدام هذه المعلومات لمراقبة الطلبات الفردية وتشخيص المشكلات المتعلقة بخدمة التخزين. يتم تسجيل الطلبات على أساس أفضل جهد.
سجل الطلبات المصدق عليها
تُسجل الأنواع التالية من طلبات التخويل:
- طلبات ناجحة
- الطلبات الفاشلة، بما في ذلك أخطاء المهلة، والتقييد، والشبكة، والتخويل، والأخطاء الأخرى
- الطلبات التي تستخدم توقيع وصول مشترك (SAS) أو OAuth، بما في ذلك الطلبات الفاشلة والناجحة
- طلبات تحليل البيانات (بيانات السجل الكلاسيكية في حاوية $logs وبيانات قياس الفئة في جداول $metric)
لا يتم تسجيل الطلبات التي يتم إجراؤها بواسطة خدمة Table storage نفسها، مثل إنشاء السجل أو حذفه. للحصول على قائمة كاملة بالبيانات المسجلة، انظر عمليات التخزين المسجلة ورسائل الحالةوتنسيق سجل التخزين.
سجل الطلبات المجهولة
يتم تسجيل الأنواع التالية من الطلبات المجهولة:
- طلبات ناجحة
- أخطاء الخادم
- أخطاء المهلة لكل من العميل والخادم
- طلبات GET الفاشلة التي تظهر مع رمز الخطأ 304 (غير معدل)
لا يتم تسجيل جميع الطلبات المجهولة الأخرى الفاشلة. للحصول على قائمة كاملة بالبيانات المسجلة، انظر عمليات التخزين المسجلة ورسائل الحالةوتنسيق سجل التخزين.
الوصول إلى السجلات في حساب التخزين
تظهر السجلات كنقاط كبيرة مخزنة في حاوية في حساب التخزين الهدف. يتم جمع البيانات وتخزينها داخل كائن ثنائي كبير الحجم واحد كحمولة 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>/tableServices/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/tableServices/default/y=2019/m=07/d=30/h=23/m=12/PT1H.json
الوصول إلى السجلات في مركز الأحداث
لا يتم تخزين السجلات المرسلة إلى مركز الأحداث كملف، ولكن يمكنك التحقق من أن مركز الحدث قد تلقى معلومات السجل. في مدخل Azure، انتقل إلى مركز الأحداث وتحقق من أن عدد الرسائل الواردة أكبر من الصفر.

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