In diesem Dokument wird beschrieben, wie Sie Logs aus Cloud Logging für einen Batchjob aktivieren, generieren und ansehen.
Logs können Informationen liefern, die für die Analyse Ihrer Jobs nützlich sind. Beispielsweise können Sie mit Logs Fehler in Jobs beheben.
Logs werden nur nach dem Start eines Jobs und nur dann generiert, wenn das Logging für den Job aktiviert wurde. Wenn Sie einen Job ohne Logs analysieren müssen, rufen Sie stattdessen Statusereignisse auf.
Hinweis
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Artikel Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzererfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Analysieren eines Jobs mit Logs benötigen:
-
Zum Erstellen eines Jobs:
- Batch Job Editor (
roles/batch.jobsEditor) für das Projekt - Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto des Jobs. Standardmäßig ist dies das Standarddienstkonto für Compute Engine.
- Batch Job Editor (
-
Zum Aufrufen von Logs:
Logbetrachter (
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.
-
Zum Erstellen eines Jobs:
Logging für einen Job aktivieren
Damit Logs für einen Job generiert werden können, aktivieren Sie beim Erstellen des Jobs Logs aus Cloud Logging:
- Wenn Sie einen Job über die Google Cloud console erstellen, sind Logs aus Cloud Logging immer aktiviert.
Wenn Sie einen Job mit der gcloud CLI oder der Batch API erstellen, sind Logs aus Cloud Logging standardmäßig deaktiviert. Wenn Sie Logs aus Cloud Logging aktivieren möchten, fügen Sie beim Erstellen des Jobs die folgende Konfiguration für das Feld
logsPolicyein:{ ... "logsPolicy": { "destination": "CLOUD_LOGGING" } ... }
Logs für einen Job schreiben und generieren
Wenn Logs aus Cloud Logging für einen Job aktiviert sind, generiert Cloud Logging automatisch alle Logs, die für den Job geschrieben werden. Batchjobs können die folgenden Logtypen haben:
Agent-Logs (
batch_agent_logs): Logs für Aktivitäten des Batch-Dienst-Agents.Batch schreibt automatisch Agent-Logs für jeden Job, für den das Logging aktiviert ist.
Aufgabenlogs (
batch_task_logs): Logs für alle Daten, die Sie so konfiguriert haben, dass die ausführbaren Dateien eines Jobs in den Standardausgabestream (stdout) oder den Standardfehlerstream (stderr) geschrieben werden.Sie können optional Aufgabenlogs schreiben für jeden Job, für den das Logging aktiviert ist.
Logs für einen Job ansehen
Sie können die Logs eines Jobs über die Google Cloud console, die gcloud CLI, die Logging API, Go, Java, Python oder C++ aufrufen.
Console
So rufen Sie die Logs eines Jobs über die 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 aufgerufen.
Klicken Sie auf den Tab Logs. Batch zeigt alle Logs an, die mit dem Job verknüpft sind.
Optional: So filtern Sie die Logs:
Geben Sie im Feld Filter einen Filter ein.
Wählen Sie in der Liste Schweregrad einen Schweregrad aus.
Klicken Sie auf Im Log-Explorer ansehen , um im Log-Explorer eine Abfrage mit den Batch-Filterparametern zu erstellen.
gcloud
Wenn Sie Logs mit der gcloud CLI aufrufen möchten, verwenden Sie den
gcloud logging read Befehl:
gcloud logging read "QUERY"
Dabei ist QUERY eine
Abfrage für Batch-Logs, die
Batch-Filterparameter enthält.
API
Wenn Sie Logs mit der Logging API aufrufen möchten, verwenden Sie die
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-Logs, die Batch-Filterparameter enthält.
Go
Go
Weitere Informationen finden Sie in der Batch Go API Referenzdokumentation.
Richten Sie zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. 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 zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. 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 zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. 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 zur Authentifizierung bei Batch die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Batch-Logs filtern
Sie können nach Batch-Logs filtern, indem Sie eine Abfrage
schreiben, die einen oder mehrere der folgenden Filterparameter und null oder mehr
boolesche Operatoren (AND, OR und NOT) enthält.
Wenn Sie nach Logs eines bestimmten Jobs filtern möchten, geben Sie die eindeutige ID (UID) des Jobs an:
labels.job_uid=JOB_UIDDabei ist
JOB_UIDdie UID des Jobs. Die UID eines Jobs finden Sie in den Details des Jobs.Wenn Sie nach einem bestimmten Typ von Batch-Logs filtern möchten, geben Sie den Logtyp an:
logName=projects/PROJECT_ID/logs/BATCH_LOG_TYPEErsetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID des Projekts, für das Sie Logs aufrufen möchten.BATCH_LOG_TYPE: der Typ der Batch-Logs, die Sie aufrufen möchten, entwederbatch_task_logsfür Aufgabenlogs oderbatch_agent_logsfür Agent-Logs.
Wenn Sie nach Logs mit benutzerdefinierten Statusereignissen, filtern möchten, geben Sie an, dass das Feld
jsonPayload.batch/custom/eventim Log definiert sein muss:jsonPayload.batch"/"custom"/"event!=NULL_VALUEWenn Sie nach Logs mit einem oder mehreren bestimmten Schweregraden filtern möchten, geben Sie den folgenden Vergleich an:
severityCOMPARISON_OPERATORSEVERITY_ENUMErsetzen Sie Folgendes:
COMPARISON_OPERATOR: ein Vergleichsoperator, z. B.>=.SEVERITY_ENUM: eineLogSeverityEnumeration, 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.
- Aufgabenlogs schreiben
- Jobinformationen exportieren
- Erfahren Sie, wie Sie Jobs löschen.