Включение мониторинга приложений в службе приложение Azure для приложений .NET, Node.js, Python и Java

Подсказка

Сведения, приведенные в этой статье, перемещены в Мониторинг службы приложений Azure в марте 2026 года.

Автоинструментация, также называемая мониторингом среды выполнения, — это самый простой способ включить Application Insights для службы приложений Azure без изменения кода или необходимости в сложных настройках. На основе конкретного сценария оцените, требуется ли более расширенный мониторинг с помощью ручного инструментирования.

Замечание

Поддержка ввода ключей инструментирования будет завершена 31 марта 2025 г. Продолжится обработка ключей инструментирования, но мы больше не будем предоставлять обновления и поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.

Включить Application Insights

Это важно

Если обнаружены как автоинструментация, так и ручное инструментирование с использованием SDK, учитываются только параметры ручного инструментирования. Это соглашение предотвращает отправку повторяющихся данных. Дополнительные сведения см. в статье "Устранение неполадок интеграции Application Insights с службой приложений Azure".

Замечание

Автоинструментация в портале Azure

  1. Выберите Application Insights в меню навигации слева службы приложений и нажмите кнопку "Включить".

     Снимок экрана: вкладка Application Insights с выбранным параметром

  2. Создайте новый ресурс или выберите существующий ресурс Application Insights для этого приложения.

    Замечание

    При нажатии кнопки "ОК " для создания нового ресурса появится запрос на применение параметров мониторинга. При выборе "Продолжить" вы можете связать новый ресурс Application Insights со службой приложений. Затем служба приложений перезапускается.

    Снимок экрана: раскрывающийся список

  3. После указания используемого ресурса вы можете выбрать способ сбора данных на каждую платформу для приложения Application Insights. Параметры коллекции в ASP.NET Core могут быть рекомендуемыми или отключенными.

     Снимок экрана, показывающий раздел об инструментировании вашего приложения.

Обновление расширения или агента мониторинга вручную

Обновление с версии 2.8.9 и выше

Обновление с версии 2.8.9 происходит автоматически, никаких дополнительных действий не требуется. Новые биты мониторинга доставляются в фоновом режиме в целевую службу приложений и подхватываются при перезапуске приложения.

Чтобы узнать, какую версию расширения вы используете, перейдите по адресу https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

Снимок экрана: путь URL-адреса для проверки версии запущенного расширения.

Обновление с версий 1.0.0–2.6.5

Начиная с версии 2.8.9 используется предварительно установленное расширение сайта. Если вы используете более раннюю версию, можно выполнить обновление одним из следующих двух способов:

  • Обновление путем включения через портал Azure: Даже если у вас установлено расширение Application Insights для Службы приложений, пользовательский интерфейс отображает только кнопку «Включить». За кулисами удаляется старое расширение частного сайта.

  • Обновление с помощью PowerShell.

    1. Настройте параметры приложения, чтобы включить предварительно установленное расширение сайта ApplicationInsightsAgent. Дополнительные сведения см. в разделе "Включить с помощью PowerShell".
    2. Вручную удалите расширение частного сайта с именем Application Insights extension for Azure App Service.

Если обновление выполняется с версии до 2.5.1, убедитесь, что ApplicationInsights библиотеки DLL удаляются из папки корзины приложения. Дополнительные сведения см. в статье "Устранение неполадок интеграции Application Insights с службой приложений Azure".

Настройка расширения или агента мониторинга

В настоящее время мы не предлагаем варианты настройки расширения мониторинга для ASP.NET Core.

Включение наблюдения на стороне клиента

Мониторинг на стороне клиента включен по умолчанию для приложений ASP.NET Core с рекомендуемой коллекцией независимо от того, присутствует ли параметр APPINSIGHTS_JAVASCRIPT_ENABLED приложения.

Если вы хотите отключить мониторинг на стороне клиента:

  1. Выберите Параметры>Конфигурация.

  2. В разделе "Параметры приложения" создайте параметр нового приложения со следующими сведениями:

    • Имя: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Значение: false
  3. Сохраните параметры. Перезапустите приложение.

Автоматизация мониторинга

Чтобы включить сбор данных телеметрии с помощью Application Insights, достаточно просто задать следующие параметры приложения:

Снимок экрана, показывающий настройки приложения в Службе приложений вместе с настройками Application Insights.

Определения параметров приложения

Имя параметра приложения Определение Ценность
ApplicationInsightsAgent_ВЕРСИЯ_РАСШИРЕНИЯ Главное расширение, которое управляет мониторингом среды выполнения. ~2 для Windows или ~3 для Linux
XDT_MicrosoftApplicationInsights_Режим В режиме по умолчанию для обеспечения оптимальной производительности включены только основные функции. disabled или recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Только для приложений ASP.NET Core. Включает взаимодействие (взаимодействие) с пакетом SDK Application Insights. Загружает расширение параллельно с пакетом SDK и использует его для отправки телеметрии. (Отключает пакет SDK Application Insights.) 1

Параметры приложения службы приложений в Azure Resource Manager

Параметры приложения для службы приложений Azure можно управлять и настраивать с помощью шаблонов Azure Resource Manager. Этот метод можно использовать при развертывании новых ресурсов службы приложений с помощью автоматизации 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. На портале Azure создайте ресурс веб-приложения с нужными сведениями. Включите Application Insights на вкладке "Монитор и безопасность ".

  2. Перейдите к разделу "Просмотр и создание", а затем выберите "Скачать шаблон для автоматизации". Этот параметр создает последний шаблон Resource Manager со всеми необходимыми параметрами.

    Снимок экрана: меню создания веб-приложения Служба приложений.

Замечание

В следующем примере шаблона используется приложение .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 установите значение ~2 для ApplicationInsightsAgent_EXTENSION_VERSION.

Для 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

Troubleshooting

См. специальную статью об устранении неполадок.

Дальнейшие действия