Logboeken en metrische gegevens analyseren met diagnostische instellingen
Dit artikel is van toepassing op: ✔️ Java ✔️ C#
Met de diagnostische functionaliteit van Azure Spring Cloud kunt u logboeken en metrische gegevens analyseren met een van de volgende services:
- Gebruik Azure Log Analytics, waar de gegevens naar de Azure Storage. 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 opgeven (in dagen).
- Stream logboeken naar uw Event Hub voor opname door een service van derden of een aangepaste analyseoplossing.
Kies de logboekcategorie en metrische categorie die u wilt bewaken.
Tip
Wilt u alleen uw logboeken streamen? Bekijk deze Azure CLI-opdracht!
Logboeken
| Logboek | Description |
|---|---|
| ApplicationConsole | Consolelogboek van alle klanttoepassingen. |
| SystemLogs | Op dit moment Spring Cloud Config Server alleen logboeken in deze categorie. |
| IngressLogs | Toegangslogboeken van alle toepassingen van de klant, alleen toegang tot logboeken. |
Metrische gegevens
Zie Metrische gegevens voor een volledige lijst Spring Cloud metrische gegevens.
Schakel een van deze services in om de gegevens te ontvangen om aan de slag te gaan. Zie Aan de slag met Log Analytics in Azure Monitor voor meer informatie over het configureren Azure Monitor.
Diagnostische instellingen configureren
Ga in Azure Portal naar uw Azure Spring Cloud-exemplaar.
Selecteer de optie Diagnostische instellingen en selecteer vervolgens Diagnostische instelling toevoegen.
Voer een naam in voor de instelling en kies waar u de logboeken wilt verzenden. U kunt een combinatie van de volgende drie opties selecteren:
- Archiveren naar een opslagaccount
- Streamen naar een Event Hub
- Verzenden naar Log Analytics
Kies welke logboekcategorie en categorie met metrische gegevens u wilt bewaken en geef vervolgens de bewaartijd op (in dagen). De bewaartijd geldt alleen voor het opslagaccount.
Selecteer Opslaan.
Notitie
- Er kan een hiaat van maximaal 15 minuten zijn tussen het moment waarop logboeken of metrische gegevens worden weergegeven in uw opslagaccount, uw Event Hub of Log Analytics.
- Als het Azure Spring Cloud wordt verwijderd of verplaatst, wordt de bewerking niet trapsge overgeslagen naar de resources voor diagnostische instellingen. De resources voor diagnostische instellingen moeten handmatig worden verwijderd voordat de bewerking wordt uitgevoerd op het bovenliggende exemplaar, het Azure Spring Cloud exemplaar. Als er anders een nieuw Azure Spring Cloud-exemplaar wordt ingericht met dezelfde resource-id als de verwijderde, of als het Azure Spring Cloud-exemplaar wordt teruggeboekt, 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 in de volgende koppen.
De blade Logboeken gebruiken
Ga in Azure Portal naar uw Azure Spring Cloud-exemplaar.
Selecteer Logboeken om het deelvenster Zoeken in logboeken te openen.
In het zoekvak Tabellen
- Als u logboeken wilt weergeven, voert u een eenvoudige query in, zoals:
AppPlatformLogsforSpring | limit 50- Als u metrische gegevens wilt weergeven, voert u een eenvoudige query in, zoals:
AzureMetrics | limit 50Als u het zoekresultaat wilt weergeven, selecteert u Uitvoeren.
Log Analytics gebruiken
Selecteer in Azure Portal linkerdeelvenster Log Analytics.
Selecteer de Log Analytics-werkruimte die u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.
Selecteer Logboeken om het deelvenster Zoeken in logboeken te openen.
In het zoekvak Tabellen
- als u logboeken wilt weergeven, voert u een eenvoudige query in, zoals:
AppPlatformLogsforSpring | limit 50- als u metrische gegevens wilt weergeven, voert u een eenvoudige query in, zoals:
AzureMetrics | limit 50Als 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:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50Notitie
==is wel casegevoelig, maar=~niet.
Zie logboekquery's voor meer informatie over de querytaal die wordt gebruikt in Log Analytics Azure Monitor logboekquery's. Als u een query wilt uitvoeren op al uw Log Analytics-logboeken van een gecentraliseerde client, raadpleegt u Azure Data Explorer.
Uw opslagaccount gebruiken
- Zoek in Azure Portal de Storage in het linkernavigatievenster of in het zoekvak.
- Selecteer het opslagaccount dat u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.
- Selecteer Blobs om het deelvenster Blobcontainer te openen.
- Als u toepassingslogboeken wilt bekijken, zoekt u naar een container met de naam insights-logs-applicationconsole.
- Als u metrische gegevens van toepassingen wilt controleren, zoekt u naar een container met de naam insights-metrics-pt1m.
Zie Diagnostische gegevens opslaan en weergeven in een opslagaccount voor meer informatie over het verzenden van diagnostische gegevens Azure Storage.
Uw Event Hub gebruiken
Zoek in Azure Portal de Event Hubs in het linkernavigatievenster of in het zoekvak.
Zoek en selecteer de Event Hub die u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.
Als u het deelvenster Event Hub-lijst wilt openen, selecteert 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 controleren, zoekt u naar een Event Hub met de naam insights-metrics-pt1m.
Zie Streaming Azure Diagnostics data in the hot path by using Event Hubs (Gegevens in het hot-pad streamen met behulp van Event Hubs) voor meer informatie over het verzenden van diagnostische gegevens naar een Event Hub.
De logboeken analyseren
Azure Log Analytics wordt uitgevoerd met een Kusto-engine, zodat u een query kunt uitvoeren op uw logboeken voor analyse. Bekijk de Log Analytics-zelfstudie voor een korte inleiding tot het uitvoeren van query's op logboekenmet behulp van Kusto.
Toepassingslogboeken bevatten 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 staten van uw toepassing.
Toepassingslogboeken van Azure Spring Cloud
Als u een lijst met toepassingslogboeken van Azure Spring Cloud, gesorteerd op tijd met de meest recente logboeken die eerst worden weergegeven, moet u de volgende query uitvoeren:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc
Logboeken met fouten of uitzonderingen tonen
Voer de volgende query uit om niet-afgeschreven logboekgegevens te bekijken die een fout of uitzondering vermelden:
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 laten zien 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 het afgelopen uur door uw toepassing is geregistreerd, moet u de volgende query uitvoeren:
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 toegangslogboek met een specifieke host tonen
Voer de volgende query uit om logboekgegevens te controleren die door een specifieke host worden gegenereerd:
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 , en andere eigenschappen van de logboeken voor toegangsgegevens van deze Status RequestTime specifieke host te vinden.
Vermeldingen in het toegangslogboek voor een specifieke requestId tonen
Voer de volgende query uit om logboekgegevens voor een specifieke requestId waarde <request_ID> te controleren:
AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Meer informatie over het uitvoeren van query's op toepassingslogboeken
Azure Monitor biedt uitgebreide ondersteuning voor het uitvoeren van query's op toepassingslogboeken met behulp van Log Analytics. Zie Aan de slag met logboekquery's in Azure Monitor voor meer informatie over Azure Monitor. Zie Overzicht van logboekquery's in Azure Monitor voor meer informatie over het bouwen van query'Azure Monitor.
Veelgestelde vragen
Hoe kan ik Java-stack-traceringen van meerdere lijnen converteren naar één regel?
Er is een tijdelijke oplossing om uw stack-traceringen van meerdere lijnen te converteren naar één regel. U kunt de Java-logboekuitvoer wijzigen om stack-traceerberichten opnieuw op te maken, zodat nieuwe-lijntekens worden vervangen door een token. Als u de Java Logback-bibliotheek gebruikt, kunt u stack-traceerberichten opnieuw opmaken door het %replace(%ex){'[\r\n]+', '\\n'}%nopex volgende toe te voegen:
<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-lijntekens in Log Analytics, zoals hieronder wordt weergegeven:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Mogelijk kunt u dezelfde strategie gebruiken voor andere Java-logboekbibliotheken.