Sdílet prostřednictvím


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

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

Tento článek se vztahuje na:✅ Java ✅ C#

Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise

V tomto článku se dozvíte, jak analyzovat diagnostická data v Azure Spring Apps.

Pomocí funkce diagnostiky služby Azure Spring Apps můžete analyzovat protokoly a metriky pomocí některé z následujících služeb:

  • Použijte Azure Log Analytics. 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ání (ve dnech).
  • Streamování protokolů do centra událostí pro příjem dat službou třetí strany nebo vlastním analytickým řešením

Zvolte kategorii protokolu a kategorii metrik, které chcete monitorovat.

Tip

Pokud chcete jenom streamovat protokoly, můžete použít příkaz Azure CLI az spring app logs.

Protokoly

Protokol Popis
ApplicationConsole Protokol konzoly pro všechny zákaznické aplikace
SystemLogs Dostupné LogType hodnoty jsou ConfigServer(jenom Basic/Standard), ServiceRegistry(všechny plány), ApiPortal(jenom plán Enterprise), (jenom plán Enterprise), ApplicationConfigurationService(jenom plán Enterprise) SpringCloudGateway a (jenom plán Enterprise) a SpringCloudGatewayOperator (jenom plán Enterprise).
Příchozí protokoly Protokoly příchozího přenosu dat všech aplikací zákazníka, pouze přístupové protokoly.
BuildLogs Sestavte protokoly všech aplikací zákazníka pro každou fázi sestavení.

Poznámka:

Kvůli ochraně aplikace před potenciálním únikem přihlašovacích údajů se veškerý obsah protokolu s přihlašovacími údaji nebo jinými citlivými informacemi ***maskuje . Například veškerý obsah protokolu s následujícími vzory se zpracovává jako citlivé informace a odpovídající hodnoty jsou maskované:

  • dbpass, password, key, secret, siga signature za ním : nebo =. Tyto vzory se obvykle zobrazují v parametrech adresy URL a výpisech datové části. Například 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 se stane 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=***
  • Kódované řetězce podobné tokenům JWT ve formátu: eyJxxxxxx.eyJxxxxxx

Pokud v protokolech najdete maskované hodnoty, nezapomeňte aktualizovat kód aplikace, aby se zabránilo úniku přihlašovacích údajů.

Metriky

Úplný seznam metrik najdete v části Možnosti metrik uživatelů v části Metriky pro Azure Spring Apps.

Začněte tím, že povolíte, aby jedna z těchto služeb přijímala data. Další informace o konfiguraci Log Analytics najdete v tématu Začínáme se službou Log Analytics ve službě Azure Monitor.

Konfigurace nastavení diagnostiky

  1. Na webu Azure Portal přejděte do vaší instance Azure Spring Apps.

  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 možností:

    • Archivace do účtu úložiště
    • Streamování do centra událostí
    • Odeslání do Log Analytics
    • Odeslání do partnerského řešení
  4. Zvolte kategorii protokolu a kategorii metrik, kterou chcete monitorovat, a pak zadejte dobu uchovávání informací (ve dnech). Doba uchovávání se vztahuje pouze na účet úložiště.

  5. Zvolte Uložit.

Poznámka:

Mezi vygenerovanými protokoly nebo metrikami a zobrazením v účtu úložiště, v centru událostí nebo log Analytics může docházet k mezerě až 15 minut. Pokud se instance Azure Spring Apps odstraní nebo přesune, operace nebude kaskádově převést prostředky nastavení diagnostiky. Prostředky nastavení diagnostiky musí být před operací s nadřazenou instancí Azure Spring Apps odstraněny ručně. Jinak platí, že pokud je nová instance Azure Spring Apps zřízená se stejným ID prostředku jako odstraněná instance nebo pokud se instance Azure Spring Apps přesune zpět, předchozí prostředky nastavení diagnostiky ho dál rozšiřují.

Zobrazení protokolů a metrik

Existují různé metody zobrazení protokolů a metrik, jak je popsáno v následujících nadpisech.

Použití podokna Protokoly

  1. Na webu Azure Portal přejděte do vaší instance Azure Spring Apps.

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

  3. Do vyhledávacího pole Tabulky použijte jeden z následujících dotazů:

    • Pokud chcete zobrazit protokoly, zadejte dotaz, například následující příklad:

      AppPlatformLogsforSpring
      | limit 50
      
    • Pokud chcete zobrazit metriky, zadejte dotaz, například následující příklad:

      AzureMetrics
      | limit 50
      
  4. Pokud chcete zobrazit výsledek hledání, vyberte Spustit.

Použití Log Analytics

  1. Na webu Azure Portal v levém 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. Do vyhledávacího pole Tabulky použijte jeden z následujících dotazů:

    • Pokud chcete zobrazit protokoly, zadejte dotaz, například následující příklad:

      AppPlatformLogsforSpring
      | limit 50
      
    • Pokud chcete zobrazit metriky, zadejte dotaz, například následující příklad:

    AzureMetrics
    | limit 50
    
  5. Pokud chcete zobrazit výsledek hledání, vyberte Spustit.

  6. Protokoly konkrétní aplikace nebo instance můžete prohledávat nastavením podmínky filtru, jak je znázorněno v následujícím příkladu:

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

    Poznámka:

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

