Freigeben über


Analysieren von Protokollen und Metriken mit Diagnoseeinstellungen

Hinweis

Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.

Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.

Dieser Artikel gilt für:✅️ Java ✅ C#

Dieser Artikel gilt für:✅ Basic/Standard ✅ Enterprise

In diesem Artikel wird beschrieben, wie Sie Diagnosedaten in Azure Spring Apps analysieren.

Mithilfe der Diagnosefunktionen von Azure Spring Apps können Sie Protokolle und Metriken mit jedem der folgenden Dienste analysieren:

  • Verwenden Sie Azure Log Analytics. Beim Exportieren von Protokollen in Log Analytics tritt eine Verzögerung auf.
  • Speichern Sie Protokolle zur Überwachung oder manuellen Überprüfung in einem Speicherkonto. Sie können die Vermerkdauer (in Tagen) angeben.
  • Sie können Protokolle zur Erfassung durch einen Drittanbieterdienst oder durch eine benutzerdefinierte Analyselösung an Event Hubs streamen.

Wählen Sie die Protokollkategorie und die Metrikkategorie aus, die Sie überwachen möchten.

Tipp

Wenn Sie nur Ihre Protokolle streamen möchten, können Sie den Azure CLI-Befehl az spring app logs verwenden.

Protokolle

Log Beschreibung
ApplicationConsole Konsolenprotokoll aller Kundenanwendungen.
SystemLogs Die verfügbaren LogType-Werte sind ConfigServer (nur Basic/Standard), ServiceRegistry (alle Pläne), ApiPortal (nur Enterprise-Plan), ApplicationConfigurationService (nur Enterprise-Plan), SpringCloudGateway (nur Enterprise-Plan) und SpringCloudGatewayOperator (nur Enterprise-Plan).
IngressLogs Eingangsprotokolle aller Anwendungen des Kunden, nur Zugriffsprotokolle.
BuildLogs Buildprotokolle aller Anwendungen des Kunden für jede Buildphase.

Hinweis

Um Ihre Anwendung vor dem potenziellen Verlust von Anmeldeinformationen zu schützen, werden alle Protokollinhalte mit Anmeldeinformationen oder anderen vertraulichen Informationen mit *** maskiert. Beispielsweise werden alle Protokollinhalte mit den folgenden Mustern als vertrauliche Informationen behandelt, und die entsprechenden Werte werden maskiert:

  • dbpass, password, key, secret, sig und signature gefolgt von : oder =. Diese Muster werden in der Regel in URL-Parametern und Nutzdatensicherungen angezeigt. https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx wird beispielsweise zu https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***.
  • JWT-Token ähnelnde codierte Zeichenfolgen im Format eyJxxxxxx.eyJxxxxxx

Wenn Sie maskierte Werte in Ihren Protokollen finden, müssen Sie den Anwendungscode aktualisieren, um den Verlust von Anmeldeinformationen zu vermeiden.

Metriken

Eine vollständige Liste der Metriken finden Sie im Abschnitt Optionen für Benutzermetriken im Artikel Metriken für Azure Spring Apps.

Zum Einstieg aktivieren Sie einen dieser Dienste, um die Daten empfangen zu können. Weitere Informationen zum Konfigurieren von Log Analytics finden Sie unter Erste Schritte mit Log Analytics in Azure Monitor.

Konfigurieren von Diagnoseeinstellungen

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.

  2. Wählen Sie die Option Diagnoseeinstellungen aus, und wählen Sie dann Diagnoseeinstellung hinzufügen aus.

  3. Geben Sie einen Namen für die Einstellung ein, und wählen Sie dann aus, wohin die Protokolle gesendet werden sollen. Sie können eine beliebige Kombination der folgenden Optionen auswählen:

    • In einem Speicherkonto archivieren
    • An einen Event Hub streamen
    • An Log Analytics senden
    • Senden an eine Partnerlösung
  4. Wählen Sie die zu überwachende Protokoll- und Metrikkategorie aus, und geben Sie dann die Vermerkdauer (in Tagen) an. Die Vermerkdauer gilt nur für das Speicherkonto.

  5. Klicken Sie auf Speichern.

