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:
Apri il portale di Azure.
Aprire l'istanza del servizio Azure Spring Apps.
Nel riquadro di spostamento selezionare Controllo di accesso (IAM).
Nella pagina Controllo di accesso (IAM) selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.
Nella pagina Aggiungi assegnazione di ruolo, nell'elenco Nome cercare e selezionare il ruolo di destinazione e quindi selezionare Avanti.
Selezionare Membri e quindi cercare e selezionare il nome utente.
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:
Selezionare l'istanza del servizio Azure Spring Apps distribuita nella rete virtuale e quindi selezionare Rete nel riquadro di spostamento.
Selezionare la scheda Inserimento rete virtuale.
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.
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 |