Fehlerbehebung bei fehlenden Benachrichtigungen

Auf dieser Seite wird erläutert, warum Sie möglicherweise nicht wie erwartet Benachrichtigungen erhalten. Außerdem werden mögliche Lösungen für diese Situationen aufgezeigt.

Benachrichtigungen werden nicht empfangen

Sie konfigurieren Benachrichtigungskanäle und erwarten, werden bei Vorfällen benachrichtigt. Sie erhalten keine Benachrichtigungen.

So erhalten Sie Informationen zur Ursache des Fehlers:

  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 das entsprechende Google Cloud-Projekt aus.
  3. Protokolle auf Benachrichtigungskanalereignisse abfragen:

    1. Maximieren Sie das Menü Logname und wählen Sie notification_channel_events aus.
    2. Maximieren Sie das Menü Schweregrad und wählen Sie Fehler aus.
    3. Optional: Über die Zeitraumauswahl können Sie einen benutzerdefinierten Zeitraum festlegen.
    4. Klicken Sie auf Abfrage ausführen.

    In den vorherigen Schritten wird die folgende Abfrage erstellt:

    resource.type:"stackdriver_notification_channel"
    logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events"
    severity=ERROR
    

    Die Zusammenfassungszeile und das Feld jsonPayload enthalten in der Regel Informationen zu Fehlern. Wenn beispielsweise ein Gateway-Fehler auftritt, enthält die Zusammenfassungszeile „failed with 502 Bad Gateway“.

Webhook-Benachrichtigungen werden nicht empfangen

Sie konfigurieren einen Webhook-Benachrichtigungskanal und erwarten, werden bei Vorfällen benachrichtigt. Sie erhalten keine Benachrichtigungen.

Privater Endpunkt

Sie können Webhooks nur dann für Benachrichtigungen verwenden, wenn der Endpunkt öffentlich ist.

Verwenden Sie Pub/Sub-Benachrichtigungen, um dieses Problem zu beheben. kombiniert mit einem Pull-Abo für dieses Benachrichtigungsthema.

Wenn Sie einen Pub/Sub-Benachrichtigungskanal konfigurieren, werden Benachrichtigungen zu Vorfällen an eine Pub/Sub-Warteschlange mit Identity and Access Management-Steuerungen gesendet. Diese Benachrichtigungen können von allen Diensten verwendet werden, die ein Pub/Sub-Thema abfragen oder beobachten können. Diese Benachrichtigungen können beispielsweise von Anwendungen auf virtuellen Maschinen der App Engine, Cloud Run oder Compute Engine verwendet werden.

Wenn Sie ein Pull-Abo verwenden, wird eine Anfrage an Google gesendet, die auf den Empfang einer Nachricht wartet. Für diese Abos ist Zugriff auf Google erforderlich, aber keine Regeln für Firewalls oder den eingehenden Zugriff.

Öffentlicher Endpunkt

Prüfen Sie die Cloud Logging-Logeinträge, um zu ermitteln, warum die Zustellung fehlgeschlagen ist um Informationen zu Fehlern zu erhalten.

Sie können beispielsweise mit dem Log-Explorer nach Logeinträgen für die Benachrichtigungskanalressource suchen. Dazu nutzen Sie einen Filter wie den folgenden:

resource.type="stackdriver_notification_channel"

Pub/Sub-Benachrichtigungen werden nicht empfangen

Sie konfigurieren einen Pub/Sub-Benachrichtigungskanal, erhalten aber keine alle Benachrichtigungen.