Další informace o dotazovacím jazyce, který se používá v Log Analytics, najdete v dotazech na protokoly služby Azure Monitor. Pokud chcete dotazovat všechny protokoly Log Analytics z centralizovaného klienta, projděte si Azure Data Explorer.

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

  1. Na webu Azure Portal najděte účty úložiště v levém navigačním panelu nebo vyhledávacím poli.
  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 aplikací, vyhledejte kontejner s názvem insights-logs-applicationconsole.
  5. Pokud chcete zkontrolovat metriky aplikací, vyhledejte kontejner s názvem insights-metrics-pt1m.

Další informace o odesílání diagnostickýchinformacích

Použití centra událostí

  1. Na webu Azure Portal najděte službu Event Hubs v levém navigačním panelu nebo vyhledávacím poli.

  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 aplikací, vyhledejte centrum událostí označované jako insights-logs-applicationconsole.

  5. Pokud chcete zkontrolovat metriky aplikací, vyhledejte centrum událostí označované jako insights-metrics-pt1m.

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

Analýza protokolů

Azure Log Analytics běží s modulem Kusto, abyste mohli dotazovat protokoly na analýzu. Rychlý úvod k dotazování protokolů pomocí Kusto najdete v kurzu služby Log Analytics.

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

Zobrazení protokolů aplikací z Azure Spring Apps

Pokud chcete zkontrolovat seznam aplikačních protokolů z Azure Spring Apps seřazený podle času s nejnovějšími zobrazenými protokoly, 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 neseřazené položky protokolu, které zmiňují 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"

Tento dotaz použijte k vyhledání chyb nebo úpravě termínů dotazu a vyhledejte 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

Tento dotaz použijte k vyhledání odpovědi Statusa RequestTimedalších vlastností protokolů příchozího přenosu dat tohoto 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 <request_ID>, spusťte následující dotaz:

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

Zobrazení položek protokolu sestavení pro konkrétní aplikaci

Pokud chcete zkontrolovat položky protokolu pro konkrétní aplikaci během procesu sestavení, spusťte následující dotaz:

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

Zobrazení položek protokolu sestavení pro konkrétní aplikaci v konkrétní fázi sestavení

Pokud chcete zkontrolovat položky protokolu pro konkrétní aplikaci v konkrétní fázi sestavení, spusťte následující dotaz. <app-name> Zástupný symbol nahraďte názvem vaší aplikace. <build-stage> Zástupný symbol nahraďte jednou z následujících hodnot, které představují fáze procesu sestavení: prepare, detect, restore, analyze, build, , nebo exportcompletion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

Zobrazení protokolů brány VMware Spring Cloud v plánu Enterprise

Pokud chcete zkontrolovat položky protokolu pro protokoly brány VMware Spring Cloud v plánu Enterprise, spusťte následující dotaz:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Další komponenta s názvem Spring Cloud Gateway Operator řídí životní cyklus brány Spring Cloud a tras. Pokud narazíte na nějaké problémy s trasou, která se neprojeví, zkontrolujte protokoly pro tuto komponentu. Pokud chcete zkontrolovat položky protokolu pro operátora brány VMware Spring Cloud v plánu Enterprise, spusťte následující dotaz:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Zobrazení protokolů služby Konfigurace aplikací pro Tanzu v plánu Enterprise

Pokud chcete zkontrolovat položky protokolu pro službu Application Configuration Service pro protokoly Tanzu v plánu Enterprise, spusťte následující dotaz:

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Zobrazení protokolů registru služby Tanzu v plánu Enterprise

Pokud chcete zkontrolovat položky protokolu pro protokoly registru služby Tanzu v plánu Enterprise, spusťte následující dotaz:

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Zobrazení portálu API pro protokoly VMware Tanzu v plánu Enterprise

Pokud chcete zkontrolovat položky protokolu pro portál API pro protokoly VMware Tanzu v plánu Enterprise, spusťte následující dotaz:

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Další informace o dotazování protokolů aplikace

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

Pohodlné vstupní body na webu Azure Portal

Pomocí následujících kroků přejděte do podokna Log Analytics s předdefinovanými dotazy:

  1. Přejděte na stránku Přehled vaší instance služby Azure Spring Apps a v navigačním podokně vyberte Aplikace .

  2. Vyhledejte cílovou aplikaci a pak vyberte místní nabídku.

  3. V místní místní nabídce vyberte Zobrazit protokoly.

    Snímek obrazovky webu Azure Portal se stránkou Aplikace se zvýrazněnou položkou místní nabídky Zobrazit protokoly

    Tato akce vás přejde do podokna Log Analytics s předdefinovanými dotazy.

K zobrazení protokolů existují další vstupní body. Můžete také najít tlačítko Zobrazit protokoly pro spravované komponenty, jako je Build Service a Service Registry.

Nejčastější dotazy

Návody převod víceřádkových trasování zásobníku Java na jeden řádek?

Existuje alternativní řešení pro převod trasování víceřádkového zásobníku na jeden řádek. Výstup protokolu Java můžete upravit tak, aby přeformátovat zprávy trasování zásobníku a nahradit znaky nového řádku tokenem. Pokud používáte knihovnu Java Logback, můžete zprávy trasování zásobníku přeformátovat následujícím způsobem %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>

Token pak můžete v Log Analytics nahradit znaky nového řádku, jak je znázorněno v následujícím příkladu:

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

Možná budete moct použít stejnou strategii pro jiné knihovny protokolů Java.

Další kroky