Share via


Strömma hanterade komponentloggar i Azure Spring Apps i realtid

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

Den här artikeln gäller för:❌ Basic/Standard ✔️ Enterprise

Den här artikeln beskriver hur du använder Azure CLI för att hämta realtidsloggar för hanterade komponenter för felsökning. Du kan också använda diagnostikinställningar för att analysera diagnostikdata i Azure Spring Apps. Mer information finns i Analysera loggar och mått med diagnostikinställningar.

Information om strömmande loggar för program i Azure Spring Apps finns i Stream Azure Spring Apps-programkonsolloggar i realtid.

Förutsättningar

  • Azure CLI med Azure Spring Apps-tillägget version 1.19.0 eller senare. Du kan installera tillägget med hjälp av följande kommando: az extension add --name spring.

Hanterade komponenter som stöds

I följande tabell visas de hanterade komponenter som stöds för närvarande, tillsammans med deras underkomponenter:

Hanterad komponent Delkomponenter
Programkonfigurationstjänst application-configuration-service
flux-source-controller (Stöds i ACS Gen2-version)
Spring Cloud Gateway spring-cloud-gateway
spring-cloud-gateway-operator

Du kan använda följande kommando för att visa alla underkomponenter:

az spring component list
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name>

Tilldela en Azure-roll

Om du vill strömma loggar för hanterade komponenter måste du ha tilldelats relevanta Azure-roller. I följande tabell visas de roller som krävs och de åtgärder som dessa roller beviljas behörigheter för:

Hanterad komponent Nödvändig roll Operations
Programkonfigurationstjänst Loggläsarroll för Azure Spring Apps-programkonfigurationstjänsten Microsoft.AppPlatform/Spring/ApplicationConfigurationService/logstream/action
Spring Cloud Gateway Loggläsarroll för Azure Spring Apps Spring Cloud Gateway Microsoft.AppPlatform/Spring/SpringCloudGateway/logstream/action

Använd följande steg för att tilldela en Azure-roll med hjälp av Azure-portalen:

  1. Öppna Azure Portal.

  2. Öppna din Azure Spring Apps-tjänstinstans.

  3. I navigeringsfönstret väljer du Åtkomstkontroll (IAM).

  4. På sidan Åtkomstkontroll (IAM) väljer du Lägg till och sedan Lägg till rolltilldelning.

    Skärmbild av Azure-portalen som visar sidan Åtkomstkontroll (IAM) med alternativet Lägg till rolltilldelning markerat.

  5. På sidan Lägg till rolltilldelning i listan Namn söker du efter och väljer målrollen och väljer sedan Nästa.

    Skärmbild av Azure-portalen som visar sidan Lägg till rolltilldelning med rollnamnet Loggläsare för programkonfigurationstjänsten markerat.

  6. Välj Medlemmar och sök sedan efter och välj ditt användarnamn.

  7. Välj Granska + tilldela.

Visa en lista över alla instanser i en komponent

Använd följande kommando för att lista alla instanser i en komponent:

az spring component instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --component <component-name>

Om du till exempel vill visa en lista över alla instanser i flux-source-controller ACS Gen2-versionen använder du följande kommando:

az spring component instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --component flux-source-controller

Visa svansloggar

Det här avsnittet innehåller exempel på hur du använder Azure CLI för att skapa tail logs.

Visa tail-loggar för en specifik instans

Om du vill visa tail-loggarna för en specifik instans använder du az spring component logs kommandot med -i/--instance argumentet, som du ser i nästa avsnitt.

Visa tail-loggar för en instans av application-configuration-service

Använd följande kommando för att visa svansloggarna för application-configuration-service:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name application-configuration-service \
    --instance <instance-name>

För ACS Gen2 returnerar kommandot loggar som liknar följande exempel:

