Condividi tramite


Trasmettere i log dei processi di Azure Spring Apps in tempo reale (anteprima)

Nota

I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.

Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.

Questo articolo si applica a: ❎ Basic/Standard ✅ Enterprise

Questo articolo descrive come usare l'interfaccia della riga di comando di Azure per ottenere i log in tempo reale dei processi per la risoluzione dei problemi. È anche possibile usare le impostazioni di diagnostica per analizzare i dati di diagnostica in Azure Spring Apps. Per altre informazioni, vedere Analizzare log e metriche con le impostazioni di diagnostica. Per altre informazioni sui log di streaming, vedere Trasmettere i log della console dell'applicazione di Azure Spring Apps in tempo reale e trasmettere i log dei componenti gestiti di Azure Spring Apps in tempo reale.

Prerequisiti

  • Interfaccia della riga di comando di Azure con l'estensione Azure Spring Apps, versione 1.24.0 o successiva. È possibile installare l'estensione usando il comando seguente: az extension add --name spring.

Assegnare un ruolo di Azure

Per trasmettere i log dei processi, è necessario avere i ruoli di Azure pertinenti assegnati all'utente. Nella tabella seguente sono elencati il ruolo richiesto e le operazioni per le quali viene concesso questo ruolo:

Ruolo necessario Operazioni
Ruolo lettore log processi di Azure Spring Apps Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

Usare la procedura seguente per assegnare un ruolo di Azure usando il portale di Azure:

  1. Apri il portale di Azure.

  2. Aprire l'istanza del servizio Azure Spring Apps.

  3. Nel riquadro di spostamento selezionare Controllo di accesso (IAM).

  4. Nella pagina Controllo di accesso (IAM) selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.

    Screenshot del portale di Azure che mostra la pagina Controllo di accesso (IAM) con l'opzione Aggiungi assegnazione di ruolo evidenziata.

  5. Nella pagina Aggiungi assegnazione di ruolo, nell'elenco Nome cercare e selezionare il ruolo di destinazione e quindi selezionare Avanti.

    Screenshot del portale di Azure che mostra la pagina Aggiungi assegnazione di ruolo con il nome del ruolo lettore log processi di Azure Spring Apps evidenziato.

  6. Selezionare Membri e quindi cercare e selezionare il nome utente.

  7. Seleziona Rivedi + assegna.

Visualizzare i log della parte finale

Questa sezione fornisce esempi di uso dell'interfaccia della riga di comando di Azure per produrre i log della parte finale.

Visualizzare i log della parte finale per un'istanza specifica

Ogni volta che viene attivato un processo, viene creata una nuova esecuzione del processo. Inoltre, a seconda dell'impostazione parallelismo per il processo, diverse repliche o istanze vengono eseguite in parallelo.

Usare il comando seguente per elencare tutte le istanze di un processo:

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

È possibile ottenere tutti i nomi di istanza dell'esecuzione del processo dall'output.

Per visualizzare i log della parte finale per un'istanza specifica, usare il az spring job logs comando con l'argomento -i/--instance , come illustrato nell'esempio seguente:

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name>

Visualizzare i log della parte finale per tutte le istanze in un unico comando

Per visualizzare i log della parte finale per tutte le istanze, usare l'argomento --all-instances , come illustrato nell'esempio seguente. Il nome dell'istanza è il prefisso di ogni riga di log. Quando sono presenti più istanze, i log vengono stampati in batch per ogni istanza. In questo modo i log di un'istanza non vengono interleavati con i log di un'altra istanza.

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

Trasmettere continuamente nuovi log

Per impostazione predefinita, az spring job logs stampa solo i log esistenti trasmessi alla console e quindi esce. Se si desidera trasmettere nuovi log, aggiungere l'argomento -f/--follow .

Quando si usa l'opzione -f/--follow per la coda dei log istantanei, il servizio di streaming dei log di Azure Spring Apps invia i log heartbeat al client ogni minuto, a meno che il processo non scriva costantemente i log. I messaggi del log heartbeat usano il formato seguente: 2023-12-18 09:12:17.745: No log from server.

Trasmettere i log per un'istanza specifica

Usare i comandi seguenti per ottenere i nomi delle istanze e trasmettere i log per un'istanza specifica:

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

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

Trasmettere i log per tutte le istanze

Usare il comando seguente per trasmettere i log per tutte le istanze:

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

Quando si trasmetteno i log per più istanze in un'esecuzione del processo, i log di un'istanza si interleave con i log di altri utenti.

Trasmettere i log in un'istanza di inserimento di rete virtuale

Per un'istanza di Azure Spring Apps distribuita in una rete virtuale personalizzata, è possibile accedere allo streaming dei log per impostazione predefinita da una rete privata. Per altre informazioni, vedere Distribuire Azure Spring Apps in una rete virtuale

Azure Spring Apps consente anche di accedere ai log dei processi in tempo reale da una rete pubblica.

Nota

L'abilitazione dell'endpoint di streaming dei log nella rete pubblica aggiunge un indirizzo IP in ingresso pubblico alla rete virtuale. Assicurarsi di prestare attenzione se si tratta di una preoccupazione per te.

Usare la procedura seguente per abilitare un endpoint di streaming dei log nella rete pubblica:

  1. Selezionare l'istanza del servizio Azure Spring Apps distribuita nella rete virtuale e quindi selezionare Rete nel riquadro di spostamento.

  2. Selezionare la scheda Inserimento rete virtuale.

  3. Cambiare lo stato delle risorse di Dataplane nella rete pubblica in Abilita per abilitare un endpoint di streaming dei log nella rete pubblica. Questo processo richiede qualche minuto.

    Screenshot del portale di Azure che mostra la pagina Rete con la scheda Vnet injection selezionata e la sezione Risoluzione dei problemi evidenziata.

Dopo aver abilitato l'endpoint pubblico del flusso di log, è possibile accedere ai log dei processi da una rete pubblica esattamente come si accede a un'istanza normale.

Proteggere il traffico verso l'endpoint pubblico dello streaming di log

Il flusso di log per i processi usa il controllo degli accessi in base al ruolo di Azure per autenticare le connessioni ai processi. Di conseguenza, solo gli utenti che dispongono dei ruoli appropriati possono accedere ai log.

Per garantire la sicurezza dei processi quando si espone un endpoint pubblico, proteggere l'endpoint filtrando il traffico di rete al servizio con un gruppo di sicurezza di rete. Per altre informazioni vedere Esercitazione: Filtrare il traffico di rete con un gruppo di sicurezza di rete usando il portale di Azure. Un gruppo di sicurezza di rete contiene regole di sicurezza che consentono o rifiutano il traffico di rete in ingresso o in uscita da diversi tipi di risorse di Azure. Per ogni regola, è possibile specificare origine e destinazione, porta e protocollo.

Nota

Se non è possibile accedere ai log dei processi nell'istanza di inserimento della rete virtuale da Internet dopo aver abilitato un endpoint pubblico del flusso di log, controllare il gruppo di sicurezza di rete per verificare se è stato consentito tale traffico in ingresso.

Nella tabella seguente viene illustrato un esempio di regola di base consigliata. È possibile usare comandi come nslookup con l'endpoint <service-name>.private.azuremicroservices.io per ottenere l'indirizzo IP di destinazione di un servizio.

Priorità Nome Porta Protocollo Source (Sorgente) Destination Azione
100 Nome regola 80 TCP Internet Indirizzo IP del servizio Consenti
110 Nome regola 443 TCP Internet Indirizzo IP del servizio Consenti

Passaggi successivi