مراقبة Azure Blob Storage

عندما يكون لديك تطبيقات وعمليات أعمال مهمة تعتمد على موارد Azure، فأنت تريد مراقبة هذه الموارد لمعرفة مدى توفرها وأدائها وتشغيلها. توضح هذه المقالة بيانات المراقبة التي أُنشئت بواسطة Azure Blob Storage وكيف يمكنك استخدام ميزات Azure Monitor لتحليل التنبيهات على هذه البيانات.

نظرة عامة على الشاشة

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

ما هو 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 الخدمة في المقاييس والسجلات القديمة.

الجمع والتوجيه

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

لتجميع سجلات الموارد، يجب عليك إنشاء إعداد تشخيص. عند إنشاء الإعداد، اختر كائن ثنائي كبير الحجم كنوع التخزين الذي تريد تمكين السجلات من أجله. بعد ذلك، حدد إحدى فئات العمليات التالية التي تريد جمع السجلات لها.

الفئة الوصف
قراءة التخزين قراءة العمليات على العناصر.
كتابة التخزين كتابة العمليات على العناصر.
حذف التخزين حذف العمليات على العناصر.

ملاحظة

لا يظهر Data Lake Storage Gen2 كنوع تخزين. ذلك لأن Data Lake Storage Gen2 عبارة عن مجموعة من الإمكانات المتاحة لتخزين Blob.

إنشاء الإعدادات التشخيصية

يمكنك إنشاء إعداد تشخيص باستخدام مدخل Azure أو PowerShell أو Azure CLI أو قالب Azure Resource Manager أو نهج Azure.

للحصول على إرشادات عامة، راجع «Create» إنشاء إعدادات تشخيصية لتجميع سجلات النظام الأساسي والمقاييس في Azure.

  1. سجّل الدخول إلى مدخل Azure.

  2. انتقل إلى حساب التخزين الخاص بك.

  3. في قسم Monitoring، انقر فوق Diagnostic settings.

    portal - Diagnostics logs

  4. اختر كائن ثنائي كبير الحجم كنوع التخزين الذي تريد تمكين سجلات له.

  5. اخترAdd diagnostic setting.

    portal - Resource logs - add diagnostic setting

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

    Resource logs page

  6. في حقل الاسم في الصفحة، أدخل اسمًا لإعداد سجل الموارد. بعد ذلك، حدد العمليات التي تريد تسجيلها (عمليات القراءة والكتابة والحذف)، والمكان الذي تريد إرسال السجلات إليه.

أرشفة السجلات إلى حساب التخزين

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

  1. حدد خانة الاختيار أرشيف إلى حساب تخزين، ثم حدد الزر تكوين.

    Diagnostic settings page archive storage

  2. في القائمة المنسدلة حساب التخزين حدد حساب التخزين الذي تريد أرشفة سجلاتك إليه، ثم حدد الزر حفظ.

    هام

    لا يمكنك إعداد نهج استبقاء. ومع ذلك، يمكنك إدارة نهج الاحتفاظ بحاوية السجل عن طريق تحديد نهج إدارة دورة الحياة. لمعرفة كيفية القيام بذلك، انظر تحسين التكاليف عن طريق أتمتة مستويات الوصول إلى Azure Blob Storage.

    ملاحظة

    قبل اختيار حساب تخزين كوجهة تصدير، انظرسجلات موارد Archive Azure لفهم المتطلبات الأساسية على حساب التخزين.

سجلات الدفق إلى مراكز الأحداثAzure Event Hubs

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

  1. حدد خانة الاختيار التدفق إلى مركز حدث، ثم حدد الزر تكوين.

  2. في جزء تحديد لوحة وصل حدث، اختر مساحة الاسم، والاسم، واسم النهج الخاص بلوحة وصل الأحداث التي تريد دفق السجلات إليها.

    Diagnostic settings page event hub

  3. حدد الزر Save.

أرسل السجلات إلى Azure Log Analytics

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

    Diagnostic settings page log analytics

هام

لا يمكنك إعداد نهج استبقاء. ويمكنك مع ذلك إدارة فترة استبقاء بالبيانات في Log Analytics على مستوى مساحة العمل أو حتى تحديد إعدادات احتفاظ مختلفة حسب نوع البيانات. لمعرفة كيفية القيام بذلك، انظر تغيير فترة استبقاء البيانات.

تحليل المقاييس

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

يوضح هذا المثال كيفية عرض العمليات على مستوى الحساب.

Screenshot of accessing metrics in the Azure portal

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

Screenshot of accessing metrics with dimension in the Azure portal

للحصول على قائمة كاملة بالأبعاد التي يدعمها Azure Storage، انظرأبعاد المقاييس.

توجد مقاييس تخزين Azure Blob في مساحات الأسماء التالية:

  • Microsoft.Storage/storageAccounts
  • Microsoft.Storage/storageAccounts/blobServices

للحصول على قائمة بجميع مقاييس دعم 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 blob storage
        var resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/blobServices/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 Blob Storage.

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

سجل الطلبات المصدق عليها

