Ce document explique comment activer, générer et afficher des journaux à partir de Cloud Logging pour une tâche par lot.
Les journaux vous permettent d'obtenir des informations utiles pour l'analyse de vos tâches. Par exemple, les journaux peuvent vous aider à déboguer les jobs ayant échoué.
En particulier, 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 celle-ci. Si vous devez analyser une tâche sans journaux, affichez plutôt les événements d'état.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez la page Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations dont vous avez besoin pour analyser un job à l'aide des journaux, demandez à votre administrateur de vous attribuer les rôles IAM suivants:
-
Pour créer une tâche, procédez comme suit :
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service du job, qui est par défaut le compte de service Compute Engine par défaut
-
Éditeur de tâches par lot (
-
Pour afficher les journaux : Visionneuse de journaux (
roles/logging.viewer
) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
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, procédez comme suit :
Activer la journalisation pour un job
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 console Google Cloud, les journaux Cloud Logging sont toujours activés.
Si vous créez une tâche à l'aide de la gcloud CLI ou de l'API Batch, les journaux de Cloud Logging sont désactivés par défaut. Pour activer les journaux à partir de Cloud Logging, incluez la configuration suivante pour le champ
logsPolicy
lors 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 cette tâche. Plus précisément, les jobs par lot peuvent avoir les types de journaux suivants:
Journaux de l'agent (
batch_agent_logs
): journaux des activités de l'agent de service Batch.Batch écrit automatiquement des journaux d'agent pour chaque job pour lequel la journalisation est activée.
Journaux de tâches (
batch_task_logs
): journaux de toutes les données que vous avez configurées pour les exécutables d'une tâche afin qu'ils écrivent 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 console Google Cloud, de gcloud CLI, de l'API Logging, de Go, Java, Python ou C++.
Console
Pour afficher les journaux d'une tâche à l'aide de la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Liste des tâches.
Dans la colonne Job name (Nom de la tâche), cliquez sur le nom d'une tâche. La page Informations sur le job s'ouvre.
Cliquez sur l'onglet Journaux. Batch affiche tous les journaux associés au job.
Facultatif: Pour filtrer les journaux, effectuez l'une des opérations suivantes:
Saisissez un filtre dans le champ Filtre .
Dans la liste Gravité, sélectionnez un niveau de gravité.
Cliquez sur créer une requête dans l'explorateur de journaux à l'aide des paramètres du filtre par lot.
Afficher dans l'explorateur de journaux pour
gcloud
Pour afficher les journaux à l'aide de gcloud CLI, utilisez la commande gcloud logging read
:
gcloud logging read "QUERY"
où QUERY
est une requête pour les journaux Batch contenant des paramètres de filtre par lot.
API
Pour afficher les journaux à l'aide de l'API Logging, utilisez la méthode entries.list
:
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 contenant des paramètres de filtre par lot.
Go
Go
Pour en savoir plus, consultez la documentation de référence de l'API Batch Go.
Pour vous authentifier auprès de Batch, configurez les 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 de l'API Batch Java.
Pour vous authentifier auprès de Batch, configurez les 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érence de l'API Batch Python.
Pour vous authentifier auprès de Batch, configurez les 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 de l'API Batch C++.
Pour vous authentifier auprès de Batch, configurez les 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'identifiant unique (UID) de la tâche :
labels.job_uid=JOB_UID
où
JOB_UID
est l'UID de la tâche. Pour obtenir l'UID d'une tâche, affichez les détails de cette tâche.Pour filtrer un type spécifique de journaux Batch, spécifiez le type de journal:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
Remplacez 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_logs
pour les journaux de tâches oubatch_agent_logs
pour les journaux de l'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_VALUE
Pour filtrer les journaux selon un ou plusieurs niveaux de gravité, spécifiez la comparaison suivante:
severityCOMPARISON_OPERATORSEVERITY_ENUM
Remplacez les éléments suivants :
COMPARISON_OPERATOR
: opérateur de comparaison (par exemple,>=
).SEVERITY_ENUM
: énumérationLogSeverity
, qui décrit le niveau de gravité d'un journal (par exemple,ERROR
).
Pour plus d'options de filtrage, consultez la documentation sur le langage de requête Cloud Logging.
Étapes suivantes
- En savoir plus sur le dépannage
- Apprenez-en plus sur Cloud Logging.
- Apprenez à écrire des journaux de tâches.
- Découvrez comment supprimer et exporter des jobs.