Logeinträge mit der gcloud CLI schreiben und abfragen

In diesem Dokument werden einige der Funktionen von Cloud Logging vorgestellt. und zeigt Ihnen, wie Sie Folgendes tun können:

  • Logeinträge mit der Google Cloud CLI schreiben
  • Logeinträge mit der gcloud CLI auflisten
  • Logeinträge über die Logging API auflisten
  • Logeinträge mit dem Log-Explorer aufrufen und abfragen

Hinweis

Sie benötigen ein Google Cloud-Projekt mit aktivierter Abrechnungsfunktion, um diese Kurzanleitung durchzuarbeiten. Wenn Sie kein Google Cloud-Projekt oder kein die Abrechnung für Ihr Google Cloud-Projekt aktiviert, und gehen Sie dann so vor:
  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Erste Schritte

Die gcloud CLI enthält eine Gruppe von Befehlen. gcloud logging, die eine Befehlszeile für die Cloud Logging API bereitstellen.

Sie können die Cloud Shell-Umgebung oder eine virtuelle Maschine der Compute Engine verwenden VM-Instanz für die gcloud CLI-Befehle in diesem Kurzanleitung. Die gcloud-Befehlszeile ist in der Cloud Shell-Umgebung vorinstalliert.

Cloud Shell

Prüfen Sie, ob die gcloud CLI für die Verwendung des korrekten Google Cloud-Projekt:

  1. Klicken Sie in der Google Cloud Console auf . Aktivieren Sie Cloud Shell.

    Cloud Shell wird in einem Fenster mit einer Willkommensnachricht geöffnet. Die Begrüßungsnachricht enthält die konfigurierte Projekt-ID.

  2. Wenn Sie ein anderes Google Cloud-Projekt als das verwenden möchten in der Willkommensnachricht an und führen Sie anschließend den folgenden Befehl aus, Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID:

       gcloud config set project PROJECT_ID
       

    Wie Sie die Projekt-ID ermitteln, erfahren Sie unter Projekte identifizieren.

VM-Instanz

So erstellen Sie eine Compute Engine-VM-Instanz in der Google Cloud Console:

  1. Wählen Sie in der Google Cloud Console Compute Engine und Wählen Sie dann VM-Instanzen aus.

  2. Wählen Sie Instanz erstellen aus.

  3. Wählen Sie bei Identität und API-Zugriff unter Zugriffsbereiche die Option aus. Zugriff für jede API festlegen

  4. Scrollen Sie durch die APIs, bis Sie die Stackdriver Logging API finden. Stellen Sie den Zugriff auf Uneingeschränkt ein.

  5. Behalten Sie für alle anderen Einstellungen den Standardwert bei und klicken Sie auf Erstellen. Die VM-Instanz ist einsatzbereit.

  6. Klicken Sie auf SSH, um eine Verbindung zur VM-Instanz-Shell herzustellen. Nach kurzer Zeit Eine Debian GNU/Linux-Shell wird in einem Fenster geöffnet und zeigt eine Begrüßung an. .

  7. Führen Sie den folgenden Befehl aus, um zu prüfen, ob die gcloud CLI für Ihr Compute Engine-Projekt konfiguriert:

      gcloud config list
      

  8. Wenn Sie ein anderes Google Cloud-Projekt verwenden möchten, führen Sie den folgenden Befehl, nachdem Sie PROJECT_ID durch Ihren Projekt-ID:

      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 haben eine JSON-Datenstruktur, zum Beispiel {"weather": "partly cloudy"}. Unstrukturierte Daten sind Strings, wie zum Beispiel "A simple entry". In den nächsten Schritten schreiben Sie über die gcloud CLI einen Logeintrag mit unstrukturierte Daten und einen Logeintrag mit strukturierten Daten:

  1. 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.

  2. 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 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 über die gcloud CLI auflisten

Sie können Logeinträge aus Logging abrufen und anzeigen lassen über die gcloud CLI. Um beispielsweise das Protokoll abzurufen und anzuzeigen, mit dem Ressourcentyp global den folgenden Befehl ausführen:

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 finden Sie unter API Explorer verwenden. So lesen Sie eine Liste von Logeinträgen aus Logging:

  1. Rufen Sie die API-Referenzseite für die API-Methode entries.list auf:

    Weiter zur API-Seite "entries.list"

  2. Konfigurieren und ausführen des API-Befehls:

    1. Ersetzen Sie PROJECT_ID im folgenden Text:

      "resourceNames": [
      "projects/PROJECT_ID"
      ],
      "filter": "resource.type=global",
      "orderBy": "timestamp desc"
      
    2. Kopieren Sie den aktualisierten Text aus dem vorherigen Schritt und fügen Sie ihn in das Feld Anfragetext des APIs Explorer ein.

    3. 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

