Auf Englisch lesen

Teilen über


Aktivieren der Anwendungsüberwachung in Azure App Service für .NET-, Node.js-, Python- und Java-Anwendungen

Die Autoinstrumentierung, auch als Runtime-Überwachung bezeichnet, ist die einfachste Möglichkeit, Application Insights für Azure App Service zu aktivieren, ohne dass Codeänderungen oder erweiterte Konfigurationen erforderlich sind. Bewerten Sie dann auf der Grundlage Ihres spezifischen Szenarios, ob Sie eine erweiterte Überwachung durch manuelle Instrumentierung erfordern.

Hinweis

Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

Aktivieren von Application Insights

Hinweis

Verwenden Sie mit Spring Boot Native Image-Anwendungen die Azure Monitor OpenTelemetry Distro / Application Insights im systemeigenen Spring Boot Image Java-Anwendung-Projekt anstelle der hier beschriebenen Application Insights Java-Agent-Lösung.

Die Integration fügt Application Insights Java 3.x hinzu und sammelt automatisch Telemetriedaten. Sie können weitere zusätzliche Konfigurationen anwenden und Ihre eigene benutzerdefinierte Telemetrie hinzufügen.

Automatische Instrumentierung im Azure-Portal

  1. Wählen Sie Application Insights im linken Navigationsmenü Ihres App Service und dann Aktivierenaus.

    Screenshot der Registerkarte „Application Insights“ mit ausgewählter Option „Aktivieren“

  2. Erstellen Sie eine neue Ressource, oder wählen Sie eine vorhandene Application Insights-Ressource für diese Anwendung aus.

    Hinweis

    Wenn Sie OK auswählen, um die neue Ressource zu erstellen, werden Sie aufgefordert, die Überwachungseinstellungen anzuwenden. Wenn Sie Weiter auswählen, wird Ihre neue Application Insights-Ressource mit Ihrer App Service-Instanz verknüpft. Ihre App Service-Instanz wird dann neu gestartet.

    Screenshot der Dropdownliste „Ressource ändern“

Manuelles Upgrade der Überwachungserweiterung/ des Agenten

Die Java-Version von Application Insights wird automatisch im Rahmen von App Service-Updates aktualisiert. Wenn ein Problem auftritt, das in der neuesten Version des Application Insights Java-Agenten behoben wurde, können Sie sie manuell aktualisieren.

  1. Laden Sie die Java-Agent-Jar-Datei in App Service hoch.

    a. Rufen Sie zunächst die neueste Version der Azure CLI ab, indem Sie diese Anweisungen befolgen.

    b. Rufen Sie als Nächstes die neueste Version des Application Insights Java-Agents ab, indem Sie diese Anweisungen befolgen.

    c. Stellen Sie dann die JAR-Datei des Java-Agents mithilfe des folgenden Befehls in App Service bereit: 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}. Alternativ können Sie diesen Leitfaden verwenden, um den Agent über das Maven-Plug-In bereitzustellen.

  2. Deaktivieren Sie Application Insights über die Registerkarte „Application Insights“ im Azure-Portal.

  3. Navigieren Sie nach dem Hochladen der Agent-JAR-Datei zu den App Service-Konfigurationen. Wenn Sie den Startbefehl für Linux verwenden müssen, nehmen Sie die JVM-Argumente auf:

    Screenshot: Startbefehl

    Der Startbefehl berücksichtigt weder JAVA_OPTS für JavaSE noch CATALINA_OPTS für Tomcat.

    Wenn Sie den Startbefehl nicht verwenden, erstellen Sie eine neue Umgebungsvariable JAVA_OPTS für JavaSE und CATALINA_OPTS für Tomcat mit dem Wert -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.

  4. Um die Änderungen zu übernehmen, starten Sie die App neu.

Hinweis

Wenn Sie die Umgebungsvariable JAVA_OPTS für JavaSE oder CATALINA_OPTS für Tomcat setzen, müssen Sie Application Insights im Azure-Portal deaktivieren. Wenn Sie es andererseits vorziehen, Application Insights über das Azure-Portal zu aktivieren, stellen Sie sicher, dass Sie die Variable JAVA_OPTS für JavaSE oder CATALINA_OPTS für Tomcat in den Konfigurationseinstellungen des App Service nicht setzen.

Konfigurieren der Überwachungserweiterung/ des Agenten

