Megosztás a következőn keresztül:


Alkalmazásfigyelés engedélyezése a .NET-, Node.js-, Python- és Java-alkalmazásokhoz készült Azure-alkalmazás szolgáltatásban

Az Automatikus beépítés, más néven futtatókörnyezet monitorozása a legegyszerűbb módja annak, hogy az Application Insightst Azure-alkalmazás szolgáltatáshoz anélkül engedélyezze, hogy kódmódosításokat vagy speciális konfigurációkat kellene megadnia. Az adott forgatókönyv alapján értékelje ki, hogy szükség van-e speciálisabb monitorozásra manuális rendszerezéssel.

Feljegyzés

2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.

Az Application Insights engedélyezése

Fontos

Ha az autoinstrumentáció monitorozása és a manuális SDK-alapú rendszerállapot is észlelhető, csak a manuális rendszerállapot-beállítások teljesülnek. Ez az elrendezés megakadályozza a duplikált adatok küldését. További információ: Hibaelhárítás.

Feljegyzés

Autoinstrumentáció az Azure Portalon

  1. Válassza az Application Insights lehetőséget az app service bal oldali navigációs menüjében, majd válassza az Engedélyezés lehetőséget.

     Képernyőkép az Application Insights lapról, amelyen az Engedélyezés lehetőség van kiválasztva.

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

    Feljegyzés

    Amikor új erőforrás létrehozásához az OK gombot választja, a rendszer a figyelési beállítások alkalmazását kéri. A Folytatás lehetőség választásával összekapcsolhatja az új Application Insights-erőforrást az app service-hez. Az app service ezután újraindul.

    Képernyőkép az erőforrás módosítása legördülő listából.

  3. Miután meghatározta a használni kívánt erőforrást, kiválaszthatja, hogy az Application Insights hogyan gyűjtsön adatokat platformonként az alkalmazáshoz. ASP.NET Alapvető gyűjtemény beállításai ajánlottak vagy le vannak tiltva.

     Az alkalmazás szakaszának rendszerezését bemutató képernyőkép.

A monitorozási bővítmény/ügynök manuális frissítése

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

A 2.8.9-es verzióról való frissítés automatikusan történik, további műveletek nélkül. Az új monitorozási biteket a rendszer a háttérben kézbesíti a célalkalmazás-szolgáltatásnak, és az alkalmazás újraindítása után veszi fel őket.

A futó bővítmény melyik verziójának ellenőrzéséhez nyissa meg a következőt https://yoursitename.scm.azurewebsites.net/ApplicationInsights: .

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

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

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

  • Frissítés az Azure Portalon keresztüli engedélyezéssel: Még ha telepítve is van az App Service Application Insights bővítménye, a felhasználói felület csak az Engedélyezés gombot jeleníti meg. A színfalak mögött a régi privát webhelybővítmény el lesz távolítva.

  • Frissítés a PowerShell használatával:

    1. Állítsa be az alkalmazásbeállításokat az előre telepített helybővítmény ApplicationInsightsAgentengedélyezéséhez. További információ: Engedélyezés a PowerShell-lel.
    2. Manuálisan távolítsa el az Application Insights nevű privát webhelybővítményt Azure-alkalmazás Szolgáltatáshoz.

Ha a frissítés a 2.5.1-es verzió előtti verzióról történik, ellenőrizze, hogy a ApplicationInsights DLL-ek törlődnek-e az alkalmazástároló mappájából. További információk: Hibaelhárítás.

A monitorozási bővítmény/ügynök konfigurálása

Jelenleg nem kínálunk lehetőségeket a ASP.NET Core monitorozási bővítményének konfigurálásához.

Ügyféloldali monitorozás engedélyezése

Az ügyféloldali monitorozás alapértelmezés szerint engedélyezve van az ajánlott gyűjteményt tartalmazó ASP.NET Core-alkalmazások esetében, függetlenül attól, hogy az alkalmazásbeállítás APPINSIGHTS_JAVASCRIPT_ENABLED jelen van-e.