Hinweis

Zwischen der Ausgabe der Protokolle oder Metriken und der Anzeige in Ihrem Speicherkonto, Ihrem Event Hub oder in Log Analytics kann eine Verzögerung von bis zu 15 Minuten liegen. Wenn die Azure Spring Apps-Instanz gelöscht oder verschoben wurde, wird der Vorgang nicht an die Ressourcen der Diagnoseeinstellungen kaskadiert. Die Ressourcen für Diagnoseeinstellungen müssen manuell gelöscht werden, bevor der Vorgang für das übergeordnete Element – die Azure Spring Apps-Instanz – ausgeführt werden kann. Andernfalls gilt: Wenn eine neue Azure Spring Apps-Instanz mit derselben Ressourcen-ID wie die gelöschte Instanz bereitgestellt oder die Azure Spring Apps-Instanz zurück verschoben wird, erweitern die vorherigen Ressourcen für Diagnoseeinstellungen diese weiterhin.

Anzeigen der Protokolle und Metriken

Es gibt verschiedene Methoden zum Anzeigen von Protokollen und Metriken, wie in den folgenden Abschnitten beschrieben.

Verwenden des Bereichs „Protokolle“

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.

  2. Um den Bereich Protokollsuche zu öffnen, wählen Sie Protokolle aus.

  3. Verwenden Sie im Suchfeld Tabellen eine der folgenden Abfragen:

    • Geben Sie zum Anzeigen von Protokollen eine Abfrage wie im folgenden Beispiel ein:

      AppPlatformLogsforSpring
      | limit 50
      
    • Um Metriken anzuzeigen, geben Sie eine Abfrage wie im folgenden Beispiel ein:

      AzureMetrics
      | limit 50
      
  4. Um das Suchergebnis anzuzeigen, wählen Sie Ausführen aus.

Verwenden von Log Analytics

  1. Wählen Sie im Azure-Portal im linken Bereich Log Analytics aus.

  2. Wählen Sie den Log Analytics-Arbeitsbereich aus, den Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben.

  3. Um den Bereich Protokollsuche zu öffnen, wählen Sie Protokolle aus.

  4. Verwenden Sie im Suchfeld Tabellen eine der folgenden Abfragen:

    • Geben Sie zum Anzeigen von Protokollen eine Abfrage wie im folgenden Beispiel ein:

      AppPlatformLogsforSpring
      | limit 50
      
    • Um Metriken anzuzeigen, geben Sie eine Abfrage wie im folgenden Beispiel ein:

    AzureMetrics
    | limit 50
    
  5. Um das Suchergebnis anzuzeigen, wählen Sie Ausführen aus.

  6. Sie können die Protokolle der spezifischen Anwendung oder Instanz durchsuchen, indem Sie eine Filterbedingung wie im folgenden Beispiel festlegen:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Hinweis

    Für == wird Groß-/Kleinschreibung beachtet, für =~ jedoch nicht.

Weitere Informationen zu der in Log Analytics verwendeten Abfragesprache erhalten Sie unter Azure Monitor-Protokollabfragen. Wenn Sie alle Log Analytics-Protokolle über einen zentralisierten Client abfragen möchten, lesen Sie die Informationen unter Abfragen von Daten in Azure Monitor mit Azure Data Explorer.

Verwenden Ihres Speicherkontos

  1. Suchen Sie im Azure-Portal im linken Navigationsbereich oder im Suchfeld nach Speicherkonten.
  2. Wählen Sie das Speicherkonto aus, das Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben.
  3. Um den Bereich Blobcontainer zu öffnen, wählen Sie Blobs aus.
  4. Um Anwendungsprotokolle zu überprüfen, suchen Sie nach einem Container mit dem Namen insights-logs-applicationconsole.
  5. Um Anwendungsmetriken zu überprüfen, suchen Sie nach einem Container mit dem Namen insights-metrics-pt1m.

Weitere Informationen zum Senden von Diagnoseinformationen an ein Speicherkonto finden Sie unter Speichern und Anzeigen von Diagnosedaten in Azure Storage.

