Questo documento descrive come abilitare, generare e visualizzare i log da Cloud Logging per un job Batch.
Puoi utilizzare i log per ottenere informazioni utili per l'analisi dei job. Ad esempio, i log possono aiutarti a eseguire il debug dei job non riusciti.
In particolare, i log vengono generati solo dopo l'avvio di un job e solo se il logging è stato abilitato per il job. Se devi analizzare un job senza log, visualizza gli eventi di stato invece.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la pagina Inizia a utilizzare Batch e abilita Batch 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) sul progetto - Utente service account (
roles/iam.serviceAccountUser) sul service account del job, che per impostazione predefinita è il service account predefinito di Compute Engine
- Batch Job Editor (
-
Per visualizzare i log:
Logs Viewer (
roles/logging.viewer) sul progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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:
Abilitare il logging per un job
Per consentire la generazione dei log per un job, abilita i log di Cloud Logging quando crei il job:
- Se crei un job utilizzando la Google Cloud console, i log di Cloud Logging sono sempre abilitati.
Se crei un job utilizzando gcloud CLI o l'API Batch, i log di Cloud Logging sono disabilitati per impostazione predefinita. Per abilitare i log di Cloud Logging, includi la seguente configurazione per il campo
logsPolicydurante la creazione del job:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Scrivere e generare log per un job
Quando i log di Cloud Logging sono abilitati per un job, Cloud Logging genera automaticamente tutti i log scritti per il job. In particolare, i job Batch possono avere i seguenti tipi di log:
Log dell'agente (
batch_agent_logs): log delle attività del service agent Batch.Batch scrive automaticamente i log dell'agente per ogni job per cui è stato abilitato il logging.
Log delle attività (
batch_task_logs): log di tutti i dati che hai configurato per la scrittura degli eseguibili di un job nel flusso di output standard (stdout) o nel flusso di errore standard (stderr).Puoi scrivere facoltativamente i log delle attività per ogni job per cui è stato abilitato il logging.
Visualizzare i log di un job
Puoi visualizzare i log di un job utilizzando la Google Cloud console, gcloud CLI, l'API Logging, Go, Java, Python o C++.
Console
Per visualizzare i log di un job utilizzando la Google Cloud console:
Nella Google Cloud console, vai alla pagina Elenco 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 Visualizza in Esplora log per creare una query in Esplora log utilizzando i parametri di filtro Batch.
gcloud
Per visualizzare i log utilizzando gcloud CLI, utilizza il
gcloud logging read comando:
gcloud logging read "QUERY"
dove QUERY è una
query per i log Batch che contiene
i parametri di filtro Batch.
API
Per visualizzare i log utilizzando l'API Logging, utilizza il
entries.list metodo:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
Sostituisci quanto segue:
PROJECT_ID: l' ID progetto del tuo progetto.QUERY: una query per i log Batch che contiene i parametri di filtro Batch.
Vai
Go
Per saperne di più, consulta la documentazione di riferimento dell'API GoBatch.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Batch Java API.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Python
Per saperne di più, consulta la documentazione di riferimento dell' API Python Batch.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C++
C++
Per saperne di più, consulta la documentazione di riferimento dell'C++ API Batch.
Per eseguire l'autenticazione in Batch, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Filtrare 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_UIDdove
JOB_UIDè l'UID del job. Per ottenere l'UID di un job, visualizzane i dettagli.Per filtrare un tipo specifico di log Batch, specifica il tipo di log:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPESostituisci quanto segue:
PROJECT_ID: l' ID progetto del progetto per il quale vuoi visualizzare i log.BATCH_LOG_TYPE: il tipo di log Batch che vuoi visualizzare,batch_task_logsper i log delle attività obatch_agent_logsper i log dell'agente.
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_VALUEPer filtrare i log di una o più gravità specifiche, specifica il seguente confronto:
severityCOMPARISON_OPERATORSEVERITY_ENUMSostituisci quanto segue:
COMPARISON_OPERATOR: un operatore di confronto, ad esempio>=.SEVERITY_ENUM: un'LogSeverityenum, che descrive la gravità di un log, ad esempioERROR.
Per ulteriori 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.