تُسجل الأنواع التالية من طلبات التخويل:

  • طلبات ناجحة
  • الطلبات الفاشلة، بما في ذلك أخطاء المهلة، والتقييد، والشبكة، والتخويل، والأخطاء الأخرى
  • الطلبات التي تستخدم توقيع وصول مشترك (SAS) أو OAuth، بما في ذلك الطلبات الفاشلة والناجحة
  • طلبات تحليل البيانات (بيانات السجل الكلاسيكية في حاوية $logs وبيانات قياس الفئة في جداول $metric)

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

سجل الطلبات المجهولة

يتم تسجيل الأنواع التالية من الطلبات المجهولة:

  • طلبات ناجحة
  • أخطاء الخادم
  • أخطاء المهلة لكل من العميل والخادم
  • طلبات 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>/blobServices/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/blobServices/default/y=2019/m=07/d=30/h=23/m=12/PT1H.json

الوصول إلى السجلات في مركز الأحداث

لا يتم تخزين السجلات المرسلة إلى مركز الأحداث كملف، ولكن يمكنك التحقق من أن مركز الحدث قد تلقى معلومات السجل. في مدخل Azure، انتقل إلى مركز الأحداث وتحقق من أن عدد الرسائل الواردة أكبر من الصفر.

Audit logs

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

الوصول إلى السجلات في مساحة عمل Log Analytics

يمكنك الوصول إلى السجلات المرسلة إلى مساحة عمل Log Analytics باستخدام استعلامات سجل Azure Monitor.

لمزيد من المعلومات، انظر البدء في استعلامات السجل في Azure Monitor.

تُخزَّن البيانات في جدول StorageBlobLog. لا تظهر سجلات Data Lake Storage Gen2 في جدول مخصص. ذلك لأن Data Lake Storage Gen2 ليس خدمة. بل مجموعة من الإمكانات التي يمكنك تمكينها في حساب التخزين الخاص بك. وإذا قمت بتمكين هذه الإمكانات، فسيستمر ظهور السجلات في جدول StorageBlobLog.

استفسارات عينة Kusto

فيما يلي بعض الاستعلامات التي يمكنك إدخالها في شريط البحث في السجل لمساعدتك في مراقبة تخزين الكائن الثنائي كبير الحجم الخاص بك. تعمل هذه الاستعلامات مع new language.

هام

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

استخدم هذه الاستعلامات لمساعدتك في مراقبة حسابات Azure Storage الخاصة بك:

  • لإدراج الأخطاء العشرة الأكثر شيوعًا خلال الأيام الثلاثة الماضية.

    StorageBlobLogs
    | where TimeGenerated > ago(3d) and StatusText !contains "Success"
    | summarize count() by StatusText
    | top 10 by count_ desc
    
  • لإدراج أهم 10 عمليات تسببت في أكبر عدد من الأخطاء خلال الأيام الثلاثة الماضية.

    StorageBlobLogs
    | where TimeGenerated > ago(3d) and StatusText !contains "Success"
    | summarize count() by OperationName
    | top 10 by count_ desc
    
  • لإدراج أهم 10 عمليات مع أطول زمن انتقال من طرف إلى طرف خلال الأيام الثلاثة الماضية.

    StorageBlobLogs
    | where TimeGenerated > ago(3d)
    | top 10 by DurationMs desc
    | project TimeGenerated, OperationName, DurationMs, ServerLatencyMs, ClientLatencyMs = DurationMs - ServerLatencyMs
    
  • لإدراج كافة العمليات التي تسببت في أخطاء التحكم من جانب الخادم خلال الأيام الثلاثة الماضية.

    StorageBlobLogs
    | 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
    
  • لإنشاء مخطط دائري للعمليات المستخدمة خلال الأيام الثلاثة الماضية.

    StorageBlobLogs
    | where TimeGenerated > ago(3d)
    | summarize count() by OperationName
    | sort by count_ desc
    | render piechart
    

دعم الميزة

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

السجلات في Azure Monitor

نوع حساب التخزين Blob Storage (الدعم الافتراضي) Data Lake Storage Gen2 ⁧⁩1⁧ NFS 3.0 ⁧⁩1⁧ SFTP 1
معيار الأغراض العامة v2 Yes Yes No No
Premium كتلة blobs Yes Yes No No

المقاييس في Azure Monitor

نوع حساب التخزين Blob Storage (الدعم الافتراضي) Data Lake Storage Gen2 ⁧⁩1⁧ NFS 3.0 ⁧⁩1⁧ SFTP 1
معيار الأغراض العامة v2 Yes Yes Yes Yes
Premium كتلة blobs Yes Yes2 Yes2 Yes2

1 تتطلب كل من Data Lake Storage Gen2 و Network File System (NFS) 3.0 وSSH File Transfer Protocol (SFTP) حساب تخزين مع تمكين مساحة اسماء هرمية.

2 الميزة مدعومة على مستوى المعاينة.

الأسئلة المتداولة

هل يدعم Azure Storage مقاييس الأقراص المُدارة أو الأقراص غير المُدارة؟

كلا. يدعم Azure Compute المقاييس الموجودة على الأقراص. لمزيد من المعلومات، انظرمقاييس لكل قرص للأقراص المُدارة وغير المُدارة.

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