Sie können sich Logeinträge in der Google Cloud Console mit dem Log-Explorer ansehen. In den meisten Google Cloud-Projekten werden eine große Anzahl von Protokollen gespeichert. 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 erstellt haben:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

    Achten Sie darauf, dass Ihr Google Cloud-Projekt in Google Cloud ausgewählt ist Navigationsleiste. Verwenden Sie bei Bedarf die Drop-down-Liste des Google Cloud-Projekts. um Ihr Google Cloud-Projekt auszuwählen.

  2. 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.

  3. Klicken Sie auf das Menü, um die Details eines Logeintrags aufzurufen.

    Die Daten des ersten Logeintrags werden in textPayload gespeichert. Das zweite Log Eintrag enthält strukturierte Daten, die in jsonPayload gespeichert sind. Die die strukturierte Nutzlast die Schlüssel message und weather enthält.

Informationen zum Datenformat von Logeinträgen finden Sie unter LogEntry.

Logeinträge im Log-Explorer abfragen

Sie können Logeinträge mit dem Abfrageeditor und bei strukturierten Logs anhand des Schlüssels oder des Werts abfragen. So können Sie beispielsweise alle Logeinträge anzeigen lassen, die den Text simple enthalten:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie im Menü Ressource die Option Global aus.

  3. Geben Sie im Abfrageeditor den String simple in Anführungszeichen ein. In der Loganzeige wird nur der Logeintrag A simple entry. angezeigt.

  4. Nachdem Sie das Log aufgerufen haben, entfernen Sie den hinzugefügten Abfragestring und Klicken Sie auf Abfrage ausführen. Beide Log-Einträge werden wieder in der Anzeige dargestellt.

Zum Aufrufen aller Logeinträge mit strukturierten Daten, die den Schlüssel weather haben Wobei das Feld value den Wert partly enthält, gehen Sie so vor:

  1. Der Abfrageeditor enthält die Zeile resource.type="global". Geben Sie den folgenden Befehl ein:

    jsonPayload.weather:partly
    
  2. 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 zum Fehler gcloud CLI Befehle, die mit Meldungen über ungültiges Argument abgeschlossen sind. Wenn du beispielsweise die Periode in resource.type vergisst, führt zu folgendem Fehler:

     ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
    
  • Wenn Cloud Logging nicht die erforderlichen Zugriffsberechtigungen erteilt wurden, werden Befehle von der gcloud-Befehlszeile mit der Meldung Berechtigung verweigert zurückgegeben. Beispiel: Wenn eine Compute Engine-VM-Instanz mit den Standard-API-Einstellungen konfiguriert ist, wird der Befehl list mit einem Fehler wegen verweigerter Berechtigung abgeschlossen:

     ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
    

    Ändern Sie Ihre Compute Engine-VM-Instanz, um dieses Problem zu beheben zum Gewähren der Leseberechtigung für Cloud Logging, indem Sie Folgendes:

    1. 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.
    2. Klicken Sie auf Bearbeiten, um die Konfiguration zu ändern.
    3. Suchen Sie nach dem Header Zugriffsbereiche für Cloud API und klicken Sie auf Details, um sich die Einstellungen für jede API anzeigen zu lassen. Ändern Sie den Eintrag für die Cloud Logging API zu Vollständiger Zugriff. Klicken Sie dann auf Speichern.
    4. 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 Nachricht nextPageToken ist angezeigt wird, bedeutet dies, dass APIs Explorer keine Zeit hatte, um die Suche abzuschließen. Fügen Sie der Anfrage einen pageToken hinzu, stellen Sie diesen auf denselben Wert ein wie der des nextPageToken des Schlüssels und führen Sie dann den Befehl noch einmal aus.
    • Antwortcode 400: Der Abfragewert ist ungültig. Wenn Sie zum Beispiel gloobal statt global schreiben, wird die Meldung Unsupported resource type: gloobal zurückgegeben.
    • Antwortcode 404: Die Projekt-ID ist ungültig. Überprüfen Sie die Schreibweise der Projekt-ID.
    • Möglicherweise werden Sie aufgefordert, sich in Ihrem Google Cloud-Projekt erstellen und APIs Explorer den Zugriff auf Ihr Konto erlauben.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. (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