Alkalmazásfigyelés Azure App Service és ASP.NET Core

Az Azure-ASP.NET Core futó webalkalmazások monitorozásának engedélyezése mostantól App Services minden másnál. Míg korábban manuálisan kellett beállítania az alkalmazást, a legújabb bővítmény/ügynök alapértelmezés szerint be van építve App Service rendszerképbe. Ez a cikk végigkúton Azure Monitor alkalmazások Elemzések monitorozásának engedélyezésén, valamint előzetes útmutatást nyújt a nagy léptékű üzembe helyezés folyamatának automatizálásához.

Ügynökalapú figyelés engedélyezése

Fontos

A ASP.NET Core következő verziói támogatottak a Windows- és ASP.NET Core 3.1-es és 5.0-s verziókban. A 2.0-s, 2.1-es, 2.2-es és 3.0-s verziók ki vannakvezetve, és már nem támogatottak. Frissítsen a .NET Core egy támogatott verziójára az automatikus rendszer munkához.

A teljes keretrendszer ASP.NET Core nem támogatott a Windows. Ehelyett használjon manuális rendszerhasználatot kóddal.

Ebben Windows keretrendszertől függő üzembe helyezés támogatott, és az önálló üzembe helyezés nem támogatott.

Tekintse meg az alábbi Monitorozás engedélyezése szakaszt az Application Elemzések beállításának megkezdéséhez a App Service erőforrásával.

Monitorozás engedélyezése

  1. Válassza az Alkalmazás Elemzések az App Service Azure-vezérlőpultját, majd válassza az Engedélyezés lehetőséget.

    Képernyőkép az Application Elemzések lapról, az engedélyezés lehetőség bejelölve.

  2. Hozzon létre egy új erőforrást, vagy válasszon ki egy meglévő Application Elemzések erőforrást ehhez az alkalmazáshoz.

    Megjegyzés

    Amikor az OK gombra kattint az új erőforrás létrehozásához, a rendszer a figyelési beállítások alkalmazását kéri. A Folytatás lehetőség kiválasztásával az új Application Elemzések erőforrást az App Service-hez csatolja, ezzel pedig elindítja az App Service újraindítását is.

    Képernyőkép az Erőforrás módosítása legördülő menüről.

  3. A használni kívánt erőforrás megadása után kiválaszthatja, hogy az Application Elemzések hogyan gyűjtsön adatokat platformonként az alkalmazáshoz. ASP.NET Core ajánlott gyűjteményt vagy Letiltva lehetőséget kínál.

     Az alkalmazás szakaszának képernyőképe.

Ügyféloldali figyelés engedélyezése

Az ügyféloldali figyelés alapértelmezés szerint engedélyezve van az ajánlott ASP.NET Core alkalmazásokhoz, függetlenül attól, hogy a "APPINSIGHTS_JAVASCRIPT_ENABLED" alkalmazásbeállítás jelen van-e.

Ha valamilyen okból le szeretné tiltani az ügyféloldali figyelését:

  • Gépház > Konfiguráció
    • Az Alkalmazásbeállítások alatt hozzon létre egy új alkalmazásbeállítást:

      név: APPINSIGHTS_JAVASCRIPT_ENABLED

      Érték: false

    • Mentse a beállításokat, és indítsa újra az alkalmazást.

Monitorozás automatizálása

Ha engedélyezni szeretné a telemetria gyűjtését az Application Elemzések, csak az Alkalmazásbeállításokat kell beállítania:

Képernyőkép az App Service alkalmazás Gépház alkalmazásbeállításokkal Elemzések képernyőképe.

Alkalmazásbeállítások definíciói

Alkalmazásbeállítás neve Definíció Érték
ApplicationInsightsAgent_EXTENSION_VERSION Fő bővítmény, amely a futásidő monitorozását szabályozza. ~2vagy Windows ~3 Linuxhoz
XDT_MicrosoftApplicationInsights_Mode Alapértelmezett módban csak az alapvető funkciók engedélyezettek az optimális teljesítmény biztosítása érdekében. disabled vagy recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Csak ASP.NET Core alkalmazások esetében. Engedélyezi az Együttműködés (együttműködés) az Application Elemzések SDK-val. Betölti a bővítményt az SDK mellett, és telemetriai adatok küldására használja (letiltja az Application Elemzések SDK-t). 1

