Alkalmazásfigyelés Azure-alkalmazás szolgáltatáshoz és Java-hoz

A Azure-alkalmazás-szolgáltatásokon futó Java-webalkalmazások monitorozásához nincs szükség a kód módosítására. Ez a cikk végigvezeti az Azure Monitor-alkalmazás Elemzések monitorozásának engedélyezésén, és előzetes útmutatást nyújt a nagy léptékű üzemelő példányok folyamatának automatizálásához.

Feljegyzés

Spring Boot natív rendszerkép-alkalmazásokkal az Azure Monitor OpenTelemetry Distro/Application Elemzések használata a Spring Boot natív rendszerkép Java-alkalmazásprojektjében az alábbiakban ismertetett Alkalmazás Elemzések Java-ügynökmegoldás helyett.

Az Application Insights engedélyezése

Az Azure-alkalmazás-szolgáltatásokon futó Java-alkalmazások alkalmazásfigyelésének ajánlott módja az Azure Portalon keresztül történik. Ha bekapcsolja az alkalmazásfigyelést az Azure Portalon, automatikusan rendszerezi az alkalmazást az Alkalmazás Elemzések, és nem igényel kódmódosítást. További konfigurációkat alkalmazhat, majd az adott forgatókönyv alapján szükség esetén hozzáadhatja saját egyéni telemetriáját .

Autoinstrumentáció az Azure Portalon

A Azure-alkalmazás Szolgáltatásban futó Java-alkalmazások monitorozását csak egyetlen kijelöléssel kapcsolhatja be, és nincs szükség kódmódosításra. Az integráció hozzáadja az alkalmazás Elemzések Java 3.x-et, és automatikusan összegyűjti a telemetriát.

A támogatott autoinstrumentációs forgatókönyvek teljes listájáért tekintse meg a támogatott környezeteket, nyelveket és erőforrás-szolgáltatókat.

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

    Képernyőkép az Alkalmazás Elemzések lapról, amelyen az engedélyezés van kiválasztva.

  2. Válasszon új erőforrást, vagy válasszon egy meglévő alkalmazás-Elemzések erőforrást ehhez az alkalmazáshoz.

    Feljegyzés

    Amikor az OK gombot választja az új erőforrás létrehozásához, a rendszer kérni fogja a figyelési beállítások alkalmazását. A Folytatás lehetőség választásával összekapcsolhatja az új alkalmazás-Elemzések erőforrást az app service-hez, és ezzel elindítja az app service újraindítását is.

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

  3. Ez az utolsó lépés nem kötelező. A használni kívánt erőforrás megadása után konfigurálhatja a Java-ügynököt. Ha nem konfigurálja a Java-ügynököt, az alapértelmezett konfigurációk érvényesek.

    A konfigurációk teljes készlete elérhető, csak be kell illesztenie egy érvényes json-fájlt. Zárja ki a kapcsolati sztring és az előzetes verzióban lévő konfigurációkat – a jelenleg előzetes verzióban lévő elemeket általánosan elérhetővé válik.

    Miután módosította a konfigurációkat az Azure Portalon, APPLICATIONINSIGHTS_CONFIGURATION_FILE környezeti változó automatikusan fel lesz töltve, és megjelenik az App Service beállítások paneljén. Ez a változó tartalmazza a Java-alkalmazás Azure Portal konfigurációs szövegmezőjében beillesztett teljes json-tartalmat.

    Képernyőkép az alkalmazás eszközéről.

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

A Java-alkalmazás ügyféloldali figyelésének engedélyezéséhez manuálisan kell hozzáadnia az ügyféloldali JavaScript SDK-t az alkalmazáshoz.

Monitorozás automatizálása

Ahhoz, hogy az Alkalmazás Elemzések telemetriagyűjtést engedélyezhessen, csak a következő alkalmazásbeállításokat kell megadni:

Képernyőkép az App Service-alkalmazás Gépház az elérhető alkalmazás Elemzések 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 Windows vagy ~3 Linux rendszeren.
XDT_MicrosoftApplication Elemzések_Java Jelző, amely azt szabályozza, hogy a Java-ügynök szerepel-e a jelölőben. 0 vagy 1 (csak Windows rendszeren alkalmazható).

Feljegyzés

A Profiler és a pillanatkép-hibakereső nem érhető el Java-alkalmazásokhoz

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

Az Alkalmazás Elemzések konfigurált alkalmazásbeállításokat tartalmazó Resource Manager-sablon esetében ez a sablon hasznos lehet. Pontosabban lásd a 238- as sorban kezdődő szakaszt.

