Ce document explique comment activer, générer et afficher les journaux de Cloud Logging pour un job par lot Batch.
Vous pouvez utiliser les journaux pour obtenir des informations utiles pour analyser vos tâches. Par exemple, les journaux peuvent vous aider à déboguer les tâches ayant échoué.
Notez que les journaux ne sont générés qu'après le démarrage d'une tâche et uniquement si la journalisation a été activée pour la tâche. Si vous devez analyser une tâche sans journaux, consultez plutôt les événements d'état.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les prérequis pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour analyser une tâche à l'aide des journaux, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour créer une tâche :
- Éditeur de tâches Batch (
roles/batch.jobsEditor) sur le projet - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur le compte de service de la tâche, qui est par défaut le compte de service Compute Engine par défaut
- Éditeur de tâches Batch (
-
Pour afficher les journaux:
Lecteur de journaux (
roles/logging.viewer) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
-
Pour créer une tâche :
Activer la journalisation pour une tâche
Pour autoriser la génération de journaux pour une tâche, activez les journaux de Cloud Logging lorsque vous créez la tâche :
- Si vous créez une tâche à l'aide de la Google Cloud console, les journaux de Cloud Logging sont toujours activés.
Si vous créez une tâche à l'aide de gcloud CLI ou de l'API Batch, les journaux de Cloud Logging sont désactivés par défaut. Pour activer les journaux de Cloud Logging, incluez la configuration suivante pour le champ
logsPolicylors de la création de la tâche :{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Écrire et générer des journaux pour une tâche
Lorsque les journaux de Cloud Logging sont activés pour une tâche, Cloud Logging génère automatiquement tous les journaux écrits pour la tâche. Plus précisément, les tâches Batch peuvent avoir les types de journaux suivants :
Journaux d'agent (
batch_agent_logs) : journaux des activités de l'agent de service Batch.Batch écrit automatiquement les journaux d'agent pour chaque tâche pour laquelle la journalisation est activée.
Journaux de tâches (
batch_task_logs) : journaux de toutes les données que vous avez configurées pour que les exécutables d'une tâche soient écrits dans le flux de sortie standard (stdout) ou le flux d'erreur standard (stderr).Vous pouvez éventuellement écrire des journaux de tâches pour chaque tâche pour laquelle la journalisation est activée.
Afficher les journaux d'un job
Vous pouvez afficher les journaux d'une tâche à l'aide de la Google Cloud console, de gcloud CLI, de l'API Logging, de Go, de Java, de Python ou de C++.
Console
Pour afficher les journaux d'une tâche à l'aide de la Google Cloud console, procédez comme suit :
Dans la Google Cloud console, accédez à la page Job list (Liste des tâches).
Dans la colonne Job name (Nom de la tâche), cliquez sur le nom d'une tâche. La page Job details (Détails de la tâche) s'ouvre.
Cliquez sur l'onglet Logs (Journaux). Batch affiche tous les journaux associés à la tâche.
Facultatif : Pour filtrer les journaux, effectuez l'une des opérations suivantes :
Saisissez un filtre dans le Filter (Filtrer) field.
Dans la liste Severity (Gravité), sélectionnez une gravité.
Cliquez sur View in Logs Explorer pour créer une requête dans l' explorateur de journaux à l'aide des paramètres de filtre Batch.
gcloud
Pour afficher les journaux à l'aide de gcloud CLI, utilisez la
gcloud logging read commande :
gcloud logging read "QUERY"
où QUERY est une
requête pour les journaux Batch qui contient
des paramètres de filtre Batch.
API
Pour afficher les journaux à l'aide de l'API Logging, utilisez la
entries.list méthode :
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet.QUERY: requête pour les journaux Batch qui contient des paramètres de filtre Batch.
Go
Go
Pour en savoir plus, consultez la documentation de référence sur l'Go API Batch.
Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Java
Pour en savoir plus, consultez la documentation de référence sur l' API BatchJava.
Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Python
Pour en savoir plus, consultez la documentation de référencePython sur l'API Batch.
Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C++
C++
Pour en savoir plus, consultez la documentation de référence sur l' API Batch C++.
Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Filtrer les journaux Batch
Vous pouvez filtrer les journaux Batch en écrivant une requête
qui inclut un ou plusieurs des paramètres de filtre suivants et zéro ou plusieurs
opérateurs booléens (AND, OR et NOT).
Pour filtrer les journaux d'une tâche spécifique, spécifiez l'ID unique de la tâche (UID) :
labels.job_uid=JOB_UIDoù
JOB_UIDest l'UID de la tâche. Pour obtenir l'UID d'une tâche, consultez les détails de la tâche.Pour filtrer un type spécifique de journaux Batch, spécifiez le type de journal :
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPERemplacez les éléments suivants :
PROJECT_ID: ID du projet pour lequel vous souhaitez afficher les journaux.BATCH_LOG_TYPE: type de journaux Batch que vous souhaitez afficher,batch_task_logspour les journaux de tâches oubatch_agent_logspour les journaux d'agent.
Pour filtrer les journaux avec des événements d'état personnalisés, spécifiez que le journal doit définir le champ
jsonPayload.batch/custom/event:jsonPayload.batch"/"custom"/"event!=NULL_VALUEPour filtrer les journaux d'un ou de plusieurs niveaux de gravité spécifiques, spécifiez la comparaison suivante :
severityCOMPARISON_OPERATORSEVERITY_ENUMRemplacez les éléments suivants :
COMPARISON_OPERATOR: un opérateur de comparaison, par exemple>=.SEVERITY_ENUM: énumérationLogSeverity, qui décrit la gravité d'un journal, par exempleERROR.
Pour plus d'options de filtre, consultez la documentation sur le langage de requête Cloud Logging.
Étape suivante
- En savoir plus sur le dépannage.
- En savoir plus sur Cloud Logging.
- Découvrez comment écrire des journaux de tâches.
- Découvrez comment exporter des informations sur les tâches.
- Découvrez comment supprimer des tâches.