Alkalmazásfigyelés Azure App Service és Node.js

Az Azure Node.js futó, App Services webalkalmazások monitorozásának engedélyezése mostantól minden másnál egyszerűbb. 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 részletesen be Azure Monitor alkalmazások Elemzések monitorozását, valamint előzetes útmutatást nyújt a nagy léptékű üzembe helyezés folyamatának automatizálásához.

Megjegyzés

Ha a rendszer ügynökalapú monitorozást és manuális SDK-alapú rendszerműveleteket is észlel, csak a manuális rendszer-beállítási beállításokat fogja a rendszer. Ez megakadályozza a duplikált adatok elküldét. További információért tekintse meg az alábbi hibaelhárítási szakaszt.

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

A kód módosítása Node.js nélkül, csupán néhány egyszerű lépéssel figyelheti a Azure App Service alkalmazásban futó alkalmazásokat. A Node.js application insights integrálva van a App Service on Linux - kódalapú és egyéni tárolókba, valamint App Service Windows alkalmazásokhoz készült Windows integrálva. Az integráció nyilvános előzetes verzióban érhető el. Az integráció hozzáadja Node.js SDK-t, amely ga.

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

    Képernyőkép az Alkalmazás Elemzések az engedélyezés beállítással.

  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 választásával az új Application Elemzések erőforrást az App Service-hez csatolja, ezzel egyben 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. Miután meghatározta, hogy melyik erőforrást használja, készen áll a használatra.

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

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

Ha engedélyezni szeretné az ügyféloldali monitorozást a Node.js-alkalmazáshoz, manuálisan kell hozzáadnia az ügyféloldali JavaScript SDK-t az alkalmazáshoz.

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 elérhető Application Elemzések beállításokkal.

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

Alkalmazásbeállítás neve Definíció Érték
ApplicationInsightsAgent_EXTENSION_VERSION A futásidejű monitorozást vezérlő fő bővítmény. ~2a Windows ~3 linuxos környezetben
XDT_MicrosoftApplicationInsights_NodeJS A Agent node.js jelző. 0 vagy 1 csak a Windows.

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

Hibaelhárítás

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

  1. Ellenőrizze, ApplicationInsightsAgent_EXTENSION_VERSION hogy az alkalmazásbeállítás értéke "~2".

  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.

    • Nyissa meg a D:\local\Temp\status.json fájlt, és nyissa meg a status.json fájlt.

    Győződjön meg SDKPresent arról, hogy a false (hamis) érték true (igaz) értékre van állítva, és AgentInitializedSuccessfully hogy érvényes IKey iKey legyen.

    Az alábbiakban egy példa látható a JSON-fájlra:

        "AppType":"node.js",
    
        "MachineName":"c89d3a6d0357",
    
        "PID":"47",
    
        "AgentInitializedSuccessfully":true,
    
        "SDKPresent":false,
    
        "IKey":"00000000-0000-0000-0000-000000000000",
    
        "SdkVersion":"1.8.10"
    
    

    Ha az igaz, az 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 SDKPresent menni.

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.

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