Analýza protokolů a metrik s nastavením diagnostiky

Tento článek se týká: ✔️ Java ✔️ C #

Pomocí diagnostických funkcí Azure Spring Cloud můžete analyzovat protokoly a metriky pomocí kterékoli z následujících služeb:

  • Použijte Azure Log Analytics, kde se data zapisuje do Azure Storage. Při exportu protokolů do Log Analytics dochází ke zpoždění.
  • Uložte protokoly do účtu úložiště pro auditování nebo ruční kontrolu. Můžete zadat dobu uchovávání (ve dnech).
  • Streamujte protokoly do centra událostí pro příjem dat službou třetí strany nebo vlastním analytickým řešením.

Zvolte kategorii protokolů a kategorii metrik, kterou chcete monitorovat.

Tip

Chcete jenom streamovat protokoly? Podívejte se na tento příkaz Azure CLI!

Protokoly

Protokol Description
Konzola aplikace Protokol konzoly všech zákaznických aplikací
SystemLogs V současné době Spring Cloud Config Server pouze protokoly v této kategorii.
Příchozí přenosy datLogy Protokoly příchozího přenosu dat všech aplikací zákazníka, pouze přístup k protokolům.

Metriky

Úplný seznam metrik najdete v tématu Spring Cloud Metriky.

Pokud chcete začít, povolte pro příjem dat jednu z těchto služeb. Další informace o konfiguraci Log Analytics najdete v tématu Začínáme s Log Analytics v Azure Monitor.

Konfigurace nastavení diagnostiky

  1. V Azure Portal přejděte na svou instanci Azure Spring Cloud.

  2. Vyberte možnost nastavení diagnostiky a pak vyberte Přidat nastavení diagnostiky.

  3. Zadejte název nastavení a pak zvolte, kam chcete protokoly odeslat. Můžete vybrat libovolnou kombinaci následujících tří možností:

    • Archivace do účtu úložiště
    • Streamování do centra událostí
    • Odeslání do Log Analytics
  4. Vyberte kategorii protokolů a kategorii metrik, které chcete monitorovat, a pak zadejte dobu uchovávání (ve dnech). Doba uchovávání se vztahuje pouze na účet úložiště.

  5. Vyberte Uložit.

Poznámka

  1. Mezi vysílajícími protokoly nebo metrikami a jejich zobrazením ve vašem účtu úložiště, centru událostí nebo v Log Analytics může být až 15 minut mezera.
  2. Pokud je Azure Spring Cloud instance odstraněna nebo přesunuta, operace se nebude kaskádovat k prostředkům nastavení diagnostiky. Prostředky nastavení diagnostiky je třeba ručně odstranit před operací vůči nadřazené instanci, Azure Spring Cloud instanci. V opačném případě, pokud je nová instance Azure Spring Cloud zřízená se stejným ID prostředku jako odstraněná instance nebo pokud se instance Azure Spring Cloud přesune zpět, předchozí prostředky nastavení diagnostiky ji budou dál rozšiřovat.

Zobrazení protokolů a metrik

Protokoly a metriky můžete zobrazit různými způsoby, jak je popsáno v následujících nadpisech.

Použití okna Protokoly

  1. V Azure Portal přejděte na svou instanci Azure Spring Cloud.

  2. Pokud chcete otevřít podokno Prohledávání protokolů, vyberte Protokoly.

  3. Ve vyhledávacím poli Tabulky

    • Pokud chcete zobrazit protokoly, zadejte jednoduchý dotaz, například:
    AppPlatformLogsforSpring
    | limit 50
    
    • Pokud chcete zobrazit metriky, zadejte jednoduchý dotaz, například:
    AzureMetrics
    | limit 50
    
  4. Pokud chcete zobrazit výsledek hledání, vyberte Spustit.

Použití Log Analytics

  1. V Azure Portal podokně vyberte Log Analytics.

  2. Vyberte pracovní prostor služby Log Analytics, který jste zvolili při přidání nastavení diagnostiky.

  3. Pokud chcete otevřít podokno Prohledávání protokolů, vyberte Protokoly.

  4. Ve vyhledávacím poli Tabulky:

    • Pokud chcete zobrazit protokoly, zadejte jednoduchý dotaz, například:
    AppPlatformLogsforSpring
    | limit 50
    
    • Pokud chcete zobrazit metriky, zadejte jednoduchý dotaz, například:
    AzureMetrics
    | limit 50
    
  5. Pokud chcete zobrazit výsledek hledání, vyberte Spustit.

  6. Nastavením podmínky filtru můžete prohledat protokoly konkrétní aplikace nebo instance:

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

    Poznámka

    == rozlišuje malá a velká písmena, =~ ale ne.

Další informace o dotazovací jazyk, který se používá v Log Analytics, najdete v Azure Monitor dotazů na protokol. Pokud se chcete dotazovat na všechny protokoly Log Analytics z centralizovaného klienta, podívejte se Azure Data Explorer.