Verwenden Ihres Event Hubs

  1. Suchen Sie im Azure-Portal im linken Navigationsbereich oder im Suchfeld nach Event Hubs.

  2. Suchen Sie nach dem Event Hub, den Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben, und wählen Sie ihn aus.

  3. Um den Bereich Event Hub-Liste zu öffnen, wählen Sie Event Hubs aus.

  4. Um Anwendungsprotokolle zu überprüfen, suchen Sie nach einem Event Hub mit dem Namen insights-logs-applicationconsole.

  5. Um Anwendungsmetriken zu überprüfen, suchen Sie nach einem Event Hub mit dem Namen insights-metrics-pt1m.

Weitere Informationen zum Senden von Diagnoseinformationen an einen Event Hub finden Sie unter Streamen von Azure-Diagnosedaten im langsamsten Pfad mithilfe von Event Hubs.

Analysieren der Protokolle

Azure Log Analytics wird mit einer Kusto-Engine ausgeführt, damit Sie Ihre Protokolle zu Analysezwecken abfragen können. Eine kurze Einführung in das Abfragen mithilfe von Kusto finden Sie im Log Analytics-Tutorial .

Anwendungsprotokolle bieten wichtige Informationen und ausführliche Protokolle zur Integrität und Leistung Ihrer Anwendung und zu vielem mehr. In den nächsten Abschnitten finden Sie einige einfache Abfragen, die Ihnen helfen, die aktuellen und früheren Zustände Ihrer Anwendung besser zu verstehen.

Anzeigen von Anwendungsprotokollen aus Azure Spring Apps

Um eine Liste mit Anwendungsprotokollen aus Azure Spring Apps zu überprüfen, sortiert nach Uhrzeit mit den neuesten Protokollen zuerst, führen Sie die folgende Abfrage aus:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

Anzeigen von Protokolleinträgen mit Fehlern oder Ausnahmen

Um unsortierte Protokolleinträge zu überprüfen, die einen Fehler oder eine Ausnahme enthalten, führen Sie die folgende Abfrage aus:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

Verwenden Sie diese Abfrage, um Fehler zu finden, oder ändern Sie die Abfragebedingungen, um bestimmte Fehlercodes oder Ausnahmen zu suchen.

Anzeigen der Anzahl von Fehlern und Ausnahmen, die von Ihrer Anwendung in der letzten Stunde gemeldet wurden

Um ein Kreisdiagramm zu erstellen, das die Anzahl der Fehler und Ausnahmen darstellt, die in der letzten Stunde von Ihrer Anwendung protokolliert wurden, führen Sie die folgende Abfrage aus:

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

Anzeigen von Eingangsprotokolleinträgen, die einen bestimmten Host enthalten

Führen Sie die folgende Abfrage aus, um Protokolleinträge zu überprüfen, die von einem bestimmten Host generiert wurden:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Verwenden Sie diese Abfrage, um Status-, RequestTime- und andere Antworteigenschaften der Eingangsprotokolle dieses bestimmten Hosts zu ermitteln.

Anzeigen von Eingangsprotokolleinträgen für eine bestimmte requestId

Zum Überprüfen von Protokolleinträgen für einen bestimmten requestId-Wert <request_ID> führen Sie die folgende Abfrage aus:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Anzeigen von Buildprotokolleinträgen für eine bestimmte App

Führen Sie die folgende Abfrage aus, um Protokolleinträge für eine bestimmte App während des Buildprozesses zu überprüfen:

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

Anzeigen von Buildprotokolleinträgen für eine bestimmte App in einer bestimmten Buildphase

Führen Sie die folgende Abfrage aus, um Protokolleinträge für eine bestimmte App in einer bestimmten Buildphase zu überprüfen. Ersetzen Sie den Platzhalter <app-name> durch den Namen Ihrer Anwendung. Ersetzen Sie den Platzhalter <build-stage> durch einen der folgenden Werte, die für die Phasen des Buildprozesses stehen: prepare, detect, restore, analyze, build, exportoder completion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

