Logboeken en metrische gegevens analyseren met diagnostische instellingen
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op: ✔️ Java ✔️ C#
Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise
In dit artikel leest u hoe u diagnostische gegevens analyseert in Azure Spring Apps.
Met behulp van de diagnostische functionaliteit van Azure Spring Apps kunt u logboeken en metrische gegevens analyseren met een van de volgende services:
- Gebruik Azure Log Analytics. Er is een vertraging bij het exporteren van logboeken naar Log Analytics.
- Sla logboeken op in een opslagaccount voor controle of handmatige inspectie. U kunt de bewaartijd (in dagen) opgeven.
- Stream logboeken naar uw Event Hub voor opname door een service van derden of een aangepaste analyseoplossing.
Kies de logboekcategorie en de metrische categorie die u wilt bewaken.
Tip
Als u alleen uw logboeken wilt streamen, kunt u de Azure CLI-opdracht az spring app logs gebruiken.
Logboeken
Logboek | Beschrijving |
---|---|
ApplicationConsole | Consolelogboek van alle klanttoepassingen. |
SystemLogs | De beschikbare LogType waarden zijn ConfigServer (alleen Basic/Standard), ServiceRegistry (alle abonnementen), ApiPortal (alleen Enterprise-abonnement), ApplicationConfigurationService (alleen Enterprise-abonnement), (alleen Enterprise-abonnement) SpringCloudGateway en SpringCloudGatewayOperator (alleen Enterprise-abonnement) |
IngressLogs | Logboeken voor inkomend verkeer van alle toepassingen van de klant, hebben alleen toegang tot logboeken. |
BuildLogs | Bouw logboeken van alle toepassingen van de klant voor elke buildfase. |
Notitie
Om uw toepassing te beschermen tegen potentieel referentielek, worden alle logboekinhoud met referenties of andere gevoelige informatie gemaskeerd met ***
. Zo worden logboekinhoud met de volgende patronen verwerkt als gevoelige informatie en worden de bijbehorende waarden gemaskeerd:
dbpass
, ,password
key
,secret
, , ensignature
sig
gevolgd door:
of=
. Deze patronen worden meestal weergegeven in URL-parameters en payloaddumps. Bijvoorbeeld: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
wordthttps://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-tokenachtige gecodeerde tekenreeksen in de indeling:
eyJxxxxxx.eyJxxxxxx
Als u gemaskeerde waarden in uw logboeken vindt, moet u de toepassingscode bijwerken om het lekken van referenties te voorkomen.
Metrische gegevens voor
Zie de sectie Metrische gegevens van gebruikers van Metrische gegevens voor Azure Spring Apps voor een volledige lijst met metrische gegevens.
Om aan de slag te gaan, schakelt u een van deze services in om de gegevens te ontvangen. Zie Aan de slag met Log Analytics in Azure Monitor voor meer informatie over het configureren van Log Analytics.
Diagnostische instellingen configureren
Ga in Azure Portal naar uw Azure Spring Apps-exemplaar.
Selecteer de optie Diagnostische instellingen en selecteer vervolgens Diagnostische instellingen toevoegen.
Voer een naam in voor de instelling en kies waar u de logboeken wilt verzenden. U kunt een willekeurige combinatie van de volgende opties selecteren:
- Archiveren naar een opslagaccount
- Streamen naar een Event Hub
- Verzenden naar Log Analytics
- Verzenden naar partneroplossing
Kies welke logboekcategorie en metrische categorie u wilt bewaken en geef vervolgens de bewaartijd (in dagen) op. De bewaartijd is alleen van toepassing op het opslagaccount.
Selecteer Opslaan.
Notitie
Er kan een tussenruimte van maximaal 15 minuten zijn tussen het moment waarop logboeken of metrische gegevens worden verzonden en wanneer ze worden weergegeven in uw opslagaccount, uw Event Hub of Log Analytics. Als het Azure Spring Apps-exemplaar wordt verwijderd of verplaatst, wordt de bewerking niet trapsgewijs verplaatst naar de resources voor diagnostische instellingen . De resources voor diagnostische instellingen moeten handmatig worden verwijderd voordat de bewerking wordt uitgevoerd op basis van het bovenliggende exemplaar van Azure Spring Apps. Als een nieuw Azure Spring Apps-exemplaar wordt ingericht met dezelfde resource-id als de verwijderde instantie, of als het Azure Spring Apps-exemplaar terug wordt verplaatst, blijven de vorige resources voor diagnostische instellingen deze uitbreiden.
De logboeken en metrische gegevens weergeven
Er zijn verschillende methoden om logboeken en metrische gegevens weer te geven, zoals beschreven onder de volgende koppen.
Het deelvenster Logboeken gebruiken
Ga in Azure Portal naar uw Azure Spring Apps-exemplaar.
Als u het deelvenster Zoeken in logboeken wilt openen, selecteert u Logboeken.
Gebruik in het zoekvak Tabellen een van de volgende query's:
Als u logboeken wilt weergeven, voert u een query in, zoals in het volgende voorbeeld:
AppPlatformLogsforSpring | limit 50
Als u metrische gegevens wilt weergeven, voert u een query in, zoals het volgende voorbeeld:
AzureMetrics | limit 50
Als u het zoekresultaat wilt weergeven, selecteert u Uitvoeren.
Log Analytics gebruiken
Selecteer Log Analytics in azure Portal in het linkerdeelvenster.
Selecteer de Log Analytics-werkruimte die u hebt gekozen bij het toevoegen van uw diagnostische instellingen.
Als u het deelvenster Zoeken in logboeken wilt openen, selecteert u Logboeken.
Gebruik in het zoekvak Tabellen een van de volgende query's:
Als u logboeken wilt weergeven, voert u een query in, zoals in het volgende voorbeeld:
AppPlatformLogsforSpring | limit 50
Als u metrische gegevens wilt weergeven, voert u een query in, zoals het volgende voorbeeld:
AzureMetrics | limit 50
Als u het zoekresultaat wilt weergeven, selecteert u Uitvoeren.
U kunt de logboeken van de specifieke toepassing of het specifieke exemplaar doorzoeken door een filtervoorwaarde in te stellen, zoals wordt weergegeven in het volgende voorbeeld:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Notitie
==
is hoofdlettergevoelig, maar=~
niet.
Zie Azure Monitor-logboekquery's voor meer informatie over de querytaal die wordt gebruikt in Log Analytics. Als u een query wilt uitvoeren op al uw Log Analytics-logboeken vanaf een gecentraliseerde client, bekijkt u Azure Data Explorer.
Uw opslagaccount gebruiken
- Zoek in Azure Portal opslagaccounts in het linkernavigatievenster of zoekvak.
- Selecteer het opslagaccount dat u hebt gekozen toen u uw diagnostische instellingen hebt toegevoegd.
- Als u het deelvenster Blobcontainer wilt openen, selecteert u Blobs.
- Als u toepassingslogboeken wilt bekijken, zoekt u naar een container met de naam insights-logs-applicationconsole.
- Als u metrische gegevens van toepassingen wilt bekijken, zoekt u naar een container met de naam insights-metrics-pt1m.
Zie Diagnostische gegevens opslaan en weergeven in Azure Storage voor meer informatie over het verzenden van diagnostische gegevens naar een opslagaccount.
Uw Event Hub gebruiken
Zoek in Azure Portal Event Hubs in het linkernavigatievenster of zoekvak.
Zoek en selecteer de Event Hub die u hebt gekozen bij het toevoegen van uw diagnostische instellingen.
Als u het deelvenster Event Hub-lijst wilt openen, selecteert u Event Hubs.
Als u toepassingslogboeken wilt bekijken, zoekt u naar een Event Hub met de naam insights-logs-applicationconsole.
Als u metrische gegevens van toepassingen wilt bekijken, zoekt u naar een Event Hub met de naam insights-metrics-pt1m.
Voor meer informatie over het verzenden van diagnostische gegevens naar een Event Hub, raadpleegt u Streaming Azure Diagnostics-gegevens in het dynamische pad met behulp van Event Hubs.
De logboeken analyseren
Azure Log Analytics wordt uitgevoerd met een Kusto-engine, zodat u query's kunt uitvoeren op uw logboeken voor analyse. Raadpleeg de Log Analytics-zelfstudie voor een korte inleiding tot het uitvoeren van query's op logboeken met behulp van Kusto.
Toepassingslogboeken bieden essentiële informatie en uitgebreide logboeken over de status, prestaties en meer van uw toepassing. In de volgende secties vindt u enkele eenvoudige query's om inzicht te krijgen in de huidige en eerdere statussen van uw toepassing.
Toepassingslogboeken van Azure Spring Apps weergeven
Als u een lijst met toepassingslogboeken van Azure Spring Apps wilt bekijken, gesorteerd op tijd met de meest recente logboeken die eerst worden weergegeven, voert u de volgende query uit:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Logboekvermeldingen met fouten of uitzonderingen weergeven
Als u niet-gesorteerde logboekvermeldingen met een fout of uitzondering wilt bekijken, voert u de volgende query uit:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Gebruik deze query om fouten te vinden of wijzig de querytermen om specifieke foutcodes of uitzonderingen te vinden.
Het aantal fouten en uitzonderingen weergeven dat in het afgelopen uur door uw toepassing is gerapporteerd
Als u een cirkeldiagram wilt maken waarin het aantal fouten en uitzonderingen wordt weergegeven dat in het afgelopen uur door uw toepassing is geregistreerd, voert u de volgende query uit:
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
Vermeldingen in het toegangsbeheerlogboek met een specifieke host weergeven
Voer de volgende query uit om logboekvermeldingen te controleren die zijn gegenereerd door een specifieke host:
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
Gebruik deze query om antwoord Status
te vinden, RequestTime
en andere eigenschappen van de logboeken voor inkomend verkeer van deze specifieke host.
Vermeldingen in inkomend logboek weergeven voor een specifieke requestId
Als u logboekvermeldingen voor een specifieke requestId
waarde <request_ID> wilt bekijken, voert u de volgende query uit:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Vermeldingen in het buildlogboek voor een specifieke app weergeven
Als u logboekvermeldingen voor een specifieke app tijdens het buildproces wilt bekijken, voert u de volgende query uit:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Vermeldingen in het buildlogboek weergeven voor een specifieke app in een specifieke buildfase
Als u logboekvermeldingen voor een specifieke app in een specifieke buildfase wilt bekijken, voert u de volgende query uit. Vervang de tijdelijke aanduiding door de <app-name>
naam van uw toepassing. Vervang de <build-stage>
tijdelijke aanduiding door een van de volgende waarden, die de fasen van het buildproces vertegenwoordigen: prepare
, , detect
restore
, analyze
, , build
of completion
export
.
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated
VMware Spring Cloud Gateway-logboeken weergeven in het Enterprise-abonnement
Voer de volgende query uit om logboekvermeldingen voor VMware Spring Cloud Gateway-logboeken in het Enterprise-abonnement te bekijken:
AppPlatformSystemLogs
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Een ander onderdeel, genaamd Spring Cloud Gateway Operator, bepaalt de levenscyclus van Spring Cloud Gateway en routes. Als u problemen ondervindt waarbij de route niet van kracht wordt, controleert u de logboeken voor dit onderdeel. Voer de volgende query uit om logboekvermeldingen voor VMware Spring Cloud Gateway Operator in het Enterprise-abonnement te bekijken:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Toepassingsconfiguratieservice voor Tanzu-logboeken weergeven in het Enterprise-abonnement
Voer de volgende query uit om logboekvermeldingen voor de Toepassingsconfiguratieservice voor Tanzu-logboeken in het Enterprise-abonnement te bekijken:
AppPlatformSystemLogs
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Tanzu Service Registry-logboeken weergeven in het Enterprise-plan
Voer de volgende query uit om logboekvermeldingen voor tanzu-serviceregisterlogboeken in het Enterprise-abonnement te bekijken:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
API-portal weergeven voor VMware Tanzu-logboeken in het Enterprise-plan
Voer de volgende query uit om logboekvermeldingen voor API-portal voor VMware Tanzu-logboeken in het Enterprise-abonnement te bekijken:
AppPlatformSystemLogs
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Meer informatie over het uitvoeren van query's op toepassingslogboeken
Azure Monitor biedt uitgebreide ondersteuning voor het opvragen van toepassingslogboeken met behulp van Log Analytics. Zie Aan de slag met logboekquery's in Azure Monitor voor meer informatie over deze service. Zie Overzicht van logboekquery's in Azure Monitor voor meer informatie over het bouwen van query's voor het analyseren van uw toepassingslogboeken.
Handige toegangspunten in Azure Portal
Gebruik de volgende stappen om naar het deelvenster Log Analytics te navigeren met vooraf gedefinieerde query's:
Ga naar de overzichtspagina voor uw Azure Spring Apps-service-exemplaar en selecteer vervolgens Apps in het navigatiedeelvenster.
Zoek uw doel-app en selecteer vervolgens het contextmenu.
Selecteer Logboeken weergeven in het snelmenu.
Met deze actie gaat u naar het deelvenster Log Analytics met vooraf gedefinieerde query's.
Er zijn andere toegangspunten om logboeken weer te geven. U vindt ook de knop Logboeken weergeven voor beheerde onderdelen, zoals Build Service en Service Registry.
Veelgestelde vragen
Hoe kan ik java-stacktraceringen met meerdere regels converteren naar één regel?
Er is een tijdelijke oplossing om uw stacktraceringen met meerdere regels te converteren naar één regel. U kunt de Uitvoer van het Java-logboek wijzigen om stacktraceringsberichten opnieuw op te maken, waarbij u newlinetekens vervangt door een token. Als u de Java Logback-bibliotheek gebruikt, kunt u traceringsberichten van stacks opnieuw opmaken door deze als volgt toe te voegen %replace(%ex){'[\r\n]+', '\\n'}%nopex
:
<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>
U kunt het token vervolgens vervangen door nieuwe regeltekens in Log Analytics, zoals wordt weergegeven in het volgende voorbeeld:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Mogelijk kunt u dezelfde strategie gebruiken voor andere Java-logboekbibliotheken.