Použití účtu úložiště

  1. V části Azure Portal v levém navigačním Storage nebo vyhledávacím poli vyhledejte všechny účty.
  2. Vyberte účet úložiště, který jste zvolili při přidání nastavení diagnostiky.
  3. Pokud chcete otevřít podokno Kontejner objektů blob, vyberte Objekty blob.
  4. Pokud chcete zkontrolovat protokoly aplikace, vyhledejte kontejner s názvem insights-logs-applicationconsole.
  5. Pokud chcete zkontrolovat metriky aplikace, vyhledejte kontejner s názvem insights-metrics-pt1m.

Další informace o odesílání diagnostických informací do účtu úložiště najdete v tématu Ukládání a zobrazení diagnostických dat v Azure Storage.

Použití centra událostí

  1. V Azure Portal navigačním panelu Event Hubs nebo vyhledávacím poli vyhledejte položku .

  2. Vyhledejte a vyberte centrum událostí, které jste zvolili při přidání nastavení diagnostiky.

  3. Pokud chcete otevřít podokno Seznam centra událostí, vyberte Event Hubs.

  4. Pokud chcete zkontrolovat protokoly aplikace, vyhledejte centrum událostí s názvem insights-logs-applicationconsole.

  5. Pokud chcete zkontrolovat metriky aplikace, vyhledejte centrum událostí s názvem insights-metrics-pt1m.

Další informace o odesílání diagnostických informací do centra událostí najdete v tématu Streamování Azure Diagnostics dat v horké cestě pomocí Event Hubs.

Analýza protokolů

Služba Azure Log Analytics běží s využitím modulu Kusto, abyste se mohli dotazovat na protokoly a zadat k tomu analýzu. Rychlý úvod do dotazování protokolů pomocí Kusto naleznete v kurzu Log Analytics.

Protokoly aplikací poskytují důležité informace a podrobné protokoly o stavu, výkonu vaší aplikace a dalších. V dalších částech najdete několik jednoduchých dotazů, které vám pomůžou pochopit aktuální a minulé stavy vaší aplikace.

Zobrazení aplikačních protokolů z Azure Spring Cloud

Pokud chcete zkontrolovat seznam aplikačních protokolů z Azure Spring Cloud seřazených podle času s nejnovějšími protokoly zobrazenými jako první, spusťte následující dotaz:

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

Zobrazení položek protokolů obsahujících chyby nebo výjimky

Pokud chcete zkontrolovat neřazené položky protokolu, které uvádějí chybu nebo výjimku, spusťte následující dotaz:

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

Pomocí tohoto dotazu můžete najít chyby nebo upravit termíny dotazu a najít konkrétní kódy chyb nebo výjimky.

Zobrazení počtu chyb a výjimek hlášených vaší aplikací za poslední hodinu

Pokud chcete vytvořit výsečový graf zobrazující počet chyb a výjimek zaprotokolovaných vaší aplikací za poslední hodinu, spusťte následující dotaz:

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

Zobrazení položek protokolu příchozího přenosu dat obsahujícího konkrétního hostitele

Pokud chcete zkontrolovat položky protokolu vygenerované konkrétním hostitelem, spusťte následující dotaz:

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

Pomocí tohoto dotazu můžete najít odpovědi , a další vlastnosti protokolů příchozího přenosu dat tohoto Status RequestTime konkrétního hostitele.

Zobrazení položek protokolu příchozího přenosu dat pro konkrétní ID požadavku

Pokud chcete zkontrolovat položky protokolu pro konkrétní requestId hodnotu , spusťte následující <request_ID> dotaz:

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

Další informace o dotazování aplikačních protokolů

Azure Monitor poskytuje rozsáhlou podporu pro dotazování aplikačních protokolů pomocí Log Analytics. Další informace o této službě najdete v tématu Začínáme s dotazy na protokol v Azure Monitor. Další informace o vytváření dotazů pro analýzu aplikačních protokolů najdete v tématu Přehled dotazůna protokoly v Azure Monitor .

Nejčastější dotazy

Návody víceřádkové trasování zásobníku Java na jeden řádek?

Existuje alternativní řešení pro převod trasování víceřádkové zásobníku na jeden řádek. Můžete upravit výstup protokolu Java tak, aby přeformátoval zprávy trasování zásobníku a nahradil znaky nového řádku tokenem. Pokud používáte knihovnu Java Logback, můžete přeformátovat zprávy trasování zásobníku %replace(%ex){'[\r\n]+', '\\n'}%nopex přidáním následujícího kódu:

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

Potom můžete token nahradit znaky nového řádku v Log Analytics následujícím způsobem:

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

Stejnou strategii můžete použít i pro jiné knihovny protokolů Javy.

Další kroky