Logeinträge mit der gcloud CLI schreiben und abfragen
In diesem Dokument werden einige Funktionen von Cloud Logging vorgestellt und Sie erfahren, wie Sie:
- Logeinträge mit der Google Cloud CLI schreiben
- Logeinträge über die gcloud CLI auflisten
- Logeinträge über die Logging API auflisten
- Logeinträge mit dem Log-Explorer aufrufen und abfragen
Hinweise
Sie benötigen ein Google Cloud-Projekt mit aktivierter Abrechnungsfunktion, um diese Kurzanleitung durchzuarbeiten. Wenn Sie kein Google Cloud-Projekt haben oder die Abrechnung für Ihr Google Cloud-Projekt nicht aktiviert ist, gehen Sie so vor:- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
Erste Schritte
Die gcloud CLI umfasst die Befehlsgruppe gcloud logging
, die eine Befehlszeile für die Cloud Logging API bereitstellt.
In dieser Kurzanleitung können Sie die Cloud Shell-Umgebung oder eine Compute Engine-VM-Instanz für die gcloud CLI-Befehle verwenden. Die gcloud CLI ist in der Cloud Shell-Umgebung vorinstalliert.
Cloud Shell
Prüfen Sie, ob die gcloud CLI für die Verwendung des richtigen Google Cloud-Projekts konfiguriert ist:
Klicken Sie in der Google Cloud Console auf Cloud Shell aktivieren:
Cloud Shell wird in einem Fenster mit einer Willkommensnachricht geöffnet. Die Willkommensnachricht gibt die konfigurierte Projekt-ID wieder:
Wenn Sie ein anderes Google Cloud-Projekt als das in der Willkommensnachricht aufgeführte verwenden möchten, führen Sie den folgenden Befehl aus, nachdem Sie PROJECT_ID durch Ihre Projekt-ID ersetzt haben:
gcloud config set project PROJECT_ID
Informationen zum Abrufen der Projekt-ID finden Sie unter Projekte identifizieren.
VM-Instanz
So erstellen Sie eine Compute Engine-VM-Instanz in der Google Cloud Console:
Wählen Sie in der Google Cloud Console Compute Engine und dann VM-Instanzen aus.
Wählen Sie Instanz erstellen aus.
Wählen Sie unter Identität und API-Zugriff unter Zugriffsbereiche die Option Zugriff für jede API festlegen aus.
Scrollen Sie durch die APIs, bis Sie die Stackdriver Logging API finden. Setzen Sie den Zugriff auf Uneingeschränkt.
Behalten Sie für alle anderen Einstellungen die Standardwerte bei und klicken Sie auf Erstellen. Die VM-Instanz ist einsatzbereit.
Klicken Sie auf SSH, um eine Verbindung zur VM-Instanz-Shell herzustellen. Nach kurzer Zeit wird eine Debian GNU/Linux-Shell in einem Fenster geöffnet und eine Willkommensnachricht angezeigt.
Prüfen Sie mit dem folgenden Befehl, ob die gcloud CLI für Ihr Compute Engine-Projekt konfiguriert ist:
gcloud config list
Wenn Sie ein anderes Google Cloud-Projekt verwenden möchten, führen Sie den folgenden Befehl aus, nachdem Sie PROJECT_ID durch Ihre Projekt-ID ersetzt haben:
gcloud config set project PROJECT_ID
Informationen zum Abrufen der Projekt-ID finden Sie unter Projekte identifizieren.
Logeinträge mit der gcloud CLI schreiben
Logging unterstützt Logeinträge mit strukturierten und unstrukturierten Daten. Strukturierte Daten bestehen aus einer JSON-Datenstruktur wie zum Beispiel {"weather": "partly cloudy"}
. Unstrukturierte Daten sind Strings, wie zum Beispiel "A simple entry"
.
In den nächsten Schritten verwenden Sie die gcloud CLI, um einen Logeintrag mit unstrukturierten Daten und einen Logeintrag mit strukturierten Daten zu schreiben:
Logeintrag mit unstrukturierten Daten in das Log
my-test-log
schreiben:gcloud logging write my-test-log "A simple entry."
Nach Verarbeitung des Befehls wird die folgende Meldung angezeigt:
Created log entry
.Schreiben Sie einen Logeintrag mit strukturierten Daten in das Log
my-test-log
:gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
Zum Schreiben eines Logeintrags mit strukturierten Daten müssen Sie
--payload-type=json
angeben. Wenn Sie dieses Feld weglassen, interpretiert Logging die Nutzlast als unstrukturierte Daten.
Wenn das Log my-test-log
nicht vorhanden ist, wird es von Logging erstellt, sobald der Logeintrag empfangen wird.
Logeinträge mit der gcloud CLI auflisten
Sie können Logeinträge aus Logging abrufen und über die gcloud CLI anzeigen lassen. Führen Sie beispielsweise den folgenden Befehl aus, um die Logeinträge mit dem Ressourcentyp global
abzurufen und anzuzeigen:
gcloud logging read "resource.type=global"
Das Ergebnis des Befehls sollte in etwa so aussehen:
---
insertId: jpj9zjf73t1mn
jsonPayload:
message: My second entry
weather: partly cloudy
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
resource:
labels:
project_id: myloggingproject
type: global
timestamp: '2018-11-01T18:39:31.114507977Z'
---
insertId: vd4m1if7h7u1a
logName: projects/myloggingproject/logs/my-test-log
receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
resource:
labels:
project_id: myloggingproject
type: global
textPayload: A simple entry
timestamp: '2018-11-01T18:39:19.718100792Z'
Logeinträge mit APIs Explorer auflisten
Informationen zum Ausführen von Logging API-Methoden, ohne Code schreiben zu müssen, finden Sie unter APIs Explorer verwenden. So lesen Sie eine Liste von Logeinträgen aus Logging:
Rufen Sie die API-Referenzseite für die API-Methode
entries.list
auf:Konfigurieren Sie den API-Befehl und führen Sie ihn aus:
Ersetzen Sie PROJECT_ID im folgenden Text:
"resourceNames": [ "projects/PROJECT_ID" ], "filter": "resource.type=global", "orderBy": "timestamp desc"
Kopieren Sie den aktualisierten Text aus dem vorherigen Schritt und fügen Sie ihn in das Feld Anfragetext des APIs Explorer ein.
Klicken Sie auf Ausführen.
Die Methode gibt in etwa folgende Antwort zurück:
{ "entries": [ { "textPayload": "A simple entry", "insertId": "vd4m1if7h7u1a", "resource": { "type": "global", "labels": { "project_id": "myloggingproject" } }, "timestamp": "2018-11-01T18:39:19.718100792Z", "logName": "projects/myloggingproject/logs/my-test-log", "receiveTimestamp": "2018-11-01T18:39:19.718100792Z" }, { "insertId": "jpj9zjf73t1mn", "jsonPayload": { "message": "My second entry", "weather": "partly cloudy" }, "resource": { "type": "global", "labels": { "project_id": "myloggingproject" } }, "timestamp": "2018-11-01T18:39:31.114507977Z", "logName": "projects/myloggingproject/logs/my-test-log", "receiveTimestamp": "2018-11-01T18:39:31.114507977Z" } ] }
Logeinträge im Log-Explorer abfragen
Zum Ansehen von Logeinträgen in der Google Cloud Console können Sie den Log-Explorer verwenden. Die meisten Google Cloud-Projekte speichern eine große Anzahl von Logs. Sie können bestimmte Logeinträge auswählen, indem Sie eine Abfrage schreiben.
So rufen Sie die Logeinträge auf, die Sie mit dem Log-Explorer geschrieben haben:
-
Wählen Sie im Navigationsbereich der Google Cloud Console Logging und anschließend Log-Explorer aus:
Achten Sie darauf, dass Ihr Google Cloud-Projekt in der Google Cloud-Navigationsleiste ausgewählt ist. Verwenden Sie bei Bedarf die Drop-down-Liste für das Google Cloud-Projekt, um Ihr Google Cloud-Projekt auszuwählen.
Wählen Sie im Menü Ressource die Option Global aus.
Wenn die Menüoption Global oder Ihre Logeinträge nicht angezeigt werden, warten Sie einige Minuten und aktualisieren Sie dann die Seite. Der Empfang von Logeinträgen durch Logging kann einige Minuten dauern.
Klicken Sie zum Aufrufen der Details eines Logeintrags auf das zugehörige chevron_right-Menü.
Die Daten des ersten Logeintrags werden in
textPayload
gespeichert. Der zweite Logeintrag enthält strukturierte Daten, die injsonPayload
gespeichert sind. Die strukturierte Nutzlast enthält die Schlüsselmessage
undweather
.
Informationen zum Datenformat von Logeinträgen finden Sie unter Typ LogEntry
.
Logeinträge im Log-Explorer abfragen
Sie können Logeinträge mit dem Abfrageeditor und bei strukturierten Logs nach Schlüssel und Wert abfragen. So rufen Sie beispielsweise alle Logeinträge auf, die den Text simple
enthalten:
-
Wählen Sie im Navigationsbereich der Google Cloud Console Logging und anschließend Log-Explorer aus:
Wählen Sie im Menü Ressource die Option Global aus.
Geben Sie im Query Editor den String
simple
in Anführungszeichen ein. In der Loganzeige wird nur der LogeintragA simple entry.
angezeigt.Entfernen Sie nach dem Ansehen des Logs den hinzugefügten Abfragestring und klicken Sie auf Abfrage ausführen. Beide Log-Einträge werden wieder in der Anzeige dargestellt.
So rufen Sie alle Logeinträge mit strukturierten Daten auf, die den Schlüssel weather
haben und bei denen das Feld value
den Wert partly
enthält:
Der Query Editor enthält die Zeile
resource.type="global"
. Geben Sie den folgenden Befehl ein:jsonPayload.weather:partly
Klicken Sie auf Abfrage ausführen. Das Ergebnis ist der einzelne Logeintrag
My second entry
:
Der Log-Explorer bietet auch gespeicherte, vorgeschlagene und aktuelle Abfragen. Weitere Informationen zu Abfragen finden Sie unter Abfragen im Log-Explorer erstellen.
Beispielabfragen finden Sie unter Beispielabfragen mit dem Log-Explorer.
Fehlerbehebung
Schreibfehler und unbekannte Feldnamen führen dazu, dass die gcloud CLI-Befehle mit der Meldung Ungültiges Argument abgeschlossen werden. Wenn Sie beispielsweise den Punkt in
resource.type
vergessen, führt dies zu folgendem Fehler:ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
Wurden Cloud Logging nicht die erforderlichen Zugriffsberechtigungen gewährt, werden die Befehle der gcloud CLI mit der Meldung Berechtigung verweigert abgeschlossen. Wenn beispielsweise eine Compute Engine-VM-Instanz mit den Standard-API-Einstellungen konfiguriert ist, wird der Befehl
list
mit einem Fehler aufgrund einer abgelehnten Berechtigung abgeschlossen:ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
Um diese Bedingung zu beheben, ändern Sie die Berechtigungen Ihrer Compute Engine-VM-Instanz, um Cloud Logging Leseberechtigung zu gewähren. Gehen Sie dazu so vor:
- Gehen Sie zur Seite VM-Instanzdetails Ihrer VM-Instanz. Klicken Sie auf Beenden. Es kann ein bis zwei Minuten dauern, bis der Vorgang abgeschlossen ist.
- Klicken Sie auf Bearbeiten, um die Konfiguration zu ändern.
- Suchen Sie nach dem Header Zugriffsbereiche für Cloud API und klicken Sie auf Details, um die Einstellungen für die einzelnen APIs aufzurufen. Ändern Sie den Eintrag der Cloud Logging API in Full. Klicken Sie auf Speichern.
- Klicken Sie auf Starten, um die VM-Instanz neu zu starten. Nach wenigen Augenblicken ist die VM einsatzbereit.
Wenn APIs Explorer Ihren Befehl nicht ausführen kann oder eine zusätzliche Autorisierung erforderlich ist, wird eine Meldung oder ein Fehlercode angezeigt:
- Antwortcode 200 und keine Einträge: Wenn die Meldung
nextPageToken
angezeigt wird, hatte APIs Explorer keine Zeit, die Suche abzuschließen. Fügen Sie der Anfrage einenpageToken
hinzu, stellen Sie diesen auf denselben Wert ein wie der desnextPageToken
des Schlüssels und führen Sie dann den Befehl noch einmal aus. - Antwortcode 400: Der Abfragewert ist ungültig. Wenn Sie beispielsweise
global
falsch schreiben mitgloobal
, lautet die MeldungUnsupported resource type: gloobal
. - Antwortcode 404: Die Projekt-ID ist ungültig. Überprüfen Sie die Schreibweise der Projekt-ID.
- Sie werden möglicherweise aufgefordert, sich bei Ihrem Google-Konto anzumelden und APIs Explorer Zugriff auf Ihr Konto zu gewähren.
- Antwortcode 200 und keine Einträge: Wenn die Meldung
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.
(Optional) Führen Sie den folgenden
gcloud
-Befehl aus, um die erstellten Logeinträge zu löschen:gcloud logging logs delete my-test-log
Wenn Sie Ihre Logeinträge nicht löschen, laufen sie ab und werden entfernt. Informationen zur Aufbewahrung finden Sie unter Kontingente und Limits.
Nächste Schritte
- Ausführliche Informationen zur Befehlszeilenschnittstelle von Logging finden Sie auf den Referenzseiten für die Befehlsgruppe
gcloud logging
. - Dokumentation zur Logging API finden Sie unter Cloud Logging API.
- Weitere Informationen zum Log-Explorer finden Sie unter Log-Explorer verwenden.
- Informationen zum Erfassen von Logeinträgen aus Ihren VM-Instanzen in Logging finden Sie unter Google Cloud-Agents für die Beobachtbarkeit.