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 3 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 Standardverbrauchs- und dedizierte Plan wird ab dem 30. September 2024 als veraltet gekennzeichnet und nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Standardverbrauchs- und dedizierten Plan 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
undsignature
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 zuhttps://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
Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.
Wählen Sie die Option Diagnoseeinstellungen aus, und wählen Sie dann Diagnoseeinstellung hinzufügen aus.
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
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.
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“
Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.
Um den Bereich Protokollsuche zu öffnen, wählen Sie Protokolle aus.
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
Um das Suchergebnis anzuzeigen, wählen Sie Ausführen aus.
Verwenden von Log Analytics
Wählen Sie im Azure-Portal im linken Bereich Log Analytics aus.
Wählen Sie den Log Analytics-Arbeitsbereich aus, den Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben.
Um den Bereich Protokollsuche zu öffnen, wählen Sie Protokolle aus.
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
Um das Suchergebnis anzuzeigen, wählen Sie Ausführen aus.
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
- Suchen Sie im Azure-Portal im linken Navigationsbereich oder im Suchfeld nach Speicherkonten.
- Wählen Sie das Speicherkonto aus, das Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben.
- Um den Bereich Blobcontainer zu öffnen, wählen Sie Blobs aus.
- Um Anwendungsprotokolle zu überprüfen, suchen Sie nach einem Container mit dem Namen insights-logs-applicationconsole.
- 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
Suchen Sie im Azure-Portal im linken Navigationsbereich oder im Suchfeld nach Event Hubs.
Suchen Sie nach dem Event Hub, den Sie beim Hinzufügen Ihrer Diagnoseeinstellungen ausgewählt haben, und wählen Sie ihn aus.
Um den Bereich Event Hub-Liste zu öffnen, wählen Sie Event Hubs aus.
Um Anwendungsprotokolle zu überprüfen, suchen Sie nach einem Event Hub mit dem Namen insights-logs-applicationconsole.
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
, export
oder 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:
Wechseln Sie zur Seite Übersicht für Ihre Azure Spring Apps-Dienstinstanz, und wählen Sie dann im Navigationsbereich Apps aus.
Suchen Sie Ihre Ziel-App, und wählen Sie dann das Kontextmenü aus.
Wählen Sie im Popupkontextmenü die Option Protokolle anzeigen aus.
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.