Nachdem Sie angegeben haben, welche Ressource verwendet werden soll, können Sie den Java-Agent konfigurieren. Wenn Sie den Java-Agent nicht konfigurieren, gelten die Standardkonfigurationen.

Der vollständige Satz Konfigurationen steht zur Verfügung. Sie müssen lediglich eine gültige JSON-Datei einfügen. Schließen Sie die Verbindungszeichenfolge und alle Konfigurationen aus, die sich in der Vorschau befinden – Sie können die Elemente hinzufügen, die sich derzeit in der Vorschau befinden, sobald sie allgemein verfügbar werden.

Nachdem Sie die Konfigurationen über das Azure-Portal geändert haben, wird die Umgebungsvariable APPLICATIONINSIGHTS_CONFIGURATION_FILE automatisch aufgefüllt und im App Service-Einstellungsbereich angezeigt. Diese Variable enthält den vollständigen JSON-Inhalt, den Sie im Azure-Portal in das Konfigurationstextfeld für Ihre Java-App eingefügt haben.

Screenshot von dem Instrument ihrer Anwendung.

Aktivieren der clientseitigen Überwachung

Um die clientseitige Überwachung zu ermöglichen, kann der Java-Agent das Browser SDK-Ladeprogramm (Vorschau) in die HTML-Seiten Ihrer Anwendung einfügen, einschließlich der Konfiguration der entsprechenden Verbindungszeichenfolge.

Weitere Informationen finden Sie unter Konfigurationsoptionen: Azure Monitor Application Insights für Java.

Automatisieren der Überwachung

Um die Sammlung von Telemetriedaten mit Application Insights zu aktivieren, müssen nur die folgenden Anwendungseinstellungen festgelegt werden:

Screenshot: Anwendungseinstellungen des App Service mit den verfügbaren Einstellungen für Application Insights

Definitionen von Anwendungseinstellungen

Name der App-Einstellung Definition Wert
ApplicationInsightsAgent_EXTENSION_VERSION Die Haupterweiterung, die die Laufzeitüberwachung steuert. ~2 unter Windows oder ~3 unter Linux
XDT_MicrosoftApplicationlnsights_Java Flag zum Steuern, ob der Java-Agent eingeschlossen ist. 0 oder 1 (nur unter Windows anwendbar).

Hinweis

Der Momentaufnahmedebugger ist für Java-Anwendungen nicht verfügbar.

App Service-Anwendungseinstellungen mit Azure Resource Manager

Sie können die Azure App Service-Anwendungseinstellungen mit Azure Resource Manager-Vorlagen verwalten und konfigurieren. Sie können diese Methode wählen, wenn Sie neue App Service-Ressourcen mit Resource Manager-Automatisierung bereitstellen oder die Einstellungen vorhandener Ressourcen ändern.

Die grundlegende Struktur der JSON-Anwendungseinstellungen für eine App Service-Ressource sieht folgendermaßen aus:

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

Um eine Resource Manager-Vorlage mit den Standardeinstellungen für Application Insights zu erstellen, beginnen Sie den Prozess so, als ob Sie eine neue Web-App mit aktivierten Application Insights erstellen würden.

  1. Erstellen Sie eine neue App Service-Ressource mit den gewünschten Web-App-Informationen. Aktivieren Sie Application Insights auf der Registerkarte Überwachung.

  2. Klicken Sie auf Überprüfen + erstellen. Wählen Sie dann Vorlage für Automatisierung herunterladen aus.

    Screenshot des Menüs zum Erstellen von App Service-Web-Apps

    Mit dieser Option wird die aktuellste Resource Manager-Vorlage mit allen erforderlichen Einstellungen generiert.

    Screenshot einer App Service-Web-App-Vorlage

Ersetzen Sie im folgenden Beispiel alle Instanzen von AppMonitoredSite durch Ihren Websitenamen:

Hinweis

Wenn Sie Windows verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~2 fest. Wenn Sie Linux verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~3 fest.

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

Aktivieren über PowerShell

Zum Aktivieren der Anwendungsüberwachung über PowerShell müssen nur die zugrunde liegenden Anwendungseinstellungen geändert werden. Das folgende Beispiel ermöglicht die Anwendungsüberwachung für eine Website namens AppMonitoredSite in der Ressourcengruppe AppMonitoredRG. Damit werden die Daten konfiguriert, die an den Instrumentierungsschlüssel 012345678-abcd-ef01-2345-6789abcd gesendet werden sollen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Hinweis

