مشاركة عبر


تمكين مراقبة التطبيقات في Azure App Service لتطبيقات .NET Node.js وPython وJava

يعد الاختراق التلقائي، الذي يشار إليه أيضا باسم مراقبة وقت التشغيل، أسهل طريقة لتمكين Application Insights ل Azure App Service دون الحاجة إلى أي تغييرات في التعليمات البرمجية أو تكوينات متقدمة. استنادا إلى السيناريو المحدد، قم بتقييم ما إذا كنت تحتاج إلى مراقبة أكثر تقدما من خلال الأجهزة اليدوية.

إشعار

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

تمكين "Application Insights"

هام

إذا تم الكشف عن كل من مراقبة البنية التلقائية والأجهزة اليدوية المستندة إلى SDK، يتم الالتزام بإعدادات الأجهزة اليدوية فقط. يمنع هذا الترتيب إرسال البيانات المكررة. لمعرفة المزيد، راجع استكشاف أخطاء تكامل Application Insights مع Azure App Service وإصلاحها.

إشعار

البنية التلقائية في مدخل Microsoft Azure

  1. حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.

     لقطة شاشة تعرض علامة التبويب Application Insights مع تحديد تمكين.

  2. إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.

    إشعار

    عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.

    لقطة شاشة تعرض القائمة المنسدلة تغيير المورد.

  3. بعد تحديد المورد الذي يجب استخدامه، يمكنك اختيار الطريقة التي تريد أن يجمع بها Application Insights البيانات لكل نظام أساسي لتطبيقك. ASP.NET خيارات المجموعة الأساسية مستحسنة أو معطلة.

     لقطة شاشة تعرض قسم أدوات التطبيق الخاص بك.

ترقية ملحق/عامل المراقبة يدويا

الترقية من الإصدارات 2.8.9 وما فوق

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

للتحقق من إصدار الملحق الذي تقوم بتشغيله، انتقل إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

لقطة شاشة تعرض مسار URL للتحقق من إصدار الملحق الذي تقوم بتشغيله.

الترقية من الإصدارات 1.0.0 - 2.6.5

بدءا من الإصدار 2.8.9، يتم استخدام ملحق الموقع المثبت مسبقا. إذا كنت تستخدم إصداراً أقدم، فيمكنك التحديث بإحدى طريقتين:

  • الترقية عن طريق التمكين عبر مدخل Microsoft Azure: حتى إذا كان لديك ملحق Application Insights ل App Service مثبتا، فإن واجهة المستخدم تعرض الزر تمكين فقط. خلف الكواليس، تتم إزالة ملحق الموقع الخاص القديم.

  • الترقية من خلال PowerShell:

    1. قم بتعيين إعدادات التطبيق لتمكين ملحق ApplicationInsightsAgentالموقع المثبت مسبقا . لمزيد من المعلومات، راجع تمكين من خلال PowerShell.
    2. قم بإزالة ملحق الموقع الخاص المسمى ملحق Application Insights ل Azure App Service يدويا.

إذا تم إجراء الترقية من إصدار قبل 2.5.1، فتحقق من ApplicationInsights إزالة DLLs من مجلد سلة التطبيقات. لمزيد من المعلومات، راجع استكشاف أخطاء تكامل Application Insights مع Azure App Service وإصلاحها.

تكوين ملحق/عامل المراقبة

لا نقدم حاليا خيارات لتكوين ملحق المراقبة ل ASP.NET Core.

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

يتم تمكين المراقبة من جانب العميل بشكل افتراضي لتطبيقات ASP.NET Core مع المجموعة الموصى بها ، بغض النظر عما إذا كان إعداد APPINSIGHTS_JAVASCRIPT_ENABLED التطبيق موجودا أم لا.

إذا كنت ترغب في تعطيل المراقبة من جانب العميل:

  1. حدد Settings>Configuration.

  2. ضمن إعدادات التطبيق، قم بإنشاء إعداد تطبيق جديد بالمعلومات التالية:

    • الاسم:APPINSIGHTS_JAVASCRIPT_ENABLED
    • القيمة: false
  3. احفظ الإعدادات. أعد تشغيل التطبيق.

أتمتة المراقبة

لتمكين جمع القياس عن بعد باستخدام Application Insights، تحتاج فقط تعيين إعدادات التطبيق التالية:

لقطة شاشة تعرض إعدادات تطبيق App Service مع إعدادات Application Insights.

تعريفات إعدادات التطبيق

اسم إعداد التطبيق التعريف القيمة‬
ApplicationInsightsAgent_EXTENSION_VERSION التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل. ~2 لنظام تشغيل Windows أو ~3 لنظام تشغيل Linux
XDT_MicrosoftApplicationInsights_Mode في الوضع الافتراضي، يتم تمكين الميزات الأساسية فقط لضمان الأداء الأمثل. disabled أو recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk لتطبيقات ASP.NET Core فقط. تمكين Interop (التشغيل المتداخل) مع Application Insights SDK. تحميل الملحق جنبا إلى جنب مع SDK واستخدامه لإرسال بيانات تتبع الاستخدام. (يعطل Application Insights SDK.) 1

إعدادات تطبيق App Service باستخدام Azure Resource Manager

يمكن إدارة إعدادات التطبيق ل Azure App Service وتكوينها باستخدام قوالب Azure Resource Manager. يمكنك استخدام هذا الأسلوب عند نشر موارد App Service جديدة مع أتمتة Resource Manager أو تعديل إعدادات الموارد الموجودة.

