Logging und Monitoring der Steuerungsebene

In diesem Dokument wird gezeigt, wie Sie mit Cloud Logging und Cloud Monitoring Logs und Messwerte für die Steuerungsebene von Cloud Service Mesh aufrufen.

Mit einem Service Mesh können Sie den Traffic zu und von Diensten beobachten und somit das Monitoring und Debugging verbessern, ohne Codeänderungen im Dienst selbst vornehmen zu müssen. Logeinträge können wichtige Informationen zur Fehlerbehebung Ihres Service Mesh enthalten, einschließlich Datensätzen für erfolgreiche Verbindungen und Trennungen, Fehlerberichte für falsch konfigurierte Clients und Benachrichtigungen über API-Ressourcenkonflikte.

Anwendungsfälle

Im Folgenden werden drei Anwendungsfälle für das Logging und Monitoring der Steuerungsebene aufgeführt:

  • Cloud Logging für die Cloud Service Mesh-Steuerungsebene: Mit den integrierten Features von Logging können Sie Benachrichtigungen zu allen Cloud Service Mesh-Logging-Daten und ‑Ereignissen sicher speichern, suchen, analysieren und einrichten. Cloud Service Mesh exportiert Logs in Logging, wenn ein Envoy- oder gRPC-Client eine Verbindung herstellt oder trennt, und wenn Konfigurationsprobleme erkannt werden.
  • Cloud Monitoring für Cloud Service Mesh-Steuerungsebene: Cloud Service Mesh exportiert einen Schlüsselmesswert, der die Anzahl der Clients angibt, die über die Cloud Service Mesh-Steuerungsebene mit Monitoring verbunden sind. Sie können ein Dashboard in Monitoring einrichten und diesen Messwert in Echtzeit visualisieren, um den Status des Mesh-Netzwerks zu überwachen, während Clients eine Verbindung herstellen oder trennen. Dadurch können Sie außerdem ein SLO für Ihr Mesh-Netzwerk einrichten.
  • Probleme sofort beheben: Cloud Service Mesh exportiert Telemetriedaten standardmäßig in Logging und Monitoring. Zur Konfiguration von Logging und Monitoring ist keine zusätzliche Einrichtung erforderlich, sodass Sie jederzeit Probleme beheben können, auch wenn Sie das Mesh-Netzwerk zum ersten Mal einrichten.

Logs ansehen

Verwenden Sie den Log-Explorer, um Cloud Service Mesh-Logs aufzurufen. Im folgenden Abschnitt wird eine Beispielabfrage zum Anzeigen von Cloud Service Mesh-Logs angezeigt. Sie können jedoch den vorherigen Link verwenden, um Ihre eigene Abfrage zu erstellen.

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

    Zu „Log-Explorer“

  2. Wählen Sie in der Liste Ressource
    • Wenn Sie die Dienstrouting-APIs verwenden, wählen Sie Gateway Scope oder Mesh aus.
    • Wenn Sie die älteren APIs verwenden, wählen Sie GCE Network aus.
  3. Wählen Sie in der Liste Logname trafficdirector.googleapis.com/events aus.
  4. Klicken Sie auf Abfrage ausführen.

Felder für Cloud Service Mesh-Logeinträge

Feld Beschreibung
node_id ID des xDS-Clientknotens, wie vom xDS-Client bereitgestellt.
client_type Typ des xDS-Clients, der mit Cloud Service Mesh verbunden ist. Optionen:
  • ENVOY
  • GRPC-JAVA
  • GRPC-C++
  • GRPC-PYTHON
  • GRPC-GO
  • UNKNOWN
node_ip IP-Adresse des Knotens, wie vom Client bereitgestellt.
api_version Die xDS API-Version, die von xDS-Clients für die Verbindung mit Cloud Service Mesh verwendet wird. Die möglichen Werte sind V2 und V3.
description Textbeschreibung des Ereignisses mit zusätzlichen Details.

Beispiel für Logeinträge