Ha le szeretné tiltani az ügyféloldali monitorozást:

  1. Válassza a Beállítások>Konfiguráció lehetőséget.

  2. Az Alkalmazásbeállítások területen hozzon létre egy új alkalmazásbeállítást az alábbi információkkal:

    • Név: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Érték: false
  3. Mentse a beállításokat. Indítsa újra az alkalmazást.

Monitorozás automatizálása

Ahhoz, hogy a telemetriai gyűjteményt engedélyezhesse az Application Insights szolgáltatással, csak a következő alkalmazásbeállításokat kell beállítani:

Képernyőkép az App Service alkalmazásbeállításairól az Application Insights beállításaival.

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 vezérli a futtatókörnyezet monitorozását. ~2 Windowshoz vagy ~3 Linuxhoz
XDT_MicrosoftApplicationInsights_Mode Alapértelmezett módban csak az alapvető funkciók vannak engedélyezve az optimális teljesítmény biztosítása érdekében. disabled vagy recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Csak ASP.NET Core-alkalmazásokhoz. Engedélyezi az Interop (interoperation) lehetőséget az Application Insights SDK-val. A bővítményt egymás mellett tölti be az SDK-val, és telemetria küldéséhez használja. (Letiltja az Application Insights SDK-t.) 1

App Service-alkalmazásbeállítások az Azure Resource Managerrel

A Azure-alkalmazás szolgáltatás alkalmazásbeállításai azure Resource Manager-sablonokkal kezelhetők és konfigurálhatók. Ezt a módszert akkor használhatja, ha új App Service-erőforrásokat helyez üzembe a Resource Manager automatizálásával, vagy módosítja a meglévő erőforrások beállításait.

Az App Service-erőforrás JSON-alkalmazásbeállításainak alapstruktúrája:

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

Ha Resource Manager-sablont szeretne létrehozni az alapértelmezett Application Insights-beállításokkal, kezdje el a folyamatot úgy, mintha egy új webalkalmazást hoz létre, amelyen engedélyezve van az Application Insights.

  1. Hozzon létre egy új App Service-erőforrást a kívánt webalkalmazás-adatokkal. Engedélyezze az Application Insightst a Figyelés lapon.

  2. Válassza az Áttekintés + létrehozás lehetőséget. Ezután válassza a Sablon letöltése automatizáláshoz lehetőséget.

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

    Ez a beállítás létrehozza a legújabb Resource Manager-sablont az összes szükséges beállítás konfigurálva.

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

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

Feljegyzés

Ha Windowst használ, állítsa a következőre ApplicationInsightsAgent_EXTENSION_VERSION ~2: . Linux használata esetén állítsa a következőre ApplicationInsightsAgent_EXTENSION_VERSION ~3: .