Versuchen Sie Folgendes, um diese Problem zu beheben:

  • Prüfen Sie, ob das Dienstkonto für Benachrichtigungen vorhanden ist. Benachrichtigungen werden nicht gesendet, wenn das Dienstkonto gelöscht wurde.

    So prüfen Sie, ob das Dienstkonto vorhanden ist:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM:

      Rufen Sie IAM auf.

      Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM und Verwaltung.

    2. Suchen Sie nach einem Dienstkonto mit der folgenden Namenskonvention:

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

      Wenn dieses Dienstkonto nicht aufgeführt ist, wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.

    Wenn das Benachrichtigungs-Dienstkonto nicht vorhanden ist, müssen Sie mit dem Erstellen des Pub/Sub-Benachrichtigungskanals für Monitoring beginnen, damit das Dienstkonto erstellt wird:

    1. Rufen Sie in der Google Cloud Console die Seite  Benachrichtigungen auf:

      Zu Benachrichtigungen

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

    2. Klicken Sie auf Edit notification channels (Benachrichtigungskanäle bearbeiten).
    3. Klicken Sie im Abschnitt Cloud Pub/Sub auf Add new (Neu hinzufügen).

      Beim Überwachen wird das Benachrichtigungs-Dienstkonto erstellt, falls noch keines vorhanden ist. Dialogfeld Pub/Sub-Kanal erstellen zeigt den Namen des Benachrichtigungsdienstkontos an.

    4. Wenn Sie keinen Benachrichtigungskanal hinzufügen möchten, klicken Sie auf Abbrechen. Andernfalls schließen Sie die Erstellung des Benachrichtigungskanals ab und klicken Sie auf Kanal hinzufügen.

    5. Dem Dienstkonto Berechtigungen zum Veröffentlichen von Pub/Sub erteilen Themen:

      1. Öffnen Sie in einem neuen Browsertab das Dokument Benachrichtigungskanal erstellen.
      2. Wählen Sie den Tab Pub/Sub aus und folgen Sie der Anleitung. im Abschnitt Dienstkonto autorisieren.
  • Prüfen Sie, ob das Benachrichtigungsdienstkonto autorisiert ist, Senden von Benachrichtigungen für die gewünschten Pub/Sub-Themen.

    Sie können die Berechtigungen für ein Dienstkonto in der Google Cloud Console oder mit dem Google Cloud CLI-Befehl aufrufen:

    • Auf der Seite IAM in der Google Cloud Console sind die Rollen für jedes Dienstkonto aufgeführt.
    • Auf der Seite Pub/Sub-Themen in der Google Cloud Console werden alle . Wenn Sie ein Thema auswählen, werden auf dem Tab Berechtigungen die Rollen die Dienstkonten zugewiesen sind.
    • Führen Sie den folgenden Befehl aus, um alle Dienstkonten und ihre Rollen aufzulisten: Google Cloud CLI-Befehl:

      gcloud projects get-iam-policy PROJECT_ID
      

      Im Folgenden finden Sie eine Teilantwort auf diesen Befehl:

          serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/pubsub.publisher
      

      Die Befehlsantwort enthält nur Rollen, keine Berechtigungen pro Thema.

    • Führen Sie den Befehl folgenden Befehl:

      gcloud pubsub topics get-iam-policy TOPIC
      

      Im Folgenden finden Sie eine Beispielantwort für diesen Befehl:

          bindings:
          - members:
            - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    Informationen zum Autorisieren des Dienstkontos für Benachrichtigungen finden Sie unter Dienstkonto autorisieren.

Benachrichtigungen für Benachrichtigungsrichtlinien für Verfügbarkeitsdiagnosen werden nicht empfangen

Sie möchten benachrichtigt werden, wenn eine virtuelle Maschine (VM) neu gestartet oder heruntergefahren wird. Dazu erstellen Sie eine Benachrichtigungsrichtlinie, mit der der Messwert compute.googleapis.com/instance/uptime überwacht wird. Sie erstellen und konfigurieren die Bedingung so, dass ein Vorfall generiert wird, wenn es ist keine Messwertdaten. Sie definieren die Bedingung nicht mit Monitoring Query Language (MQL)1. Sie werden nicht benachrichtigt, wenn die virtuelle Maschine (VM) neu gestartet oder heruntergefahren wird.