Beispiel für einen Logeintrag Beschreibung
„Cloud Service Mesh konnte keine Konfiguration für den xDS-Client finden.“ Dieses Log wird generiert, wenn der xDS-Client von Cloud Service Mesh abgelehnt wird, da keine Konfiguration vorhanden ist. Dies kann an der unvollständigen Einrichtung von Cloud Service Mesh-relevanten API-Ressourcen liegen.
"Client erfolgreich verbunden." Diese Art Lognachrichten wird generiert, wenn ein Client eine erfolgreiche Verbindung zu Cloud Service Mesh herstellt.
"Client erfolgreich getrennt." Diese Art Lognachrichten wird immer generiert, wenn ein etablierter Client von Cloud Service Mesh getrennt wird.
„Metadatenvariable TRAFFICDIRECTOR_INTERCEPTION_PORT ist nicht festgelegt. Die Routingkonfiguration für den Interception-Listener ist vorhanden, wird jedoch ignoriert.“ Diese Art Lognachrichten wird generiert, wenn Cloud Service Mesh-Ressourcen richtig konfiguriert sind, die TRAFFICDIRECTOR_INTERCEPTION_PORT-Variable aber nicht in den xDS-Client-Knotenmetadaten festgelegt ist, sodass diese Konfiguration dem Client nicht hinzugefügt werden kann.
"Interception-Listener wurde auf dem angegebenen Port 15001 aufgebaut, aber die Routingkonfiguration ist nicht vorhanden." Diese Art Logeintrag wird generiert, wenn die TRAFFICDIRECTOR_INTERCEPTION_PORT-Variable in den Metadaten des xDS-Clientknotens festgelegt ist, aber keine Ressourcen für Cloud Service Mesh konfiguriert wurden, um eine vollständige xDS-Antwort zu generieren.
„Senden von ADA-Antworten von Cloud Service Mesh ist fehlgeschlagen. Die letzte Discovery-Anfrage des Knotens enthielt eine falsche Version und/oder eine Nonce.“ Diese Art von Lognachrichten wird generiert, wenn Cloud Service Mesh aufgrund der beschädigten Kommunikation vom xDS-Client die xDS-Antwort nicht korrekt verarbeiten konnte. Diese Meldung weist auf einen Implementierungsfehler im Client hin. Wir empfehlen deshalb, die Logs des Clients zu prüfen.
„Client sendet regionenübergreifenden Traffic an Backend-Dienst backend_service_id. Quellregion: source_region Zielregion(en): destination_region1, destination_region2 Diese Art von Lognachrichten wird generiert, wenn ein Client an Cloud Service Mesh meldet, dass er regionenübergreifenden Traffic von einer Quellregion an eine oder mehrere Zielregionen gesendet hat.

Messwerte aufrufen

Cloud Service Mesh exportiert drei Messwerte an Cloud Monitoring: xDS API Connected Streams, Request count und Request count by zone. xDS API Connected Streams gibt die Anzahl der Clients an, die mit Ihrer Kontrollebene verbunden sind. Request count gibt die Anzahl der an einen Backend-Dienst gesendeten Anfragen an, gruppiert nach Quellregion, Zielregion und Anfragestatus. Anfrageanzahl nach Zone gibt die Anzahl der Anfragen an, die an einen Backend-Dienst gesendet werden, gruppiert nach Quellzone, Zielzone und Anfragestatus. Verwenden Sie den Metrics Explorer, um diese Messwerte anzuzeigen.

So rufen Sie Cloud Service Mesh-Messwerte auf:

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

    Zum Metrics Explorer

  2. Wählen Sie in der Liste Ressourcentyp eine Ressource aus.
    • Wenn Sie die Dienstrouting-APIs verwenden, wählen Sie Gateway Scope oder Mesh aus.
    • Wenn Sie die älteren APIs verwenden, wählen Sie Network aus.
  3. Wählen Sie in der Liste Messwert connected_clients aus.
  4. Kehren Sie zur Liste Ressourcentyp zurück und wählen Sie Compute Engine Backend Service aus.
  5. Wählen Sie in der Liste Messwert entweder Request count oder Request count by zone aus.

Alternativ können Sie eine Abfrage verwenden, um die regionenübergreifende Anzahl von Anfragen anzuzeigen:

  1. Wählen Sie MQL aus.
  2. Geben Sie im Feld die folgende Beispielabfrage ein:
    fetch gce_backend_service
    | metric 'trafficdirector.googleapis.com/xds/server/request_count'
    | filter ( ne(metric.source_region, metric.destination_region))
    | align rate(1m)
    | every 1m
    | group_by [metric.source_region, metric.destination_region, resource.backend_service_id],
    [value_request_count_aggregate: aggregate(value.request_count)]
    
  3. Klicken Sie auf Abfrage ausführen.

Logbasierte Messwerte und Benachrichtigungen einrichten

Für die folgenden Schritte müssen Sie logbasierte Messwerte einrichten. Weitere Informationen zum Einrichten von logbasierten Messwerten finden Sie in der Übersicht.

Sie können Benachrichtigungen so konfigurieren, dass Sie benachrichtigt werden, sobald benutzerdefinierte Nachrichten in den enthaltenen Logs angezeigt werden. Diese Warnungen können den Operator benachrichtigen, wenn etwas unerwartetes auftritt. Beispiel: Wenn eine Änderung der Cloud Service Mesh-Konfiguration zu API-Ressourcenkonflikten führt, können Sie einen entsprechenden Hinweis über die Fehlermeldung erhalten. Informationen zum Einrichten von Benachrichtigungen für logbasierte Messwerte finden Sie unter Diagramme und Benachrichtigungen konfigurieren.