In diesem Dokument wird beschrieben, wie Sie Logs aus Cloud Logging für einen Batchjob aktivieren, generieren und aufrufen.
Anhand von Protokollen können Sie Informationen abrufen, die für die Analyse Ihrer Jobs nützlich sind. Protokolle können Ihnen beispielsweise bei der Fehlerbehebung bei fehlgeschlagenen Jobs helfen.
Logs werden erst nach dem Start eines Jobs generiert und nur, wenn die Protokollierung für den Job aktiviert wurde. Wenn Sie einen Job ohne Protokolle analysieren möchten, rufen Sie stattdessen Statusereignisse auf.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Hilfeartikel Batch-Dateien erstellen und ausführen und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfüllen.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Analysieren eines Jobs mithilfe von Protokollen benötigen:
-
So erstellen Sie einen Job:
-
Batch-Job-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist
-
Batch-Job-Bearbeiter (
-
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
Wenn Sie Logs für einen Job generieren möchten, aktivieren Sie beim Erstellen des Jobs Logs aus Cloud Logging:
- Wenn Sie einen Job mit der 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
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 des Batch-Dienst-Agents.Batch schreibt automatisch Agentenprotokolle für jeden Job, für den das Logging aktiviert ist.
Aufgabenprotokolle (
batch_task_logs
): Protokolle für alle Daten, die Sie so konfiguriert haben, dass sie vom Job in den Standardausgabe- (stdout
) oder Standardfehlerstream (stderr
) geschrieben werden.Optional können Sie für jeden Job, für den das Logging aktiviert ist, Aufgabenprotokolle schreiben.
Logs für einen Job ansehen
Sie können die Logs eines Jobs über die Google Cloud -Konsole, die gcloud CLI, die Logging API, Go, Java, Python oder C++ aufrufen.
Console
So rufen Sie die Logs eines Jobs mit der Google Cloud -Console auf:
Rufen Sie in der Google Cloud -Console die Seite Aufgabenliste 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 im Feld Filter ein.
Filter einenWählen Sie in der Liste Schweregrad einen Schweregrad aus.
Klicken Sie auf Batch-Filterparameter eine Abfrage zu erstellen.
Im Log-Explorer ansehen, um im Log-Explorer mithilfe der
gcloud
Wenn Sie Logs mit der gcloud CLI aufrufen möchten, verwenden Sie den Befehl gcloud logging read
:
gcloud logging read "QUERY"
Dabei ist QUERY
eine Abfrage für Batch-Protokolle, die Batch-Filterparameter enthält.
API
Wenn Sie Logs mithilfe der Logging API aufrufen möchten, verwenden Sie die Methode entries.list
:
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 Referenzdokumentation zur Batch Go API.
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.
Java
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Java API.
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.
Python
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Batch Python API.
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 Referenzdokumentation zur Batch C++ API.
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.
Batch-Logs filtern
Sie können nach Batch-Protokollen filtern, indem Sie eine Abfrage mit einem oder mehreren der folgenden Filterparameter und null oder mehr booleschen Operatoren (AND
, OR
und NOT
) schreiben.
Wenn Sie nach Logs für einen bestimmten Job filtern möchten, geben Sie die eindeutige ID (UID) des Jobs an:
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 Typ von Batch-Logs filtern möchten, geben Sie den Logtyp an:
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 der Batch-Protokolle, die Sie aufrufen möchten. Geben Sie dazu entwederbatch_task_logs
für Aufgabenprotokolle oderbatch_agent_logs
für Agentenprotokolle ein.
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
Wenn Sie nach Protokollen mit einem oder mehreren bestimmten Schweregraden filtern möchten, geben Sie den folgenden Vergleich an:
severityCOMPARISON_OPERATORSEVERITY_ENUM
Ersetzen Sie Folgendes:
COMPARISON_OPERATOR
: ein Vergleichsoperator, z. B.>=
.SEVERITY_ENUM
: einLogSeverity
-Enum, das die Schwere 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
- Weitere Informationen zum Exportieren von Stelleninformationen
- Weitere Informationen zum Löschen von Jobs