App Service alkalmazásbeállítások konfigurálása a Azure Resource Manager

Az alkalmazásbeállítások App Services a sablonokkal kezelhetők és Azure Resource Manager konfigurálhatóak. Ez a módszer használható új virtuális App Service üzembe helyezésekor Azure Resource Manager automatizálással, vagy a meglévő erőforrások beállításainak módosításához.

Az app service-hez az alkalmazásbeállítások JSON-beli alapvető szerkezete az alábbi:

      "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"
          }
        }
      ]

Ez a Azure Resource Manager konfigurált alkalmazásbeállításokkal Application Insights mintasablon hasznos lehet, különösen a 238.sortól kezdődő szakasz.

Ha olyan Azure Resource Manager sablont hoz létre, amely az összes alapértelmezett Application Insights-beállítást konfigurálta, kezdje el a folyamatot úgy, mintha egy új webalkalmazást hoz létre engedélyezett Application Insights beállításokkal.

  1. Hozzon létre egy App Service erőforrást a kívánt webalkalmazás-információkkal. Engedélyezett Application Insights a Figyelés lapon.

  2. Válassza az Áttekintés +létrehozás, majd az alul található Automatizálási sablon letöltése lehetőséget.

    Képernyőkép App Service webalkalmazás létrehozási menüjéről.

    Ez a beállítás létrehozza a Azure Resource Manager sablont, és konfigurálja az összes szükséges beállítást.

    Képernyőkép App Service webalkalmazás-sablonról.

Az alábbi példában cserélje le az összes példányát AppMonitoredSite a webhely nevére:

{
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "properties": {
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        }
                    ]
                },
                "name": "[parameters('name')]",
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "dependsOn": [
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "microsoft.insights/components/AppMonitoredSite"
            ],
            "apiVersion": "2016-03-01",
            "location": "[parameters('location')]"
        },
        {
            "apiVersion": "2016-09-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSizeId": "[parameters('workerSize')]",
                "numberOfWorkers": "1",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2015-05-01",
            "name": "AppMonitoredSite",
            "type": "microsoft.insights/components",
            "location": "West US 2",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate"
            }
        }
    ],
    "parameters": {
        "name": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "hostingEnvironment": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "subscriptionId": {
            "type": "string"
        }
    },
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0"
}

Engedélyezés a PowerShellen keresztül

Az alkalmazás PowerShellen keresztüli monitorozásának engedélyezéséhez csak a mögöttes alkalmazásbeállításokat kell módosítani. Az alábbi példa lehetővé teszi az "AppMonitoredSite" nevű webhely alkalmazásfigyelését az "AppMonitoredRG" erőforráscsoportban, és konfigurálja, hogy az adatokat a rendszer elküldje a "012345678-abcd-ef01-2345-6789abcd" rendszerképkulcsnak.

Megjegyzés

Ez a cikk frissült az Azure Az PowerShell-moduljának használatával. Mostantól az Az PowerShell-modul használatát javasoljuk az Azure-ral folytatott interakciókhoz. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

Figyelési bővítmény/ügynök frissítése – .NET

Frissítés a 2.8.9-es és újabb verziókról

A 2.8.9-es verzióról való frissítés automatikusan, további műveletek nélkül történik. Az új figyelési bitek a háttérben érvénybe lépnek a célalkalmazás-szolgáltatásban, és az alkalmazás újraindításakor a rendszer átveszi őket.

A futtatott bővítmény verziójának ellenőrzéshez tekintse meg a következőt: https://yoursitename.scm.azurewebsites.net/ApplicationInsights .

Képernyőkép az URL-címről a futtatott bővítmény verziójának ellenőrzéséhez.

Frissítés az 1.0.0–2.6.5-ös verzióról

A 2.8.9-es verziótól kezdve a rendszer az előre telepített helybővítményt használja. Ha korábbi verziót használ, kétféleképpen frissíthet:

