Ce document explique comment activer, générer et afficher les journaux de Cloud Logging pour une tâche de traitement par lot.
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 jobs ayant échoué.
Notez que les journaux ne sont générés que 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 un job sans journaux, afficher les événements d'état à la place.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez 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 accorder le rôles IAM suivants:
-
Pour créer une tâche :
-
É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 de la tâche, qui est par défaut le compte de service Compute Engine par défaut
-
Éditeur de tâches par lot (
-
Pour afficher les journaux :
Lecteur de journaux (
roles/logging.viewer
) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez la page 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 un job
Pour permettre la génération de journaux pour une tâche, activez les journaux à partir de Cloud Logging lorsque vous créez la tâche :
- Si vous créez un job à l'aide de la console Google Cloud, les journaux provenant Cloud Logging est toujours activé.
Si vous créez un job à l'aide de gcloud CLI ou de la API Batch, journaux Cloud Logging désactivés par défaut. Pour activer les journaux à partir de Cloud Logging, incluez les éléments suivants : configuration pour le champ
logsPolicy
lors de la création du job:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Écrire et générer des journaux pour un job
Lorsque les journaux Cloud Logging sont activés pour un job, Cloud Logging génère automatiquement tous les journaux écrits pour le job. Plus précisément, les tâches par lot peuvent avoir les types de journaux suivants :
agent logs (
batch_agent_logs
): journaux des activités à partir de l'agent de service Batch.Le traitement par lot écrit automatiquement les journaux de l'agent pour chaque tâche ayant activé la journalisation.
Journaux de tâche (
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 console Google Cloud, de la gcloud CLI, de l'API Logging, de Go, de Java, de Python ou de C++.
Console
Pour afficher les journaux d'un job à 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 Nom de la tâche, cliquez sur le nom d'une tâche. La page Job details (Informations sur la tâche) s'ouvre.
Cliquez sur l'onglet 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 champ Filtre.
Dans la liste Gravité, sélectionnez une gravité.
Cliquez sur créer une requête dans l'explorateur de journaux à l'aide des paramètres de filtre par lot.
Afficher dans l'explorateur de journaux pour
gcloud
Pour afficher les journaux à l'aide de gcloud CLI, exécutez la commande gcloud logging read
:
gcloud logging read "QUERY"
où QUERY
est un(e)
pour les journaux Batch contenant
Paramètres de filtrage 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 projet de votre projet.QUERY
: requête pour les journaux de lot contenant des paramètres de filtre de lot.
Go
Go
Pour en savoir plus, consultez les API Go par lot documentation de référence.
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 les API Java par lot documentation de référence.
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 les API Python par lot documentation de référence.
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 les API C++ par lot documentation de référence.
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 de lot en écrivant une requête qui inclut un ou plusieurs des paramètres de filtre suivants et un 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_UID
où
JOB_UID
est l'UID du job. À obtenir l'UID d'un job, afficher les détails de la tâche ;Pour filtrer un type spécifique de journaux de lot, 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 de traitement par lot que vous souhaitez afficher,batch_task_logs
pour les journaux de tâche 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 d'un ou plusieurs niveaux de gravité spécifiques, spécifiez les éléments suivants : comparaison:
severityCOMPARISON_OPERATORSEVERITY_ENUM
Remplacez les éléments suivants :
COMPARISON_OPERATOR
: a opérateur de comparaison : par exemple :>=
.SEVERITY_ENUM
: a ÉnumérationLogSeverity
, qui décrit la gravité d'un journal (par exemple,ERROR
).
Pour plus d'options de filtrage, consultez les Documentation sur le langage de requête Cloud Logging.
Étape suivante
- En savoir plus sur le dépannage
- Apprenez-en plus sur Cloud Logging.
- Découvrez comment écrire des journaux de tâches.
- Découvrez comment exporter les informations d'une mission.
- Découvrez comment supprimer des tâches.