...
2023-12-18T07:09:54.020Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8090 (https)
2023-12-18T07:09:54.116Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting service [Tomcat]
2023-12-18T07:09:54.117Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:54.522Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:54.524Z  INFO  16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 14100 ms
2023-12-18T07:09:56.920Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8090 (https) with context path ''
2023-12-18T07:09:57.528Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2023-12-18T07:09:57.529Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting service [Tomcat]
2023-12-18T07:09:57.529Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Starting Servlet engine: [Apache Tomcat/10.1.12]
2023-12-18T07:09:57.629Z  INFO  16715 --- [main] org.apache.juli.logging.DirectJDKLog     : Initializing Spring embedded WebApplicationContext
2023-12-18T07:09:57.629Z  INFO  16715 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 603 ms
2023-12-18T07:09:57.824Z  INFO  16715 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2023-12-18T07:09:58.127Z  INFO  16715 --- [main] o.springframework.boot.StartupInfoLogger : Started ReconcilerApplication in 21.005 seconds (process running for 22.875)
...

Visa tail-loggar för en instans av flux-source-controller

Använd följande kommando för att visa svansloggarna för flux-source-controller:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name flux-source-controller \
    --instance <instance-name>

Kommandot returnerar loggar som liknar följande exempel:

...
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"controller-runtime.metrics","msg":"Metrics server is starting to listen","addr":":8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","logger":"setup","msg":"starting manager"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","path":"/metrics","kind":"metrics","addr":"[::]:8080"}
{"level":"info","ts":"2023-12-18T07:07:54.615Z","msg":"Starting server","kind":"health probe","addr":"[::]:9440"}
{"level":"info","ts":"2023-12-18T07:07:54.817Z","logger":"runtime","msg":"attempting to acquire leader lease flux-system/source-controller-leader-election...\n"}
{"level":"info","ts":"2023-12-18T07:07:54.830Z","logger":"runtime","msg":"successfully acquired lease flux-system/source-controller-leader-election\n"}
...

Visa tail-loggar för en instans av spring-cloud-gateway

Använd följande kommando för att visa svansloggarna för spring-cloud-gateway:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name spring-cloud-gateway \
    --instance <instance-name>

Kommandot returnerar loggar som liknar följande exempel:

...
2023-12-11T14:13:40.310Z  INFO 1 --- [           main] i.p.s.c.g.s.SsoDeactivatedConfiguration  : SSO is deactivated, setting up default security filters
2023-12-11T14:13:40.506Z  INFO 1 --- [           main] .h.HazelcastReactiveSessionConfiguration : Configuring Hazelcast as a session management storage
2023-12-11T14:13:51.008Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8443
2023-12-11T14:13:51.810Z  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 7 endpoint(s) beneath base path '/actuator'
2023-12-11T14:13:52.410Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8090
2023-12-11T14:13:52.907Z  INFO 1 --- [           main] i.p.s.c.g.r.h.HazelcastRateLimitsRemover : Removing Hazelcast map 'GLOBAL_RATE_LIMIT' with rate limit information
2023-12-11T14:13:52.912Z  INFO 1 --- [           main] i.p.s.cloud.gateway.GatewayApplication   : Started GatewayApplication in 36.084 seconds (process running for 38.651)
...

Visa tail-loggar för en instans av spring-cloud-gateway-operator

Använd följande kommando för att visa svansloggarna för spring-cloud-gateway-operator:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name spring-cloud-gateway-operator \
    --instance <instance-name>

Kommandot returnerar loggar som liknar följande exempel:

...
2023-12-01T08:37:05.080Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : Starting OperatorApplication v2.0.6 using Java 17.0.7 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2023-12-01T08:37:05.157Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : No active profile set, falling back to 1 default profile: "default"
2023-12-01T08:37:14.379Z  INFO 1 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2023-12-01T08:37:15.274Z  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
2023-12-01T08:37:15.366Z  INFO 1 --- [           main] c.v.t.s.OperatorApplication              : Started OperatorApplication in 11.489 seconds (process running for 12.467)
...

Visa tail-loggar för alla instanser i ett kommando

Om du vill visa tail-loggarna för alla instanser använder du --all-instances argumentet, som du ser i följande kommando. Instansnamnet är prefixet för varje loggrad. När det finns flera instanser skrivs loggar ut i batch för varje instans, så loggar för en instans interfolieras inte med loggarna för en annan instans.

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --all-instances