Mit dieser Benachrichtigungsrichtlinie werden nur Zeitreihen für Compute Engine-VM-Instanzen überwacht, die sich im Status RUNNING befinden. Zeitreihen für VMs, die sich in einem anderen Status befinden, z. B. STOPPED oder DELETED, werden herausgefiltert, bevor die Bedingung ausgewertet wird. Aufgrund dieses Verhaltens können Sie Benachrichtigungsrichtlinie mit einer Benachrichtigungsbedingung für fehlende Messwerte, um festzustellen, ob eine VM-Instanz ausgeführt wird. Informationen zu den Status von VM-Instanzen finden Sie unter Lebenszyklus von VM-Instanzen.

Um dieses Problem zu beheben, erstellen Sie eine Benachrichtigungsrichtlinie, um eine Verfügbarkeitsdiagnose zu überwachen. Verwenden Sie für private Endpunkte die private Betriebszeit. Überprüfungen.

Eine mögliche Alternative zu Benachrichtigungen bei Verfügbarkeitsdiagnosen sind Benachrichtigungsrichtlinien, die das Fehlen von Daten überwachen. Wir empfehlen dringend, Benachrichtigungen zur Verfügbarkeit Prüfungen statt fehlender Daten: Benachrichtigungsrichtlinien für fehlende Messwerte bei vorübergehenden Problemen mit der Verfügbarkeit von Monitoring-Daten.

Wenn die Verwendung von Verfügbarkeitsdiagnosen jedoch nicht möglich ist, können Sie mit MQL eine Benachrichtigungsrichtlinie erstellen, die Sie benachrichtigt, wenn die VM heruntergefahren wurde. MQL-definierte Bedingungen filtern Zeitreihendaten nicht vorab nach dem Zustand der VM-Instanz. Da MQL Daten nicht nach VM-Zuständen filtert, können Sie damit feststellen, ob keine Daten von heruntergefahrenen VMs vorhanden sind.

Betrachten Sie folgende MQL-Bedingung, die den Messwert compute.googleapis.com/instance/cpu/utilization überwacht:

fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
|absent_for 3m

Wenn eine von dieser Bedingung überwachte VM heruntergefahren wird, wird drei Minuten später ein Vorfall generiert und es werden Benachrichtigungen gesendet. Der absent_for-Wert muss mindestens drei Minuten betragen.

Weitere Informationen zu MQL finden Sie unter Benachrichtigungsrichtlinien mit MQL.

1: MQL ist ein ausdrucksstarker textbasierte Sprache, die mit Cloud Monitoring API-Aufrufen und in der Google Cloud Console So konfigurieren Sie eine Bedingung mit MQL, wenn Sie Folgendes verwenden: in der Google Cloud Console öffnen, müssen Sie den Code-Editor verwenden.

Benachrichtigungen zu Richtlinien für Benachrichtigungen bei einer bestimmten Anzahl von Anfragen werden nicht empfangen

Sie möchten die Anzahl der abgeschlossenen Anfragen im Blick behalten. Sie haben Folgendes erstellt: Benachrichtigungsrichtlinie, die den Messwert überwacht serviceruntime.googleapis.com/api/request_count, aber Sie werden nicht benachrichtigt, wenn die Anzahl der Anfragen den Grenzwert überschreitet, den Sie konfiguriert.

Der maximale Abgleichszeitraum für den Messwert „Anzahl der Anfragen“ beträgt 7 Stunden und 30 Minuten.

Prüfen Sie zur Behebung dieses Problems den Wert des Kalibrierungszeitraums in Ihrer Benachrichtigungsrichtlinie. Wenn der Wert länger als der Maximalwert für diesen Messwert ist, verringern Sie den Wert für des Ausrichtungszeitraums so, dass er nicht mehr als 7 Stunden und 30 Minuten beträgt.