In diesem Dokument wird beschrieben, wie Sie Logs aus Cloud Logging für einen Batchjob aktivieren, generieren und aufrufen.
Mithilfe von Logs können Sie Informationen erhalten, Ihre Jobs analysieren. Protokolle können Ihnen beispielsweise bei der Fehlerbehebung bei fehlgeschlagenen Jobs helfen.
Vor allem werden Logs erst generiert, nachdem ein Job ausgeführt wurde. und nur wenn Logging für den Job aktiviert ist. Wenn Sie einen Job ohne Logs analysieren müssen, Statusereignisse ansehen.
Hinweise
- Wenn Sie Batch zum ersten Mal verwenden, lesen Sie Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie den Voraussetzungen für Projekte und Nutzer.
-
So erhalten Sie die Berechtigungen, die Sie zum Analysieren eines Jobs mithilfe von Logs benötigen: bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:
-
So erstellen Sie einen Job:
-
Batch-Job-Editor (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist
-
Batch-Job-Editor (
-
So rufen Sie Logs auf:
Loganzeige (
roles/logging.viewer
) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
So erstellen Sie einen Job:
Logging für einen Job aktivieren
Damit Logs für einen Job generiert werden können, aktivieren Sie Logs aus Cloud Logging, wenn Sie den Job erstellen:
- Wenn Sie einen Job mit der Google Cloud Console erstellen, Cloud Logging ist immer aktiviert.
Wenn Sie einen Job mit der gcloud CLI oder dem Batch API, Logs aus Cloud Logging sind deaktiviert ist standardmäßig aktiviert. Wenn Sie Logs aus Cloud Logging aktivieren möchten, fügen Sie beim Erstellen des Jobs die folgende Konfiguration für das Feld
logsPolicy
hinzu:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Protokolle für einen Job schreiben und generieren
Wenn Logs aus Cloud Logging für einen Job aktiviert sind, werden alle Logs, die für den Job geschrieben werden, automatisch in Cloud Logging generiert. Insbesondere können Batchjobs die folgenden Protokolltypen haben:
Agent-Logs (
batch_agent_logs
): Logs für Aktivitäten aus dem Batch-Dienst-Agent.Batch schreibt automatisch Agentenprotokolle für jeden Job, für den das Logging aktiviert ist.
Task-Logs (
batch_task_logs
): Logs für alle Daten, die Sie als die Runnables des Jobs in den Standardausgabestream (stdout
) oder Standardfehlerstream (stderr
).Sie können optional für jedes Aufgabenlogs schreiben. Job mit aktiviertem Logging.
Logs für einen Job ansehen
Sie können die Logs eines Jobs über die Google Cloud Console aufrufen: gcloud CLI, Logging API, Go, Java, Python oder C++.
Console
So rufen Sie die Logs eines Jobs mit der Google Cloud Console auf:
Rufen Sie in der Google Cloud Console die Seite Jobliste auf.
Klicken Sie in der Spalte Jobname auf den Namen eines Jobs. Die Seite Jobdetails wird geöffnet.
Klicken Sie auf den Tab Logs. Unter „Batch“ werden alle Logs angezeigt, die mit dem Job verknüpft sind.
Optional: Sie haben folgende Möglichkeiten, die Protokolle zu filtern:
Geben Sie in das Feld Filter ein.
Filter einenWählen Sie in der Liste Schweregrad einen Schweregrad aus.
Klicken Sie auf eine Abfrage zu erstellen, Log-Explorer mit der Batchfilterparameter.
Im Log-Explorer ansehen. um
gcloud
So rufen Sie Logs über die gcloud CLI auf:
gcloud logging read
-Befehl:
gcloud logging read "QUERY"
Dabei ist QUERY
eine Abfrage für Batch-Protokolle, die Batch-Filterparameter enthält.
API
Um Logs mithilfe der Logging API aufzurufen, verwenden Sie den
entries.list
-Methode:
POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
"projects/PROJECT_ID"
],
"filter": "QUERY"
"orderBy": "timestamp desc"
}
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID Ihres Projekts.QUERY
: Eine Abfrage für Batch-Protokolle, die Batch-Filterparameter enthält.
Go
Go
Weitere Informationen finden Sie in der Batch Go API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Weitere Informationen finden Sie in der Batch Java API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Python
Weitere Informationen finden Sie in der Batch Python API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C++
C++
Weitere Informationen finden Sie in der Batch C++ API Referenzdokumentation.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Batch zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Batch-Logs filtern
Sie können nach Batchlogs filtern, indem Sie eine Abfrage schreiben
die mindestens einen der folgenden Filterparameter und null oder mehr enthält.
Boolesche Operatoren (AND
, OR
und NOT
).
Geben Sie die eindeutige ID (UID) des Jobs an, um nach Logs aus einem bestimmten Job zu filtern:
labels.job_uid=JOB_UID
Dabei ist
JOB_UID
die UID des Jobs. Die UID eines Jobs finden Sie in den Jobdetails.Wenn Sie nach einem bestimmten Batch-Logtyp filtern möchten, geben Sie die Methode Logtyp:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPE
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID des Projekts, für das Sie Protokolle aufrufen möchten.BATCH_LOG_TYPE
: der Typ von Batch-Logs, die Sie sich ansehen möchten, entwederbatch_task_logs
für Aufgabenlogs oderbatch_agent_logs
für Agent-Logs.
Wenn Sie nach Logs mit benutzerdefinierten Statusereignissen filtern möchten, geben Sie an, dass das Feld
jsonPayload.batch/custom/event
im Log definiert sein muss:jsonPayload.batch"/"custom"/"event!=NULL_VALUE
Geben Sie Folgendes an, um nach Logs mit einem oder mehreren Schweregraden zu filtern Vergleich:
severityCOMPARISON_OPERATORSEVERITY_ENUM
Ersetzen Sie Folgendes:
COMPARISON_OPERATOR
: ein Vergleichsoperator, z. B.>=
.SEVERITY_ENUM
: aLogSeverity
enum, die den Schweregrad eines Logs beschreibt, z. B.ERROR
.
Weitere Filteroptionen finden Sie in der Dokumentation zur Cloud Logging-Abfragesprache
Nächste Schritte
- Weitere Informationen zur Fehlerbehebung
- Weitere Informationen zu Cloud Logging
- Weitere Informationen zum Erstellen von Aufgabenprotokollen
- Jobinformationen exportieren
- Jobs löschen