البنية الأساسية لإعدادات التطبيق JSON لمورد App Service:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

لإنشاء قالب Resource Manager مع إعدادات Application Insights الافتراضية، ابدأ العملية كما لو كنت ستنشئ تطبيق ويب جديدا مع تمكين Application Insights.

  1. في مدخل Microsoft Azure، أنشئ مورد Web App جديدا بالمعلومات المطلوبة. تمكين Application Insights في علامة التبويب Monitor + secure .

  2. انتقل إلى Review + create، ثم حدد Download a template for automation. ينشئ هذا الخيار أحدث قالب Resource Manager مع تكوين جميع الإعدادات المطلوبة.

    لقطة شاشة تعرض قائمة إنشاء تطبيق ويب App Service.

إشعار

القالب المثال التالي هو لتطبيق .NET 8 (LTS) الذي يعمل على Windows. ويستخدم العناصر النائبة my-monitored-web-app لاسم التطبيق ومعرف aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e الاشتراك.

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


التوسيع لعرض نموذج القالب
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "subscriptionId": {
            "type": "string"
        },
        "resourceGroupName": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "alwaysOn": {
            "type": "bool"
        },
        "ftpsState": {
            "type": "string"
        },
        "autoGeneratedDomainNameLabelScope": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "workerSizeId": {
            "type": "string"
        },
        "numberOfWorkers": {
            "type": "string"
        },
        "currentStack": {
            "type": "string"
        },
        "phpVersion": {
            "type": "string"
        },
        "netFrameworkVersion": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "apiVersion": "2022-03-01",
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "location": "[parameters('location')]",
            "tags": null,
            "dependsOn": [
                "microsoft.insights/components/my-monitored-web-app",
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
            ],
            "properties": {
                "name": "[parameters('name')]",
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/my-monitored-web-app', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        },
                        {
                            "name": "XDT_MicrosoftApplicationInsights_Mode",
                            "value": "default"
                        }
                    ],
                    "metadata": [
                        {
                            "name": "CURRENT_STACK",
                            "value": "[parameters('currentStack')]"
                        }
                    ],
                    "phpVersion": "[parameters('phpVersion')]",
                    "netFrameworkVersion": "[parameters('netFrameworkVersion')]",
                    "alwaysOn": "[parameters('alwaysOn')]",
                    "ftpsState": "[parameters('ftpsState')]"
                },
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "clientAffinityEnabled": true,
                "virtualNetworkSubnetId": null,
                "httpsOnly": true,
                "publicNetworkAccess": "Enabled",
                "autoGeneratedDomainNameLabelScope": "[parameters('autoGeneratedDomainNameLabelScope')]"
            },
            "resources": [
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/scm')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                },
                {
                    "type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
                    "apiVersion": "2022-09-01",
                    "name": "[concat(parameters('name'), '/ftp')]",
                    "properties": {
                        "allow": true
                    },
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', parameters('name'))]"
                    ]
                }
            ]
        },
        {
            "apiVersion": "2018-11-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "kind": "",
            "tags": null,
            "dependsOn": [],
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSize": "[parameters('workerSize')]",
                "workerSizeId": "[parameters('workerSizeId')]",
                "numberOfWorkers": "[parameters('numberOfWorkers')]",
                "zoneRedundant": false
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2020-02-02-preview",
            "name": "my-monitored-web-app",
            "type": "microsoft.insights/components",
            "location": "centralus",
            "tags": null,
            "dependsOn": [
                "newWorkspaceTemplate"
            ],
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate",
                "Flow_Type": "Redfield",
                "Application_Type": "web",
                "WorkspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DefaultResourceGroup-CUS/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS"
            }
        },
        {
            "type": "Microsoft.Resources/deployments",
            "apiVersion": "2021-04-01",
            "name": "newWorkspaceTemplate",
            "resourceGroup": "DefaultResourceGroup-CUS",
            "subscriptionId": "[parameters('subscriptionId')]",
            "properties": {
                "mode": "Incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {},
                    "variables": {},
                    "resources": [
                        {
                            "apiVersion": "2020-08-01",
                            "name": "DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS",
                            "type": "Microsoft.OperationalInsights/workspaces",
                            "location": "centralus",
                            "properties": {}
                        }
                    ]
                }
            }
        }
    ]
}

تمكين من خلال PowerShell

لتمكين مراقبة التطبيق من خلال PowerShell، يجب تغيير إعدادات التطبيق الأساسية فقط. تمكن العينة التالية مراقبة التطبيق لموقع ويب يسمى my-monitored-web-app في مجموعة my-resource-groupالموارد . يقوم بتكوين البيانات لإرسالها إلى InstrumentationKey=012345678-abcd-ef01-2345-6789abcd سلسلة الاتصال.

إشعار

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

إشعار

بالنسبة إلى Windows، قم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~2.

بالنسبة إلى Linux، قم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~3.

$app = Get-AzWebApp -ResourceGroupName "my-resource-group" -Name "my-monitored-web-app" -ErrorAction Stop
$newAppSettings = @{} # Case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # Preserve non-Application-Insights application settings.
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"; # Set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~3"; # Enable the ApplicationInsightsAgent.
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

استكشاف الأخطاء وإصلاحها

راجع «dedicated troubleshooting article».

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