Ha a frissítés a 2.5.1-esnél korábbi verzióról történik, ellenőrizze, hogy az ApplicationInsigths dll-fájlok el vannak-e távolítva az alkalmazás bin mappájában, tekintse meg a hibaelhárítási lépéseket.

Hibaelhárítás

Az alábbiakban részletes hibaelhárítási útmutatót olvashat az Azure ASP.NET Core-on futó, bővítmény-/ügynökalapú App Services.

  1. Ellenőrizze, ApplicationInsightsAgent_EXTENSION_VERSION hogy az alkalmazásbeállítás "~2" értékre van-e állítva.

  2. Nyissa meg a következő címet: https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    A fenti eredményoldalon látható hivatkozás képernyőképe.

    • Győződjön meg arról, hogy Application Insights Extension Status a Pre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Ha nem fut, kövesse az Application Elemzések monitorozási utasításokat.

    • Győződjön meg arról, hogy az állapotforrás létezik, és így néz ki: Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json

      Ha nincs hasonló érték, az azt jelenti, hogy az alkalmazás jelenleg nem fut vagy nem támogatott. Az alkalmazás futásának biztosításához próbálja meg manuálisan felkeresni az alkalmazás URL-címét/alkalmazásvégpontját, hogy a futtatókörnyezet adatai elérhetővé válnak.

    • Győződjön meg arról, hogy a ha az , adja hozzá a és a et az IKeyExists true false APPINSIGHTS_INSTRUMENTATIONKEY APPLICATIONINSIGHTS_CONNECTION_STRING ikey GUID azonosítóval az alkalmazásbeállításokhoz.

    • Abban az esetben, ha az alkalmazás bármely Application Elemzések-csomagra hivatkozik, például ha korábban már az ASP.NET Core SDK-valpróbálta meg beépítni az alkalmazást, előfordulhat, hogy az App Service-integráció engedélyezése nem lép életbe, és előfordulhat, hogy az adatok nem jelennek meg az Application Elemzések-ban. A probléma megoldásához a portálon kapcsolja be az "Alkalmazás Elemzések SDK-val" bekapcsolását, és elkezdi látni az adatokat az Application Elemzések.

    • Fontos

      Ez a funkció előzetes verzióban érhető el

       Képernyőkép az engedélyezett interop beállításról.

      Az adatok mostantól kód nélküli megközelítéssel lesznek elküldve, még akkor is, ha eredetileg az Application Elemzések SDK-t használták vagy próbáltak használni.

      Fontos

      Ha az alkalmazás az Application Elemzések SDK-val küldött telemetriát, az ilyen telemetria – más szóval az egyéni telemetria – le lesz tiltva, ha van ilyen, például a Track*() metódusok és az egyéni beállítások, például a mintavételezés le lesznek tiltva.

A webalkalmazásokkal üzembe helyezett alapértelmezett webhely nem támogatja az automatikus ügyféloldali figyeléseket

Amikor létrehoz egy webalkalmazást az Azure App Services-ben futó futásidejű alkalmazásokkal, az egyetlen statikus HTML-oldalt helyez üzembe ASP.NET Core kezdő webhelyként. A statikus weblap egy felügyelt ASP.NET is betölt az IIS-be. Ez lehetővé teszi a kód nélküli kiszolgálóoldali figyelés tesztelését, de nem támogatja az automatikus ügyféloldali monitorozást.

Ha kód nélküli kiszolgáló- és ügyféloldali monitorozást szeretne tesztelni az ASP.NET Core-hoz egy Azure App Services-webalkalmazásban, javasoljuk, hogy a hivatalos útmutatók alapján hozzon létre egy ASP.NET Core-webalkalmazást. Ezután használja az aktuális cikkben található utasításokat a monitorozás engedélyezéséhez.

Kapcsolati sztring és eszközkulcs

Kód nélküli figyelés használata esetén csak a kapcsolati sztringre van szükség. Javasoljuk azonban a rendszerelemkulcs beállítását is, hogy a manuális rendszerbeállítás során is megőrizze a visszamenőleges kompatibilitást az SDK régebbi verzióival.