Ha egy Resource Manager-sablont szeretne létrehozni az alapértelmezett alkalmazás Elemzések beállításokkal, kezdje el úgy a folyamatot, mintha egy új webalkalmazást szeretne létrehozni, amelyen engedélyezve van az Alkalmazás Elemzések.

  1. Hozzon létre egy új App Service-erőforrást a kívánt webalkalmazás-adatokkal. Az Alkalmazás Elemzések engedélyezése 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é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.

Feljegyzés

Windows használata esetén állítsa az Application Elemzések Agent_EXTENSION_VERSION értéket a következőre~2: . Linux használata esetén állítsa az Application Elemzések Agent_EXTENSION_VERSION értéket a következőre~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

Hibaelhárítás

A Azure-alkalmazás Servicesen futó Java-alapú alkalmazások hibaelhárításához használja a részletes útmutatót.

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

  2. Vizsgálja meg a naplófájlt, és ellenőrizze, hogy az ügynök sikeresen elindult-e: tallózással keresse meg a következőt: "https://yoursitename.scm.azurewebsites.net/A gyökérkönyvtár SSH-módosítása alatt a naplófájl a LogFiles/Application Elemzések alatt található.

    Képernyőkép a fenti találati oldalról.

  3. Miután engedélyezte az alkalmazásfigyelést a Java-alkalmazáshoz, ellenőrizheti, hogy az ügynök működik-e az élő metrikák megtekintésével – még az App Service-ben való üzembe helyezés és alkalmazás előtt látni fog néhány kérést a környezetből. Ne feledje, hogy a telemetriai adatok teljes készlete csak akkor érhető el, ha telepítette és futtatta az alkalmazást.

  4. Állítsa APPLICATIONINSIGHTS_Standard kiadás LF_DIAGNOSTICS_LEVEL környezeti változót hibakeresésre, ha nem lát hibákat, és nincs telemetria

Mi a különbség az alkalmazás Elemzések és Azure-alkalmazás szolgáltatásmetrikái között?

Az alkalmazás Elemzések telemetriát gyűjt az alkalmazásnak küldött kérésekhez. 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 alkalmazás Elemzések nem rendelkezik telemetriai adatokkal.

Az alkalmazás Elemzések á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 alkalmazás 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 vagy várólistára került a WebServerben, a várakozási idő a Web Apps-metrikák részét képezi, az Alkalmazás Elemzések metrikákban azonban nem.

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

Az alkalmazás Elemzések 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 az Azure Monitor-alkalmazás Elemzések hiányzó alkalmazástelemetria hibaelhárítását.

Az alkalmazás legújabb Elemzések Java-verziójának manuális üzembe helyezése

Az alkalmazás Elemzések Java-verzió automatikusan frissül az App Services-frissítések részeként.

Ha olyan hibát tapasztal, amely az Alkalmazás legújabb verziójában Elemzések Java-ban van kijavítva, manuálisan frissítheti.

A manuális frissítéshez kövesse az alábbi lépéseket:

  1. A Java-ügynök jar-fájljának feltöltése az App Service-be

    a. Először szerezze be az Azure CLI legújabb verzióját az itt található utasítások követésével.

    b. A következő lépésben szerezze be az Alkalmazás Elemzések Java-ügynök legújabb verzióját az itt található utasítások követésével.

    c. Ezután telepítse a Java-ügynök jar-fájlját az App Service-ben a következő paranccsal: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. Ezt az útmutatót a Maven beépülő modulon keresztül is üzembe helyezheti.

  2. Tiltsa le az Alkalmazás Elemzések az Azure Portal Alkalmazás Elemzések lapján.

  3. Az ügynök jar-fájl feltöltése után lépjen az App Service konfigurációihoz. Ha linuxos indítási parancsot kell használnia, adjon meg jvm-argumentumokat:

    Képernyőkép az indítási parancsról.

    Az indítási parancs a Java Standard kiadás és CATALINA_OPTS a Tomcat számára nem számítJAVA_OPTS.

    Ha nem használja az Indítási parancsot, hozzon létre egy új környezeti változót Java JAVA_OPTS Standard kiadás vagy CATALINA_OPTS Tomcat esetén az értékkel-javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.

  4. Indítsa újra az alkalmazást a módosítások alkalmazásához.

Feljegyzés

Ha a JAVA_OPTS Java Standard kiadás vagy CATALINA_OPTS a Tomcat környezeti változó értékét állítja be, le kell tiltania az alkalmazás Elemzések a portálon. Ha a portálról szeretné engedélyezni az alkalmazás Elemzések, győződjön meg arról, hogy nem állítja be a Java Standard kiadás vagy CATALINA_OPTS a Tomcat változó értékét az JAVA_OPTS App Service konfigurációs beállításai között.

Kibocsátási megjegyzések

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

Következő lépések