Wenn Sie Windows verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~2 fest. Wenn Sie Linux verwenden, legen Sie ApplicationInsightsAgent_EXTENSION_VERSION auf ~3 fest.

$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

Häufig gestellte Fragen

Dieser Abschnitt enthält Antworten auf häufig gestellte Fragen.

Welche Änderungen nimmt Application Insights in meinem Projekt vor?

Die Details hängen von der Art des Projekts ab. Die folgende Liste ist ein Beispiel für eine Webanwendung.

  • Fügt Ihrem Projekt Dateien hinzu:

    • ApplicationInsights.config
    • ai.js
  • Installiert NuGet-Pakete:

    • Application Insights-API: Die Kern-API
    • Application Insights-API für Webanwendungen: Zum Senden von Telemetriedaten vom Server
    • Application Insights-API für JavaScript-Anwendungen: Zum Senden von Telemetriedaten vom Client
  • Fügt Assemblys in Pakete ein:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Fügt Elemente ein in:

    • Web.config
    • packages.config
  • Fügen Sie Codeausschnitte in den Client- und Servercode ein, um diese mit der Application Insights-Ressourcen-ID zu initialisieren. Beispielsweise wird in einer MVC-App Code auf der Hauptseite Views/Shared/Layout.cshtml eingefügt. Bei neuen Projekten fügen Sie Application Insights einem vorhandenen Projekt manuell hinzu.

Was ist der Unterschied zwischen Standardmetriken von Application Insights und Azure App Service-Metriken?

Application Insights sammelt Telemetriedaten für die Anforderungen, die bis zur Anwendung gelangt sind. Wenn der Fehler in WebApps/WebServer auftritt und die Anforderung die Benutzeranwendung nicht erreicht hat, hat Application Insights keine Telemetriedaten dazu.

Die von Application Insights berechnete Dauer für serverresponsetime stimmt nicht unbedingt mit der von Web-Apps beobachteten Serverantwortzeit überein. Dies liegt daran, dass Application Insights nur die Dauer zählt, bis die Anforderung tatsächlich die Benutzeranwendung erreicht. Wenn die Anforderung in WebServer hängen bleibt oder in die Warteschlange gestellt wird, ist diese Wartezeit in den Web-App-Metriken enthalten, in den Application Insights-Metriken jedoch nicht.

Problembehandlung

Testen der Konnektivität zwischen Ihrem Anwendungshost und dem Erfassungsdienst

Application Insights SDKs und -Agents senden Telemetriedaten, die als REST-Aufrufe unserer Erfassungsendpunkte erfasst werden sollen. Sie können die Konnektivität Ihres Webservers oder Anwendungshostcomputers mit den Endpunkten des Erfassungsdiensts testen, indem Sie unformatierte REST-Clients über PowerShell- oder cURL-Befehle verwenden. Weitere Informationen finden Sie unter Problembehandlung bei fehlender Anwendungstelemetrie in Azure Monitor Application Insights.

Fehlende Telemetrie

  1. Überprüfen Sie, ob die App-Einstellung ApplicationInsightsAgent_EXTENSION_VERSION auf einen Wert von ~2 unter Windows und ~3 unter Linux eingestellt ist

  2. Überprüfen Sie die Protokolldatei, um zu sehen, ob der Agent erfolgreich gestartet wurde: Wechseln Sie zu ' https://yoursitename.scm.azurewebsites.net/ unter SSH in das Stammverzeichnis, die Protokolldatei befindet sich unter LogFiles/Applicationlnsights.

    Screenshot von dem Link über der Ergebnisseite.

  3. Nachdem Sie die Anwendungsüberwachung für Ihre Java-Anwendung aktiviert haben, können Sie überprüfen, ob der Agent funktioniert, indem Sie sich die Livemetriken ansehen. Noch bevor Sie die Anwendung in App Service bereitstellen, werden einige Anforderungen aus der Umgebung angezeigt. Denken Sie daran, dass die vollständigen Telemetriedaten nur dann zur Verfügung stehen, wenn Sie Ihre Anwendung bereitgestellt haben und diese ausgeführt wird.

  4. Legen Sie die Umgebungsvariable APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL auf debug fest, wenn keine Fehler angezeigt werden und keine Telemetrie vorhanden ist.