Anzeigen von VMware Spring Cloud-Gatewayprotokollen im Enterprise-Plan

Führen Sie die folgende Abfrage aus, um Protokolleinträge für VMware Spring Cloud-Gatewayprotokolle im Enterprise-Plan zu überprüfen:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Eine weitere Komponente namens Spring Cloud-Gatewayoperator steuert den Lebenszyklus des Gateways und der Routen von Spring Cloud. Wenn Probleme auftreten, aufgrund derer die Route nicht wirksam wird, überprüfen Sie die Protokolle auf diese Komponente. Führen Sie die folgende Abfrage aus, um Protokolleinträge für den VMware Spring Cloud-Gatewayoperator im Enterprise-Plan zu überprüfen:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Anzeigen des Anwendungskonfigurationsdiensts für Tanzu-Protokolle im Enterprise-Plan

Führen Sie die folgende Abfrage aus, um Protokolleinträge für den Anwendungskonfigurationsdienst für Tanzu-Protokolle im Enterprise-Plan zu überprüfen:

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Anzeigen von Tanzu-Dienstregistrierungsprotokollen im Enterprise-Plan

Führen Sie die folgende Abfrage aus, um Protokolleinträge für Tanzu-Dienstregistrierungsprotokolle im Enterprise-Plan zu überprüfen:

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Anzeigen des API-Portals für VMware Tanzu-Protokolle im Enterprise-Plan

Führen Sie die folgende Abfrage aus, um Protokolleinträge für das API-Portal für VMware Tanzu-Protokolle im Enterprise-Plan zu überprüfen:

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Weitere Informationen zum Abfragen von Anwendungsprotokollen

Azure Monitor bietet umfassende Unterstützung für das Abfragen von Anwendungsprotokollen mithilfe von Log Analytics. Weitere Informationen zu diesem Dienst finden Sie unter Erste Schritte mit Protokollabfragen in Azure Monitor. Weitere Informationen zum Erstellen von Abfragen zur Analyse Ihrer Anwendungsprotokolle finden Sie unter Übersicht über Protokollabfragen in Azure Monitor.

Praktische Einstiegspunkte im Azure-Portal

Führen Sie die folgenden Schritte aus, um zum Bereich Log Analytics mit vordefinierten Abfragen zu navigieren:

  1. Wechseln Sie zur Seite Übersicht für Ihre Azure Spring Apps-Dienstinstanz, und wählen Sie dann im Navigationsbereich Apps aus.

  2. Suchen Sie Ihre Ziel-App, und wählen Sie dann das Kontextmenü aus.

  3. Wählen Sie im Popupkontextmenü die Option Protokolle anzeigen aus.

    Screenshot der Seite „Apps“ im Azure-Portal mit hervorgehobenem Kontextmenüelement „Protokolle anzeigen“

    Mit dieser Aktion navigieren Sie zum Bereich Log Analytics mit vordefinierten Abfragen.

Es gibt weitere Einstiegspunkte zum Anzeigen von Protokollen. Es gibt auch die Schaltfläche Protokolle anzeigen für verwaltete Komponenten wie Erstellungsdienst und Dienstregistrierung.

Häufig gestellte Fragen (FAQ)

Wie können mehrzeilige Java-Stapelüberwachungen in eine einzelne Zeile konvertiert werden?

Es gibt eine Möglichkeit, Ihre mehrzeiligen Stapelüberwachungen in eine einzelne Zeile zu konvertieren. Sie können die Java-Protokollausgabe ändern, um Stapelüberwachungsnachrichten neu zu formatieren, sodass Zeilenvorschubzeichen durch ein Token ersetzt werden. Bei Verwendung der Java-Logback-Bibliothek können Sie Stapelüberwachungsnachrichten durch Hinzufügen von %replace(%ex){'[\r\n]+', '\\n'}%nopex neu formatieren:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

In Log Analytics können Sie das Token anschließend durch Zeilenvorschubzeichen ersetzen, wie im folgenden Beispiel gezeigt:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Die gleiche Strategie kann ggf. auch für andere Java-Protokollbibliotheken verwendet werden.

Nächste Schritte