Mi a különbség az Application Elemzések és Azure App Service standard metrikák között?

Az Elemzések telemetriai adatokat gyűjt az alkalmazásnak átkért kérelmekről. Ha a hiba a WebApps/WebServer szolgáltatásban történt, és a kérés nem éri el a felhasználói alkalmazást, akkor az Application Elemzések nem fog telemetriai adatokat gyűjteni róla.

Az Application Elemzések által kiszámított időtartam nem feltétlenül egyezik meg a kiszolgáló válaszidevel, serverresponsetime amelyet a Web Apps. Ennek az az oka Elemzések hogy az Application Elemzések csak azt az időtartamot számolja meg, amikor a kérés ténylegesen eléri a felhasználói alkalmazást. Ha a kérés elakadt/várólistára kerül a WebServerben, a webalkalmazás-metrikák tartalmazzák a várakozási időt, az Application Elemzések metrikákban azonban nem.

A PHP és a WordPress nem támogatott

A PHP- és WordPress-webhelyek nem támogatottak. Jelenleg nincs hivatalosan támogatott SDK/ügynök a számítási feladatok kiszolgálóoldali figyeléséhez. Azonban az ügyféloldali tranzakciók PHP- vagy WordPress-webhelyen való manuális rendszerezése az ügyféloldali JavaScript weboldalakhoz való hozzáadásával a JavaScript SDK-val valósítható meg.

Az alábbi táblázat részletesebb magyarázatot nyújt az értékek jelentésére, azok mögöttes okaira és a javasolt javításokra:

Probléma értéke Magyarázat Javítás
AppAlreadyInstrumented:true Ez az érték azt jelzi, hogy a bővítmény azt észlelte, hogy az SDK bizonyos aspektusa már jelen van az alkalmazásban, és vissza fog menni. Ennek oka lehet a vagy a Microsoft.ApplicationInsights.AspNetCore hivatkozása. Microsoft.ApplicationInsights Távolítsa el a hivatkozásokat. Ezen hivatkozások némelyike alapértelmezés szerint hozzá van adva bizonyos Visual Studio sablonokból, a régebbi Visual Studio pedig hivatkozhatnak a Microsoft.ApplicationInsights fájlra.
AppAlreadyInstrumented:true Ha az alkalmazás a ASP.NET Core 2.1-es vagy 2.2-es verzióját célozza, ez az érték azt jelzi, hogy a bővítmény azt észlelte, hogy az SDK bizonyos aspektusa már jelen van az alkalmazásban, és a rendszer kikapcsol A .NET Core 2.1,2.2-es Microsoft.AspNetCore.App ajánlott inkább metacsomagot használni. Emellett kapcsolja be az "Alkalmazás-Elemzések SDK"-t (lásd a fenti utasításokat).
AppAlreadyInstrumented:true Ezt az értéket az is okozhatja, hogy a Microsoft.ApplicationsInsights dll jelen van az alkalmazás mappájában egy korábbi telepítésből. Az alkalmazás mappájának megtisztításán keresztül győződjön meg arról, hogy a dll-fájlok el vannak távolítva. Ellenőrizze a helyi alkalmazás bin könyvtárát és a wwwroot könyvtárat a App Service. (A App Service-webalkalmazás wwwroot könyvtárának ellenőrzése: Advanced Tools (Kudu) > Debug console > CMD > home\site\wwwroot).
IKeyExists:false Ez az érték azt jelzi, hogy a eszközkulcs nincs jelen az AppSetting (Alkalmazás-beállítás) APPINSIGHTS_INSTRUMENTATIONKEY beállításban. Lehetséges okok: Előfordulhat, hogy az értékek véletlenül el lett távolítva, elfelejtette beállítani az értékeket az Automation-szkriptben stb. Győződjön meg arról, hogy a beállítás jelen van a App Service beállításai között.

Kibocsátási megjegyzések

A legújabb frissítésekért és hibajavításokért tekintse meg a kibocsátási megjegyzéseket.

Következő lépések