Sie können fehlende Cloud Monitoring-Benachrichtigungen diagnostizieren und beheben, indem Sie notification_channel_events-Logs im Log-Explorer untersuchen. Anschließend können Sie Probleme bei der Zustellung und Konfiguration über Webhook-, Pub/Sub- und SMS-Kanäle beheben oder Benachrichtigungsrichtlinien für das Herunterfahren von VMs und Messwerte für die Anzahl der Anfragen anpassen.
Benachrichtigungen werden nicht empfangen
Wenn Sie über keinen der konfigurierten Benachrichtigungskanäle Benachrichtigungen erhalten, gehen Sie so vor:
-
Rufen Sie in der Google Cloud Console das und die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
- Wählen Sie das entsprechende Google Cloud Projekt aus.
Protokolle für Benachrichtigungschannel-Ereignisse abfragen:
- Maximieren Sie das Menü Logname und wählen Sie notification_channel_events aus.
- Maximieren Sie das Menü Schweregrad und wählen Sie Fehler aus.
- Optional: Wenn Sie einen benutzerdefinierten Zeitraum auswählen möchten, verwenden Sie die Zeitraumauswahl.
- Klicken Sie auf Abfrage ausführen.
Mit 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=ERRORDie Zusammenfassungszeile und das Feld
jsonPayloadenthalten 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
Dieser Abschnitt gilt, wenn Sie keine Benachrichtigungen über einen konfigurierten Webhook-Benachrichtigungskanal erhalten.
Privater Endpunkt
Wenn Sie einen privaten Endpunkt haben, verwenden Sie Pub/Sub-Benachrichtigungen in Kombination mit einem Pull-Abo für dieses Benachrichtigungsthema. Sie können keine Webhooks für Benachrichtigungen an private Endpunkte verwenden.
Wenn Sie einen Pub/Sub-Benachrichtigungskanal konfigurieren, werden Benachrichtigungen zu Benachrichtigungen an eine Pub/Sub-Warteschlange mit Identity and Access Management-Steuerelementen gesendet. Jeder Dienst, der ein Pub/Sub-Thema abfragen oder überwachen kann, kann diese Benachrichtigungen nutzen. Beispielsweise können Anwendungen, die auf App Engine, Cloud Run oder Compute Engine-VMs ausgeführt werden, 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, aber keine Regeln für Firewalls oder eingehenden Zugriff.
Öffentlicher Endpunkt
Sehen Sie sich Ihre Cloud Logging-Logeinträge an, um herauszufinden, warum die Zustellung fehlgeschlagen ist.
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
Wenn Sie keine Benachrichtigungen über einen konfigurierten Pub/Sub-Benachrichtigungskanal erhalten, können Sie anhand der Logs den Fehler diagnostizieren und beheben. In diesem Abschnitt werden die Logeinträge beschrieben, die das System schreibt, wenn eine Benachrichtigung nicht gesendet werden kann. Anhand der Informationen in diesem Abschnitt können Sie die Ursache des Fehlers beheben.
Die Logs enthalten einen Failed to authenticate as service account-Fehler
Wenn Sie das notification_channel_events-Log nach Fehlern durchsuchen, finden Sie möglicherweise einen Logeintrag, dessen Feld summary die folgende Meldung enthält:
Failed to authenticate as service account service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Dieser Fehler tritt auf, wenn das Dienstkonto für Benachrichtigungen nicht vorhanden ist. Daher werden keine Benachrichtigungen gesendet.
So prüfen Sie, ob das Dienstkonto vorhanden ist:
-
Rufen Sie in der Google Cloud Console die Seite IAM auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin lautet.
Suchen Sie nach einem Dienstkonto mit der folgenden Namenskonvention:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.comWenn dieses Dienstkonto nicht aufgeführt ist, wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
Damit Monitoring das Dienstkonto für Benachrichtigungen erstellt, müssen Sie mit dem Erstellen eines Pub/Sub-Benachrichtigungskanals beginnen:
-
Rufen Sie in der Google Cloud Console die Seite notifications Benachrichtigungen auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Klicken Sie auf Benachrichtigungskanäle bearbeiten
Klicken Sie im Abschnitt Cloud Pub/Sub auf Add new (Neu hinzufügen).
Beim Monitoring wird das Benachrichtigungs-Dienstkonto erstellt, falls es noch nicht vorhanden ist. Im Dialogfeld Pub/Sub-Kanal erstellen wird der Name des Benachrichtigungsdienstkontos angezeigt.
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.
Gewähren Sie dem Dienstkonto die Berechtigungen zum Veröffentlichen in Ihren Pub/Sub-Themen:
- Öffnen Sie in einem neuen Browsertab das Dokument Benachrichtigungskanal erstellen.
- Wählen Sie den Tab Pub/Sub aus und folgen Sie dann der Anleitung im Abschnitt Dienstkonto autorisieren auf der Seite.
Die Logs enthalten einen PERMISSION_DENIED-Fehler
Wenn Sie das notification_channel_events-Log nach Fehlern durchsuchen, finden Sie möglicherweise einen Logeintrag, dessen Feld summary die folgende Meldung enthält:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID. Possible causes: 1) you don't have the required role (https://cloud.google.com/monitoring/support/notification-options#pubsub); or 2) Cloud Pub/Sub API is not enabled in your project: PERMISSION_DENIED
Dieser Fehler tritt auf, wenn das Dienstkonto für Benachrichtigungen nicht autorisiert wurde, Benachrichtigungen für die relevanten Pub/Sub-Themen zu senden, oder wenn die Pub/Sub API in Ihrem Projekt nicht aktiviert ist.
Wenn Sie die Berechtigungen für ein Dienstkonto aufrufen möchten, können Sie dieGoogle Cloud -Konsole oder den Google Cloud CLI-Befehl verwenden:
- Auf der Seite IAM in der Google Cloud Console werden die Rollen für jedes Dienstkonto aufgeführt.
- Auf der Seite Themen von Pub/Sub in der Google Cloud Console ist jedes Thema aufgeführt. Wenn Sie ein Thema auswählen, werden auf dem Tab Berechtigungen die Rollen aufgeführt, die Dienstkonten zugewiesen sind.
Führen Sie den folgenden Google Cloud CLI-Befehl aus, um alle Dienstkonten und ihre Rollen aufzulisten:
gcloud projects get-iam-policy PROJECT_IDHier ist eine Teilantwort für 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.publisherDie Befehlsantwort enthält nur Rollen, keine Autorisierung pro Thema.
Führen Sie den folgenden Befehl aus, um die IAM-Bindungen für ein bestimmtes Thema aufzulisten:
gcloud pubsub topics get-iam-policy TOPIC_IDDas folgende Beispiel zeigt 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 Benachrichtigungsdienstkontos finden Sie unter Dienstkonto autorisieren.
Die Logs enthalten einen FAILED_PRECONDITION-Fehler.
Wenn Sie das notification_channel_events-Log nach Fehlern durchsuchen, finden Sie möglicherweise einen Logeintrag, dessen Feld summary die folgende Meldung enthält:
An error occurred while publishing notification to Cloud Pub/Sub topic TOPIC_ID: FAILED_PRECONDITION
Dieser Fehler tritt auf, wenn Pub/Sub eine Veröffentlichungsanfrage von Monitoring ablehnt, weil das Zielthema eine erforderliche Vorbedingung nicht erfüllt. Häufige Ursachen für diesen Fehler:
Richtlinie für die Nachrichtenspeicherung und Einschränkungen des Datenstandorts: Die Richtlinie für die Nachrichtenspeicherung Ihres Themas schränkt die Google Cloud Regionen ein, in denen Nachrichten verarbeitet oder gespeichert werden können:
- Übertragungserzwingung in einer nicht zulässigen Region: In der Richtlinie für die Speicherung von Nachrichten des Themas ist
enforceInTransitauftruefestgelegt und die Veröffentlichungsanfrage geht in einer Region ein, die nicht inallowedPersistenceRegionsenthalten ist. WennenforceInTransitgleichtrueist, lehnt Pub/Sub Anfragen aus nicht zulässigen Regionen ab, anstatt sie weiterzuleiten. Wenn für das Thema KI-Inferenz-Transformationen für einzelne Nachrichten verwendet werden, muss die Veröffentlichungsregion auch von der Transformation zugelassen werden. - Eingeschränkte zulässige Persistenzregionen: Für das Thema ist
enforceInTransitauffalsefestgelegt und die Veröffentlichungsanfrage geht außerhalb vonallowedPersistenceRegionsein. Pub/Sub kann die Anfrage jedoch nicht weiterleiten, da kein geeigneter Cluster verfügbar ist undallowedPersistenceRegionsnur private oder eingeschränkte Regionen enthält. - Regionenübergreifende synchrone Replikation ohne gültige sekundäre Region: Das Thema verwendet die regionenübergreifende synchrone Replikation und hat eine Richtlinie für die Nachrichtenspeicherung, aber
allowedPersistenceRegionsenthält keine gültige sekundäre Replikationsregion für den Veröffentlichungsort. - Regionaler Endpunkt ohne Erzwingung der Übertragung: Die Veröffentlichungsanfrage wird an einen regionalen Endpunkt weitergeleitet, aber die Speicherrichtlinie für Themennachrichten hat
enforceInTransitauffalsefestgelegt.
Um Fehler bei der Speicherrichtlinie für Nachrichten zu beheben, aktualisieren Sie die Speicherrichtlinie für Nachrichten oder die Regionskonfiguration für Single Message Transforms Ihres Themas so, dass
allowedPersistenceRegionsdie Veröffentlichungsregion und alle erforderlichen sekundären Replikationsregionen enthält, oder legen SieenforceInTransitauffalsefest, wenn keine regionale Erzwingung während der Übertragung erforderlich ist.- Übertragungserzwingung in einer nicht zulässigen Region: In der Richtlinie für die Speicherung von Nachrichten des Themas ist
Fehler bei kundenverwalteten Verschlüsselungsschlüsseln (CMEK): Ihr Thema ist für die Verwendung eines kundenverwalteten Verschlüsselungsschlüssels aus Cloud Key Management Service (Cloud KMS) konfiguriert und Pub/Sub kann die veröffentlichte Nachricht nicht verschlüsseln:
- Berechtigung für den Cloud KMS-Schlüssel wurde verweigert: Cloud KMS gibt einen
PERMISSION_DENIED-Fehler zurück, wenn Pub/Sub versucht, die Nachricht zu verschlüsseln. Pub/Sub meldet dies alsFAILED_PRECONDITION. Dieser Fehler tritt beispielsweise auf, wenn der Pub/Sub-Dienst-Agent nicht die Rolle „CryptoKey Encrypter/Decrypter“ (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den Schlüssel hat. - Nicht verwendbarer Cloud KMS-Schlüsselstatus: Cloud KMS gibt einen
FAILED_PRECONDITION-Fehler zurück, weil die Schlüsselversion deaktiviert oder gelöscht wurde oder weil ein Schlüssel des externen Schlüsselmanagers nicht erreichbar ist.
Prüfen Sie, ob die Cloud KMS-Schlüsselversion aktiviert und erreichbar ist, und ob der Pub/Sub-Dienst-Agent die Rolle
roles/cloudkms.cryptoKeyEncrypterDecrypterfür den Schlüssel hat, um CMEK-Fehler zu beheben.- Berechtigung für den Cloud KMS-Schlüssel wurde verweigert: Cloud KMS gibt einen
Sie werden nicht benachrichtigt, wenn eine VM heruntergefahren wird
Wenn Sie benachrichtigt werden möchten, wenn eine VM heruntergefahren wird, erstellen Sie eine Verfügbarkeitsdiagnose, um die VM regelmäßig abzufragen, und erstellen Sie dann eine Benachrichtigungsrichtlinie, um diese Verfügbarkeitsdiagnose zu überwachen. Wenn Sie eine Virtual Private Cloud (VPC) verwenden, müssen Sie möglicherweise einen privaten Uptime-Check erstellen.
Eine Benachrichtigungsrichtlinie, die den Messwert compute.googleapis.com/instance/uptime überwacht, benachrichtigt Sie nicht, wenn die VM heruntergefahren wird. Für diese Messwerte werden mit Benachrichtigungsrichtlinien nur Zeitreihen für VM-Instanzen überwacht, die sich im Status RUNNING befinden. Wenn sich eine VM in einem anderen Status befindet, z. B. STOPPED oder DELETED, wird sie nicht überwacht. Informationen zu VM-Instanzstatus finden Sie unter Lebenszyklus von VM-Instanzen.
Benachrichtigungen für Benachrichtigungsrichtlinien für die Anzahl der Anfragen werden nicht empfangen
Wenn Sie keine Benachrichtigungen für eine Benachrichtigungsrichtlinie erhalten, mit der der Messwert serviceruntime.googleapis.com/api/request_count überwacht wird, muss der Ausrichtungszeitraum der Richtlinie höchstens 7 Stunden und 30 Minuten betragen.
SMS-Benachrichtigungen oder Bestätigungscodes werden nicht empfangen
Wenn Sie keine SMS-Benachrichtigungen oder Bestätigungscodes erhalten, haben Sie möglicherweise das SMS-Nachrichtenlimit erreicht. Möglicherweise gibt es Protokolle, die diesen Fehler bestätigen. Prüfen Sie Ihre Logs auf Denied quota token.
Hinweis: SMS sind kein zuverlässiger Benachrichtigungskanaltyp und sind in bestimmten Regionen möglicherweise nicht verfügbar. Verlassen Sie sich nicht nur auf SMS-Kanäle für Benachrichtigungen. Konfigurieren Sie stattdessen zusätzliche Benachrichtigungskanäle wie E-Mail.