Strömma nya loggar kontinuerligt

Som standard az spring component logs skriver endast ut befintliga loggar som strömmas till konsolen och avslutas sedan. Om du vill strömma nya loggar lägger du till -f/--follow argumentet.

När du använder -f/--follow alternativet för att skugga snabbloggar skickar Azure Spring Apps loggströmningstjänst pulsslagsloggar till klienten varje minut såvida inte komponenten hela tiden skriver loggar. Pulsslagsloggmeddelanden använder följande format: 2023-12-18 09:12:17.745: No log from server.

Strömma loggar för en specifik instans

Använd följande kommando för att strömma loggar för en specifik instans:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --instance <instance-name> \
    --follow

Strömma loggar för alla instanser

Använd följande kommando för att strömma loggar för alla instanser:

az spring component logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <component-name> \
    --all-instances \
    --follow

När du strömmar loggar för flera instanser i en komponent, sammanlänkar loggarna för en instans med andras loggar.

Strömma loggar i en instans av virtuell nätverksinmatning

För en Azure Spring Apps-instans som distribueras i ett anpassat virtuellt nätverk kan du som standard komma åt loggströmning från ett privat nätverk. Mer information finns i Distribuera Azure Spring Apps i ett virtuellt nätverk

Med Azure Spring Apps kan du också komma åt hanterade komponentloggar i realtid från ett offentligt nätverk.

Kommentar

När du aktiverar loggströmningsslutpunkten i det offentliga nätverket läggs en offentlig inkommande IP-adress till i det virtuella nätverket. Var försiktig om detta är ett problem för dig.

Använd följande steg för att aktivera en slutpunkt för loggströmning i det offentliga nätverket:

  1. Välj den Azure Spring Apps-tjänstinstans som distribuerats i ditt virtuella nätverk och välj sedan Nätverk på navigeringsmenyn.

  2. Välj fliken Vnet-inmatning .

  3. Växla status för Dataplane-resurser i det offentliga nätverket till Aktivera för att aktivera en logguppspelningsslutpunkt i det offentliga nätverket. Den här processen tar några minuter.

    Skärmbild av Azure-portalen som visar sidan Nätverk med fliken Vnet-inmatning markerad och avsnittet Felsökning markerat.

När du har aktiverat loggströmmens offentliga slutpunkt kan du komma åt loggarna för hanterade komponenter från ett offentligt nätverk på samma sätt som du skulle ha åtkomst till en normal instans.

Skydda trafik till den offentliga slutpunkten för loggströmning

Loggströmning för hanterade komponenter använder Azure RBAC för att autentisera anslutningarna till komponenterna. Därför kan endast användare som har rätt roller komma åt loggarna.

Skydda slutpunkten genom att filtrera nätverkstrafik till din tjänst med en nätverkssäkerhetsgrupp för att säkerställa säkerheten för dina hanterade komponenter när du exponerar en offentlig slutpunkt för dem. Mer information finns i Självstudie: Filtrera nätverkstrafik med en nätverkssäkerhetsgrupp med hjälp av Azure-portalen. En nätverkssäkerhetsgrupp innehåller säkerhetsregler som tillåter eller nekar inkommande nätverkstrafik till, eller utgående nätverkstrafik från, flera typer av Azure-resurser. För varje regel kan du ange källa och mål, port och protokoll.

Kommentar

Om du inte kan komma åt loggar för hanterade komponenter i instansen av den virtuella nätverksinmatningen från Internet när du har aktiverat en offentlig loggströmslutpunkt kontrollerar du nätverkssäkerhetsgruppen för att se om du har tillåtit sådan inkommande trafik.

I följande tabell visas ett exempel på en grundläggande regel som vi rekommenderar. Du kan använda kommandon som nslookup med slutpunkten <service-name>.private.azuremicroservices.io för att hämta mål-IP-adressen för en tjänst.

Prioritet Namn Port Protokoll Källa Mål Action
100 Regelnamn 80 TCP Internet Tjänstens IP-adress Tillåt
110 Regelnamn 443 TCP Internet Tjänstens IP-adress Tillåt

Nästa steg