Sdílet prostřednictvím


Povolení monitorování aplikací ve službě Aplikace Azure Service pro aplikace .NET, Node.js, Python a Java

Automatická instrumentace, označovaná také jako monitorování za běhu, je nejjednodušší způsob, jak povolit Application Insights pro Azure App Service bez nutnosti jakýchkoli změn kódu nebo pokročilých konfigurací. Na základě konkrétního scénáře vyhodnoťte, jestli vyžadujete pokročilejší monitorování prostřednictvím ruční instrumentace.

Poznámka:

Podpora příjmu dat založeného na instrumentačním klíči skončí 31. března 2025. Příjem klíčů instrumentace bude dál fungovat, ale už nebudeme poskytovat aktualizace ani podporu pro tuto funkci. Přechod na připojovací řetězec, abyste mohli využívat nové funkce.

Aktivovat službu Application Insights

Důležité

Je-li zjištěno monitorování automatické instrumentace i ruční instrumentace založené na sadě SDK, budou dodržena pouze nastavení ruční instrumentace. Toto uspořádání zabraňuje odesílání duplicitních dat. Další informace najdete v tématu Řešení potíží s integrací Application Insights se službou Azure App Service.

Poznámka:

Automatické instrumentování v Azure portálu

  1. V levé navigační nabídce služby App Service vyberte Application Insights a pak vyberte Povolit.

     Snímek obrazovky znázorňující kartu Application Insights s vybranou možností Povolit

  2. Vytvořte nový prostředek nebo vyberte existující prostředek Application Insights pro tuto aplikaci.

    Poznámka:

    Když vyberete OK a vytvoříte nový prostředek, zobrazí se výzva k použití nastavení monitorování. Výběrem Pokračovat propojíte nový prostředek Application Insights se službou App Service. Vaše služba App Service se pak restartuje.

    Snímek obrazovky, který ukazuje rozevírací seznam 'Změnit prostředek'

  3. Po určení, který prostředek se má použít, můžete zvolit, jak má Application Insights shromažďovat data pro každou platformu pro vaši aplikaci. ASP.NET Možnosti kolekce Core jsou doporučené nebo zakázané.

     Snímek obrazovky znázorňující instrumentaci vaší aplikace.

Ruční upgrade rozšíření/agenta monitorování

Upgrade z verze 2.8.9 a novější

Upgrade z verze 2.8.9 probíhá automaticky bez dalších akcí. Nové monitorovací bity se doručí na pozadí do cílové služby App Service a aktivují se při restartování aplikace.

Pokud chcete zkontrolovat, jakou verzi rozšíření používáte, přejděte na https://yoursitename.scm.azurewebsites.net/ApplicationInsightsstránku .

Snímek obrazovky znázorňující cestu URL ke kontrole verze rozšíření, které používáte

Upgrade z verze 1.0.0 – 2.6.5

Počínaje verzí 2.8.9 se používá předinstalované rozšíření webu. Pokud používáte starší verzi, můžete ji aktualizovat jedním ze dvou způsobů:

Pokud se upgrade provádí z verze starší než 2.5.1, zkontrolujte, jestli jsou knihovny DLL odebrány ze složky bin aplikace. Další informace najdete v tématu Řešení potíží s integrací Application Insights se službou Azure App Service.

Nakonfigurujte rozšíření monitorování/agenta

V současné době nenabízíme možnosti konfigurace rozšíření monitorování pro ASP.NET Core.

Povolení monitorování na straně klienta

Monitorování na straně klienta je ve výchozím nastavení povolené pro aplikace ASP.NET Core s doporučenou kolekcí bez ohledu na to, jestli je nastavení APPINSIGHTS_JAVASCRIPT_ENABLED aplikace k dispozici.

Pokud chcete zakázat monitorování na straně klienta:

  1. Vyberte Nastavení>Konfigurace.

  2. V části Nastavení aplikace vytvořte nové nastavení aplikace s následujícími informacemi:

    • Název: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Hodnota: false
  3. Uložte nastavení. Restartujte aplikaci.

Automatizace monitorování

Aby bylo možné povolit shromažďování telemetrických dat pomocí Application Insights, je potřeba nastavit pouze následující nastavení aplikace:

Snímek obrazovky znázorňující nastavení aplikace App Service s nastavením Application Insights

Definice nastavení aplikace

Název nastavení aplikace Definice Hodnota
ApplicationInsightsAgent_EXTENSION_VERSION Hlavní rozšíření, které řídí monitorování za běhu programu. ~2 pro Windows nebo ~3 Linux
XDT_MicrosoftApplicationInsights_Mode Ve výchozím režimu jsou povoleny pouze základní funkce, které zajistí optimální výkon. disabled nebo recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Pouze pro aplikace ASP.NET Core. Umožňuje spolupráci (interoperace) se sadou Application Insights SDK. Načte rozšíření vedle sady SDK a používá ho k odesílání telemetrie. (Zakáže Application Insights SDK.) 1

Nastavení aplikace služby App Service pomocí Azure Resource Manageru

Nastavení aplikace pro službu Aplikace Azure Service je možné spravovat a konfigurovat pomocí šablon Azure Resource Manageru. Tuto metodu můžete použít při nasazování nových prostředků služby App Service s automatizací Resource Manageru nebo úpravou nastavení existujících prostředků.

Základní struktura JSON nastavení aplikace pro prostředek služby 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"
          }
        }
      ]

Pokud chcete vytvořit šablonu Resource Manageru s výchozím nastavením Application Insights, začněte proces, jako byste chtěli vytvořit novou webovou aplikaci s povolenou službou Application Insights.

  1. V Azure Portálu vytvořte novou webovou aplikaci s požadovanými informacemi. Povolte Application Insights na kartě Monitorování a zabezpečení .

  2. Přejděte na Zkontrolovat a vytvořit a pak vyberte Stáhnout šablonu pro automatizaci. Tato možnost vygeneruje nejnovější šablonu Resource Manageru se všemi nakonfigurovanými požadovanými nastaveními.

    Snímek obrazovky znázorňující nabídku vytvoření webové aplikace služby App Service

Poznámka:

Následující příklad šablony je určená pro aplikaci .NET 8 (LTS) běžící ve Windows. Používá zástupné symboly my-monitored-web-app pro název aplikace a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e ID předplatného.

Nedoporučujeme kopírovat a používat ho přímo. Místo toho vygenerujte vlastní šablonu na základě výše uvedených pokynů.


Rozbalení a zobrazení ukázkové šablony
{
    "$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": {}
                        }
                    ]
                }
            }
        }
    ]
}

Povolení prostřednictvím PowerShellu

Pokud chcete povolit monitorování aplikací prostřednictvím PowerShellu, musíte změnit jenom základní nastavení aplikace. Následující ukázka umožňuje monitorování aplikace pro web nazvaný my-monitored-web-app ve skupině prostředků my-resource-group. Konfiguruje odesílání dat do připojovacího InstrumentationKey=012345678-abcd-ef01-2345-6789abcd řetězce.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Poznámka:

Pro Windows nastavte ApplicationInsightsAgent_EXTENSION_VERSION na ~2.

V případě Linuxu nastavte ApplicationInsightsAgent_EXTENSION_VERSION na ~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

Řešení problému

Projděte si vyhrazený článek o řešení potíží.

Další kroky