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, dass Sie bei Vorfällen benachrichtigt werden. Du erhältst 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. Fragen Sie die Logs nach Ereignissen in Benachrichtigungskanälen ab:

    1. Maximieren Sie das Menü Protokollname 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 normalerweise Fehler Informationen. Wenn beispielsweise ein Gateway-Fehler auftritt, enthält die Zusammenfassungszeile „failed with 502 Bad Gateway“.

Keine Webhook-Benachrichtigungen empfangen

Sie konfigurieren einen Webhook-Benachrichtigungskanal und erwarten, dass Sie benachrichtigt werden, wenn Vorfälle auftreten. Sie erhalten keine Benachrichtigungen.

Privater Endpunkt

Webhooks können nur für Benachrichtigungen verwendet werden, 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, Benachrichtigungen werden an eine Pub/Sub-Warteschlange mit Identity and Access Management gesendet. Steuerelementen. Diese Benachrichtigungen können von allen Diensten verwendet werden, die ein Pub/Sub-Thema abfragen oder beobachten können. Zum Beispiel Anwendungen, die auf Virtuelle Maschinen (App Engine, Cloud Run oder Compute Engine) können diese Benachrichtigungen nutzen.

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, keine Regeln für Firewalls oder eingehenden Zugriff erfordern.

Ö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 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 Dienstkonto für Benachrichtigungen nicht vorhanden ist, müssen Sie Erstellen des Pub/Sub-Benachrichtigungskanals starten damit Monitoring das Dienstkonto erstellt:

    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. Im Dialogfeld Pub/Sub-Kanal erstellen wird der Name des Benachrichtigungsdienstkontos angezeigt.

    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. Gewähren Sie dem Dienstkonto die Berechtigung, Ihre Pub/Sub-Themen zu veröffentlichen:

      1. Öffnen Sie das Symbol Dokument für 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 über die Google Cloud Console oder den 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 sind alle Themen aufgeführt. Wenn Sie ein Thema auswählen, werden auf dem Tab Berechtigungen die Rollen aufgeführt, die Dienstkonten gewährt wurden.
    • Führen Sie den folgenden Google Cloud CLI-Befehl aus, um alle Dienstkonten und ihre Rollen aufzulisten:

      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 Themen pro Thema. Autorisierung.

    • 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, damit Sie Erstellen Sie eine Benachrichtigungsrichtlinie, die den Messwert überwacht. compute.googleapis.com/instance/uptime Sie erstellen und konfigurieren die Bedingung so, dass ein Vorfall generiert wird, wenn es ist keine Messwertdaten. Sie definieren die Bedingung nicht mithilfe von Monitoring Query Language (MQL)1 Sie werden nicht benachrichtigt, wenn die virtuelle Maschine (VM) neu gestartet oder heruntergefahren wird.

Diese Benachrichtigungsrichtlinie überwacht nur Zeitachsen für Compute Engine-VM-Instanzen mit dem Status RUNNING. 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.

Erstellen Sie zum Beheben dieses Problems eine Benachrichtigungsrichtlinie zum Überwachen eines Verfügbarkeitsdiagnose. 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 Verfügbarkeitsdiagnosen jedoch nicht möglich sind, können Sie eine Benachrichtigung mit MQL, die Sie darüber informiert, dass die VM heruntergefahren wurde. Über MQL-definierte Bedingungen werden Zeitreihendaten nicht vorgefiltert, die auf dem Status der VM-Instanz. Da MQL Daten nicht nach VM-Status filtert, können Sie das Fehlen von Daten von VMs erkennen, die heruntergefahren werden.

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 eine ausdrucksstarke textbasierte Sprache, die mit Cloud Monitoring API-Aufrufen und in der Google Cloud Console verwendet werden kann. 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 für Benachrichtigungsrichtlinien zur Anzahl der Anfragen werden nicht empfangen

Sie möchten die Anzahl der abgeschlossenen Anfragen überwachen. Sie haben eine Benachrichtigungsrichtlinie erstellt, die den Messwert serviceruntime.googleapis.com/api/request_count überwacht. Sie werden jedoch nicht benachrichtigt, wenn die Anzahl der Anfragen den von Ihnen konfigurierten Grenzwert überschreitet.

Der maximale Ausrichtungszeitraum für den Messwert „Anzahl der Anfragen“ ist 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.