{
    "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 PowerShell-lel

Az alkalmazásfigyelés PowerShellen keresztüli engedélyezéséhez csak a mögöttes alkalmazásbeállításokat kell módosítani. Az alábbi minta lehetővé teszi az alkalmazásfigyelést az erőforráscsoportban AppMonitoredRGhívott AppMonitoredSite webhelyeken. Úgy konfigurálja az adatokat, hogy azokat a 012345678-abcd-ef01-2345-6789abcd rendszerállapot-kulcsra küldhesse.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg Az Azure PowerShell telepítése témakört. 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.

Feljegyzés

Windows használata esetén állítsa a ApplicationInsightsAgent_EXTENSION_VERSION értékre ~2. Linux használata esetén állítsa a ApplicationInsightsAgent_EXTENSION_VERSION értékre ~3.

$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

Gyakori kérdések

Ez a szakasz választ ad a gyakori kérdésekre.

Mit módosít az Application Insights a projektemben?

A részletek a projekt típusától függenek. Az alábbi lista egy webalkalmazás példája.

  • Fájlokat ad hozzá a projekthez:

    • ApplicationInsights.config
    • ai.js
  • Telepíti a NuGet-csomagokat:

    • Application Insights API: Az alapvető API
    • Application Insights API webalkalmazásokhoz: Telemetriát küld a kiszolgálóról
    • Application Insights API JavaScript-alkalmazásokhoz: Telemetriai adatok küldésére szolgál az ügyféltől
  • Csomagokban lévő szerelvényeket tartalmaz:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Elemek beszúrása a következőbe:

    • Web.config
    • packages.config
  • Kódrészleteket szúr be az ügyfél- és kiszolgálókódba, hogy inicializálja őket az Application Insights erőforrás-azonosítójával. Egy MVC-alkalmazásban például a rendszer kódot szúr be a Nézetek/Megosztott/_Layout.cshtml főlapra. Csak új projektek esetén manuálisan kell hozzáadnia az Application Insightst egy meglévő projekthez.

Mi a különbség az Application Insights standard metrikái és Azure-alkalmazás szolgáltatásmetrikái között?

Az Application Insights telemetriai adatokat gyűjt az alkalmazásnak küldött kérelmekről. Ha a hiba a WebApps/WebServer szolgáltatásban jelentkezik, és a kérés nem érte el a felhasználói alkalmazást, az Application Insights nem rendelkezik telemetriai adatokkal.

Az Application Insights által kiszámított időtartam serverresponsetime nem feltétlenül egyezik meg a Web Apps által megfigyelt kiszolgálói válaszidővel. Ennek a viselkedésnek az az oka, hogy az Application Insights 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 vagy várólistára került a WebServerben, a várakozási idő a Web Apps-metrikákban szerepel, az Application Insights-metrikákban azonban nem.

Hibaelhárítás

Az alkalmazásgazda és a betöltési szolgáltatás közötti kapcsolat tesztelése

Az Application Insights SDK-k és -ügynökök telemetriát küldenek, hogy REST-hívásként betöltse a betöltési végpontokat. A webkiszolgálóról vagy az alkalmazásgazdagépről a betöltési szolgáltatás végpontjaihoz való kapcsolódást a PowerShellből vagy curl parancsokból származó nyers REST-ügyfelek használatával tesztelheti. Tekintse meg a hiányzó alkalmazástelemetria hibaelhárítását az Azure Monitor Application Insightsban.

Feljegyzés

Amikor webalkalmazást hoz létre az ASP.NET Core App Service futtatókörnyezeteivel, a rendszer egyetlen statikus HTML-lapot helyez üzembe kezdőweboldalként. Nem javasoljuk, hogy az alapértelmezett sablonnal kapcsolatos problémákat elhárítsa. A probléma elhárítása előtt helyezzen üzembe egy alkalmazást.

Hiányzó telemetria

Windows

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

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

    Képernyőkép az eredményoldal fölötti hivatkozásról.

    • Győződjön meg arról, hogy az Application Insights bővítmény állapotaPre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Ha nem fut, kövesse az Application Insights monitorozásának engedélyezése című szakasz utasításait.

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

      Ha nem található 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égpontjait, így a futtatókörnyezet adatai elérhetővé válnak.

    • Győződjön meg arról, hogy az IKeyExists az True. Ha igen False, adja hozzá APPINSIGHTS_INSTRUMENTATIONKEY az APPLICATIONINSIGHTS_CONNECTION_STRING ikey GUID azonosítót az alkalmazásbeállításokhoz.

    • Ha az alkalmazás bármely Application Insights-csomagra hivatkozik, előfordulhat, hogy az App Service-integráció engedélyezése nem lép érvénybe, és előfordulhat, hogy az adatok nem jelennek meg az Application Insightsban. Ilyen lehet például, ha korábban az alkalmazást a ASP.NET Core SDK-val hangszerelte vagy kísérelte meg hangszerelni. A probléma megoldásához az Azure Portalon kapcsolja be az Interop és az Application Insights SDK szolgáltatást.

      Fontos

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

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

      A rendszer kód nélküli módszerrel küldi el az adatokat, még akkor is, ha eredetileg az Application Insights SDK-t használták vagy próbálták meg használni.

      Fontos

      Ha az alkalmazás az Application Insights SDK-val küldött telemetriát, a telemetria le lesz tiltva. Más szóval az egyéni telemetriai adatok (például bármely Track*() metódus) és az egyéni beállítások (például mintavételezés) le lesznek tiltva.

Linux

  1. Ellenőrizze, hogy az ApplicationInsightsAgent_EXTENSION_VERSION alkalmazás beállítása értékre ~3van-e állítva.

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

  3. Ezen a webhelyen erősítse meg a következőt:

    • Az állapotforrás létezik, és így Status source /var/log/applicationinsights/status_abcde1234567_89_0.jsonnéz ki.
    • Ekkor megjelenik az érték Auto-Instrumentation enabled successfully . Ha nem található hasonló érték, az azt jelenti, hogy az alkalmazás 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égpontjait, így a futtatókörnyezet adatai elérhetővé válnak.
    • IKeyExists is True. Ha igen False, adja hozzá APPINSIGHTS_INSTRUMENTATIONKEY az APPLICATIONINSIGHTS_CONNECTION_STRING ikey GUID azonosítót az alkalmazásbeállításokhoz.

    Képernyőkép az autoinstrumentáció állapotának weblapjáról.

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

Amikor az App Service ASP.NET Core-futtatókörnyezeteivel hoz létre webalkalmazást, az egyetlen statikus HTML-lapot helyez üzembe kezdőweboldalként. A statikus weblap egy ASP-t is betölt. NET által felügyelt kijelző az IIS-ben. Ez a viselkedés lehetővé teszi a kód nélküli kiszolgálóoldali monitorozás tesztelését, de nem támogatja az automatikus ügyféloldali monitorozást.

Ha ASP.NET Core kód nélküli kiszolgáló- és ügyféloldali monitorozását szeretné tesztelni egy App Service-webalkalmazásban, javasoljuk, hogy kövesse az ASP.NET Core-webalkalmazások létrehozásához szükséges hivatalos útmutatókat. Ezt követően az aktuális cikkben található utasításokat követve engedélyezheti a monitorozást.

A PHP és a WordPress nem támogatott

A PHP- és WordPress-webhelyek nem támogatottak. Ezen számítási feladatok kiszolgálóoldali monitorozásához jelenleg nincs hivatalosan támogatott SDK/ügynök. Ha egy PHP- vagy WordPress-webhelyen szeretné nyomon követni az ügyféloldali tranzakciókat, adja hozzá az ügyféloldali JavaScriptet a weblapokhoz a JavaScript SDK használatával.

Az alábbi táblázat bemutatja, hogy ezek az értékek mit jelentenek, azok kiváltó okait és a javasolt javításokat.

Probléma értéke Magyarázat Javítás
AppAlreadyInstrumented:true Ez az érték azt jelzi, hogy a bővítmény észlelte az SDK bizonyos aspektusát, amely már megtalálható az alkalmazásban, és kikapcsol. Hivatkozás erre az értékre Microsoft.ApplicationInsights.AspNetCore , vagy Microsoft.ApplicationInsights okozhatja azt. Távolítsa el a hivatkozásokat. Ezen hivatkozások némelyike alapértelmezés szerint hozzáadódik bizonyos Visual Studio-sablonokhoz. A Visual Studio-referencia Microsoft.ApplicationInsightsrégebbi verziói .
AppAlreadyInstrumented:true A DLL jelenléte Microsoft.ApplicationsInsights az alkalmazásmappában egy korábbi üzembe helyezésből is okozhatja ezt az értéket. Törölje az alkalmazásmappát, és győződjön meg arról, hogy ezek a DLL-ek el lettek távolítva. Ellenőrizze a helyi alkalmazás bin könyvtárát és a wwwroot könyvtárat az App Service-ben. (Az App Service-webalkalmazás wwwroot könyvtárának ellenőrzéséhez válassza a Advanced Tools (Kudu) >Debug console>CMD>home\site\wwwroot).
IKeyExists:false Ez az érték azt jelzi, hogy az eszközkulcs nem szerepel az alkalmazásbeállításban APPINSIGHTS_INSTRUMENTATIONKEY. A lehetséges okok közé tartozik az értékek véletlen eltávolítása vagy az értékek automatizálási szkriptben való beállításának elfelejtése. Győződjön meg arról, hogy a beállítás megtalálható az App Service-alkalmazás beállításai között.