Questo documento descrive come attivare, generare e visualizzare log da Cloud Logging per un job batch.
Puoi utilizzare i log per ottenere informazioni utili per analizzare i tuoi job. Ad esempio, i log possono aiutarti a eseguire il debug dei job non riusciti.
È importante notare che i log vengono generati solo dopo l'avvio di un job e solo se il logging è stato attivato per il job. Se devi analizzare un job senza log, visualizza gli eventi di stato.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la guida introduttiva all'utilizzo di Batch e attivalo completando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per analizzare un job utilizzando i log, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per creare un job:
-
Batch Job Editor (
roles/batch.jobsEditor
) nel progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito
-
Batch Job Editor (
-
Per visualizzare i log:
Visualizzatore log (
roles/logging.viewer
) nel progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Per creare un job:
Abilita il logging per un job
Per consentire la generazione di log per un job, abilita i log da Cloud Logging quando crei il job:
- Se crei un job utilizzando la console Google Cloud, i log di Cloud Logging sono sempre attivati.
Se crei un job utilizzando l'interfaccia a riga di comando gcloud o l'API Batch, i log di Cloud Logging sono disattivati per impostazione predefinita. Per attivare i log di Cloud Logging, includi la seguente configurazione per il campo
logsPolicy
durante la creazione del job:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Scrivere e generare log per un job
Quando i log di Cloud Logging sono attivati per un job, Cloud Logging genera automaticamente tutti i log scritti per il job. Nello specifico, i job batch possono avere i seguenti tipi di log:
Log agente (
batch_agent_logs
): log delle attività dell'agente di servizio Batch.Batch scrive automaticamente i log degli agenti per ogni job per cui è stato attivato il logging.
Log dei task (
batch_task_logs
): i log per tutti i dati per i quali hai configurato i file eseguibili di un job in modo che vengano scritti nello stream di output standard (stdout
) o nello stream di errore standard (stderr
).Se vuoi, puoi scrivere log delle attività per ogni job per il quale è stato attivato il logging.
Visualizzare i log di un job
Puoi visualizzare i log di un job utilizzando la console Google Cloud, l'interfaccia a riga di comando gcloud, l'API Logging, Go, Java, Python o C++.
Console
Per visualizzare i log di un job utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Elenco di job.
Nella colonna Nome job, fai clic sul nome di un job. Viene visualizzata la pagina Dettagli job.
Fai clic sulla scheda Log. Batch mostra tutti i log associati al job.
(Facoltativo) Per filtrare i log, esegui una delle seguenti operazioni:
Inserisci un filtro nel campo Filtro.
Nell'elenco Gravità, seleziona una gravità.
Fai clic su creare una query in Esplora log utilizzando i parametri di filtro batch.
Visualizza in Esplora log per
gcloud
Per visualizzare i log utilizzando gcloud CLI, utilizza il
comando gcloud logging read
:
gcloud logging read "QUERY"
dove QUERY
è una query per i log batch che contiene parametri di filtro batch.
API
Per visualizzare i log utilizzando l'API Logging, utilizza il
metodo entries.list
:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
Sostituisci quanto segue:
PROJECT_ID
: il ID progetto del tuo progetto.QUERY
: una query per i log batch che contiene parametri di filtro batch.
Vai
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Go.
Per autenticarti a Batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Java.
Per autenticarti a Batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch Python.
Per autenticarti a Batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Batch C++.
Per autenticarti a Batch, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Filtra i log batch
Puoi filtrare i log batch scrivendo una query che includa uno o più dei seguenti parametri di filtro e zero o più operatori booleani (AND
, OR
e NOT
).
Per filtrare i log di un job specifico, specifica l'ID univoco (UID) del job:
labels.job_uid=JOB_UID
dove
JOB_UID
è l'UID del job. Per recuperare l'UID di un job, visualizza i dettagli del job.Per filtrare in base a un tipo specifico di log batch, specifica il tipo di log:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
Sostituisci quanto segue:
PROJECT_ID
: il ID progetto del progetto per cui vuoi visualizzare i log.BATCH_LOG_TYPE
: il tipo di log batch che vuoi visualizzare,batch_task_logs
per i log delle attività obatch_agent_logs
per i log degli agenti.
Per filtrare i log con eventi di stato personalizzati, specifica che il log deve definire il campo
jsonPayload.batch/custom/event
:jsonPayload.batch"/"custom"/"event!=NULL_VALUE
Per filtrare i log di una o più gravità specifiche, specifica il seguente confronto:
severityCOMPARISON_OPERATORSEVERITY_ENUM
Sostituisci quanto segue:
COMPARISON_OPERATOR
: un operatore di confronto, ad esempio>=
.SEVERITY_ENUM
: un valore enumeratoLogSeverity
che descrive la gravità di un log, ad esempioERROR
.
Per altre opzioni di filtro, consulta la documentazione del linguaggio di query di Cloud Logging.
Passaggi successivi
- Scopri di più sulla risoluzione dei problemi.
- Scopri di più su Cloud Logging.
- Scopri come scrivere i log delle attività.
- Scopri come esportare le informazioni sui job.
- Scopri come eliminare i job.