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

  1. Ga in Azure Portal naar uw Azure Spring Cloud-exemplaar.

  2. Selecteer de optie Diagnostische instellingen en selecteer vervolgens Diagnostische instelling toevoegen.

  3. 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
  4. 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.

  5. Selecteer Opslaan.

Notitie

  1. 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.
  2. 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

  1. Ga in Azure Portal naar uw Azure Spring Cloud-exemplaar.

  2. Selecteer Logboeken om het deelvenster Zoeken in logboeken te openen.

  3. 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 50
    
  4. Als u het zoekresultaat wilt weergeven, selecteert u Uitvoeren.

Log Analytics gebruiken

  1. Selecteer in Azure Portal linkerdeelvenster Log Analytics.

  2. Selecteer de Log Analytics-werkruimte die u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.

  3. Selecteer Logboeken om het deelvenster Zoeken in logboeken te openen.

  4. 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 50
    
  5. Als u het zoekresultaat wilt weergeven, selecteert u Uitvoeren.

  6. 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 50
    

    Notitie

    == 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

  1. Zoek in Azure Portal de Storage in het linkernavigatievenster of in het zoekvak.
  2. Selecteer het opslagaccount dat u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.
  3. Selecteer Blobs om het deelvenster Blobcontainer te openen.
  4. Als u toepassingslogboeken wilt bekijken, zoekt u naar een container met de naam insights-logs-applicationconsole.
  5. 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

  1. Zoek in Azure Portal de Event Hubs in het linkernavigatievenster of in het zoekvak.

  2. Zoek en selecteer de Event Hub die u hebt gekozen toen u de diagnostische instellingen hebt toegevoegd.

  3. Als u het deelvenster Event Hub-lijst wilt openen, selecteert Event Hubs.

  4. Als u toepassingslogboeken wilt bekijken, zoekt u naar een Event Hub met de naam insights-logs-applicationconsole.

  5. 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.

Volgende stappen