Auf dieser Seite wird erläutert, warum sich einige Benachrichtigungsrichtlinien möglicherweise anders als beabsichtigt verhalten. Weiter werden mögliche Lösungen für diese Situationen aufgezeigt.
Informationen zu den Variablen, die sich auf eine Benachrichtigungsrichtlinie auswirken können, z. B. durch die Auswahl des Zeitfensters für die erneute Prüfung, finden Sie unter Verhalten von messwertbasierten Benachrichtigungsrichtlinien.
Richtlinie zur Laufwerksauslastung erstellt unerwartete Benachrichtigungen
Sie haben eine Benachrichtigungsrichtlinie erstellt, um die „belegte“ Kapazität der Laufwerke in Ihrem System zu überwachen. Diese Richtlinie überwacht den Messwert agent.googleapis.com/disk/percent_used.
Sie möchten nur benachrichtigt werden, wenn die Auslastung eines physischen Laufwerks den in der Bedingung festgelegten Schwellenwert überschreitet. Diese Richtlinie erstellt jedoch Benachrichtigungen, wenn die Laufwerksauslastung jedes physischen Laufwerks unter dem Grenzwert liegt.
Eine bekannte Ursache für unerwartete Benachrichtigungen für diese Richtlinien ist, dass die Bedingungen nicht auf das Monitoring physischer Laufwerke beschränkt sind. Stattdessen überwachen diese Richtlinien alle Laufwerke, einschließlich virtueller Laufwerke, darunter Loopback-Geräte. Wenn ein virtuelles Laufwerk so erstellt wird, dass seine Auslastung 100 % beträgt, wird eine Benachrichtigung für die Richtlinie erstellt.
Betrachten Sie beispielsweise folgende Ausgabe des Linux-Befehls df, der den auf bereitgestellten Dateisystemen verfügbaren Speicherplatz für ein System zeigt:
$ df /dev/root 9983232 2337708 7629140 24% / devtmpfs 2524080 0 2524080 0% /dev tmpfs 2528080 0 2528080 0% /dev/shm ... /dev/sda15 106858 3934 102924 4% /boot/efi /dev/loop0 56704 56704 0 100% /snap/core18/1885 /dev/loop1 129536 129536 0 100% /snap/google-cloud-sdk/150 ...
Für dieses System sollte eine Benachrichtigungsrichtlinie für die Laufwerksauslastung konfiguriert werden, um die Zeitreihen für die Loopback-Geräte /dev/loop0 und /dev/loop1 herauszufiltern. Sie können beispielsweise den Filter device !=~ ^/dev/loop.* hinzufügen, der alle Zeitreihen ausschließt, deren device-Label nicht mit dem regulären Ausdruck ^/dev/loop.* übereinstimmt.
Häufige Ursachen für anomale Warnungen
Sie haben eine Benachrichtigungsrichtlinie erstellt und die Richtlinie scheint vorzeitig oder fälschlicherweise Benachrichtigungen zu erstellen.
Es gibt verschiedene Gründe, warum Sie Benachrichtigungen zu Warnungen erhalten, die scheinbar falsch sind:
Wenn es eine Datenlücke gibt, insbesondere bei Benachrichtigungsrichtlinien mit Bedingungen für fehlende Messwerte oder „kleiner als“-Schwellenwerte, kann eine Benachrichtigung erstellt werden, die scheinbar anomal ist. Manchmal wird die Datenlücke in der Benachrichtigung nicht angezeigt und manchmal wird die Datenlücke automatisch korrigiert:
In Diagrammen werden Lücken beispielsweise möglicherweise nicht angezeigt, da die Werte für fehlende Daten interpoliert werden. Selbst wenn Daten für mehrere Minuten fehlen, werden die fehlenden Punkte im Diagramm verbunden, um die visuelle Kontinuität zu wahren. Eine solche Lücke in den zugrunde liegenden Daten kann ausreichen, damit eine Benachrichtigungsrichtlinie eine Benachrichtigung erstellt.
Punkte in logbasierten Messwerten können verspätet eintreffen und bis zu 10 Minuten in der Vergangenheit nachgefüllt werden. Das Backfill-Verhalten korrigiert die Lücke effektiv. Die Lücke wird ausgefüllt, sobald die Daten eintreffen. Daher kann eine Lücke in einem logbasierten Messwert, die nicht mehr sichtbar ist, dazu geführt haben, dass eine Benachrichtigungsrichtlinie eine Benachrichtigung erstellt hat.
Bedingungen für fehlende Messwerte oder Messwertschwellen, die eine Untergrenze festlegen, werden mit einer kleinen Abfrageverzögerung in Echtzeit ausgewertet. Der Status der Bedingung kann sich zwischen dem Zeitpunkt der Auswertung und dem Zeitpunkt, zu dem die entsprechende Benachrichtigung in Monitoring sichtbar ist, ändern.
Bedingungen, die so konfiguriert sind, dass sie eine Benachrichtigung für einen einzelnen Messwert erstellen, können zu Benachrichtigungen führen, die verfrüht oder falsch erscheinen. Um diese Situation zu vermeiden, sollten Sie festlegen, dass mehrere Messungen erforderlich sind, bevor eine Benachrichtigung erstellt wird. Setzen Sie dazu das Fenster für die erneute Prüfung einer Bedingung auf mehr als das Doppelte der Abtastrate des Messwerts.
Wenn ein Messwert beispielsweise alle 60 Sekunden abgerufen wird, legen Sie das Zeitfenster für die erneute Prüfung auf mindestens 3 Minuten fest. Wenn Sie das Zeitfenster für die erneute Prüfung auf aktuellsten Wert oder auf 0 Sekunden festlegen, kann eine einzelne Messung dazu führen, dass eine Benachrichtigung erstellt wird.
Wenn die Bedingung einer Benachrichtigungsrichtlinie bearbeitet wird, kann es mehrere Minuten dauern, bis die Änderung in der Benachrichtigungsinfrastruktur wirksam wird. In diesem Zeitraum erhalten Sie möglicherweise Benachrichtigungen, die den ursprünglichen Bedingungen der Benachrichtigungsrichtlinie entsprechen.
Wenn Zeitreihendaten eingehen, kann es bis zu einer Minute dauern, bis die Daten in der gesamten Benachrichtigungsinfrastruktur verteilt sind. Während dieses Vorgangs kann eine Benachrichtigungsrichtlinie eine Bedingung als erfüllt bewerten, obwohl die Zeitreihendaten noch nicht an das Zeitreihendiagramm weitergegeben wurden. Daher erhalten Sie möglicherweise eine Benachrichtigung, obwohl das Diagramm nicht darauf hinweist, dass die Bedingung erfüllt ist. Verwenden Sie einen Ausrichtungszeitraum von mindestens fünf Minuten, um die Wahrscheinlichkeit dieser Situation zu verringern.
Durch die Umbenennung des App Hub-Labels
metadata.system_labels.apphub_host_project_idinmetadata.system_labels.apphub_application_containerwerden möglicherweise neue Benachrichtigungen generiert und einige offene Benachrichtigungen nicht geschlossen.Sie müssen nichts weiter unternehmen. Benachrichtigungen werden automatisch geschlossen, wenn keine Daten mehr eingehen und die Dauer für das automatische Schließen abgelaufen ist. Weitere Informationen finden Sie unter Teilweise Messwertdaten.
Benachrichtigung wird nicht geschlossen, wenn keine Daten mehr eingehen
Sie konfigurieren eine Benachrichtigungsrichtlinie, um Benachrichtigungen zu schließen, wenn keine Daten mehr eingehen. In einigen Fällen werden keine Daten mehr empfangen, aber eine Benachrichtigung bleibt offen. Wenn Sie beispielsweise sitzungsspezifische Arbeitslasten wie Google Kubernetes Engine-Pods, Cloud Run-Jobs oder -Überarbeitungen oder Batchaufgaben überwachen, kann eine Benachrichtigung offen bleiben, nachdem die Arbeitslast abgeschlossen ist und keine Messwertdaten mehr eingehen.
Wenn die zugrunde liegende Ressource, die von einer Benachrichtigungsrichtlinie überwacht wird, das Label metadata.system_labels.state enthält und diese Richtlinie nicht mit der Monitoring Query Language geschrieben wurde, kann Monitoring den Status der Ressource ermitteln. Wenn der Status einer Ressource als deaktiviert bekannt ist, werden Benachrichtigungen von Monitoring nicht automatisch geschlossen, wenn keine Daten mehr eingehen.
Verwenden Sie einen der folgenden Ansätze, um dieses Problem zu beheben:
Bearbeiten Sie die Benachrichtigungsrichtlinie und nehmen Sie die folgenden Änderungen vor:
Bearbeiten Sie in der Google Cloud -Console die Benachrichtigungsrichtlinie.
Maximieren Sie auf der Seite Trigger konfigurieren die Option Erweiterte Optionen und setzen Sie das Menü Auswertung fehlender Daten auf Fehlende Datenpunkte werden als Werte behandelt, die nicht gegen die Richtlinienbedingung verstoßen. Diese Auswahl entspricht dem Enum
EVALUATION_MISSING_DATA_INACTIVE.Legen Sie auf der Seite Benachrichtigungen und Name im Menü Dauer bis zur automatischen Schließung von Benachrichtigungen den Wert „30 Minuten“ fest.
Nachdem Sie Ihre Benachrichtigungsrichtlinie aktualisiert haben, schließt Monitoring die Benachrichtigung, wenn keine Beobachtungen mehr eingehen und die Bedingung anhand fehlender Daten ausgewertet wird oder wenn die Dauer für das automatische Schließen abläuft.
Schließen Sie die Benachrichtigung manuell. Weitere Informationen finden Sie unter Benachrichtigung kann nicht manuell geschlossen werden. Je nach Ressourcenstatus kann eine Benachrichtigung manuell geschlossen werden.
Benachrichtigungsdetails können aufgrund eines Berechtigungsfehlers nicht angezeigt werden
Rufen Sie in der Google Cloud Console die Seite „Benachrichtigungen“ auf und wählen Sie eine Benachrichtigung aus. Sie erwarten, dass die Detailseite geöffnet ist. Die Detailseite wird jedoch nicht geöffnet und die Meldung „Berechtigung verweigert“ wird angezeigt.
Wenn Sie alle Benachrichtigungsdetails mit Ausnahme von Messwertdaten aufrufen möchten, prüfen Sie, ob Sie die IAM-Rollen (Identity and Access Management) „Monitoring Cloud Console Incident Viewer“ (roles/monitoring.cloudConsoleIncidentViewer) und „Stackdriver Accounts Viewer“ (roles/stackdriver.accounts.viewer) haben.
Wenn Sie alle Benachrichtigungsdetails einschließlich der Messwertdaten aufrufen und Benachrichtigungen bestätigen oder schließen möchten, benötigen Sie die IAM-Rollen „Monitoring-Betrachter“ (roles/monitoring.viewer) und „Monitoring Cloud Console Incident Editor“ (roles/monitoring.cloudConsoleIncidentEditor).
Benutzerdefinierte Rollen können nicht die Berechtigung gewähren, die zum Aufrufen von Benachrichtigungsdetails erforderlich ist.
Benachrichtigung wird nicht erstellt, wenn die Bedingung erfüllt ist
Sie haben eine Benachrichtigungsrichtlinie mit einer Bedingung erstellt. Das Diagramm für die Benachrichtigungsrichtlinie zeigt, dass die überwachten Daten gegen die Bedingung verstoßen, aber Sie haben keine Benachrichtigung erhalten und es wurde keine Benachrichtigung erstellt.
Wenn eines der folgenden Kriterien erfüllt ist, nachdem die Bedingung der Benachrichtigungsrichtlinie erfüllt wurde, wird die Benachrichtigung von Monitoring nicht geöffnet.
- Die Benachrichtigungsrichtlinie ist pausiert.
- Die Benachrichtigungsrichtlinie ist deaktiviert.
- Die Benachrichtigungsrichtlinie hat die maximale Anzahl von Benachrichtigungen erreicht, die gleichzeitig geöffnet werden können.
Der Status der Ressource, die von der Benachrichtigungsrichtlinie überwacht wird, ist deaktiviert. Monitoring kann den Status einer Ressource ermitteln, wenn die Ressource das Label
metadata.system_labels.stateenthält und die Benachrichtigungsrichtlinie nicht mit der Monitoring Query Language geschrieben wurde.
In den Benachrichtigungsdetails wird das falsche Projekt aufgeführt
Sie erhalten eine Benachrichtigung und in der Zusammenfassung der Bedingung wird dasGoogle Cloud -Projekt aufgeführt, in dem die Benachrichtigung erstellt wurde, d. h. das Bereichsprojekt. Sie erwarten jedoch, dass in der Benachrichtigung der Name des Projekts Google Cloud aufgeführt wird, in dem die Zeitreihe gespeichert ist, die Monitoring veranlasst hat, die Benachrichtigung zu erstellen.
Die in der Bedingung einer Benachrichtigungsrichtlinie angegebenen Aggregationsoptionen bestimmen das Google Cloud Projekt, auf das in einer Benachrichtigung verwiesen wird:
Wenn die Aggregationsoptionen das Label entfernen, in dem die Projekt-ID gespeichert ist, wird in den Benachrichtigungsinformationen das Projekt zur Bereichsdefinition aufgeführt. Wenn Sie die Daten beispielsweise nur nach Zone gruppieren, wird nach der Gruppierung das Label entfernt, in dem die Projekt-ID gespeichert ist.
Wenn die Aggregationsoptionen das Label beibehalten, in dem die Projekt-ID gespeichert ist, enthalten die Benachrichtigungen den Namen des Projekts in Google Cloud , in dem die Zeitreihe gespeichert ist, die die Benachrichtigung auslöst. Wenn Sie das Projekt-ID-Label beibehalten möchten, fügen Sie das Label
project_idin das Gruppierungsfeld ein oder gruppieren Sie die Zeitreihe nicht.
Benachrichtigung kann nicht manuell geschlossen werden
Du hast eine Benachrichtigung über eine Warnung in deinem System erhalten. Sie rufen die Detailseite der Benachrichtigung auf und klicken auf Benachrichtigung schließen. Sie erwarten, dass die Benachrichtigung geschlossen wird. Sie erhalten jedoch die Fehlermeldung:
Unable to close alert with active conditions.
Sie können eine Benachrichtigung nur schließen, wenn im letzten Benachrichtigungszeitraum keine Beobachtungen eingehen. Der Benachrichtigungszeitraum, der in der Regel einen Standardwert von 5 Minuten hat, wird als Teil der Bedingung der Benachrichtigungsrichtlinie definiert und ist konfigurierbar. Die vorherige Fehlermeldung weist darauf hin, dass innerhalb des Benachrichtigungszeitraums Daten empfangen wurden.
Der folgende Fehler tritt auf, wenn eine Benachrichtigung aufgrund eines internen Fehlers nicht geschlossen werden kann:
Unable to close alert. Please try again in a few minutes.
Wenn Sie die vorherige Fehlermeldung sehen, können Sie den Schließvorgang wiederholen oder die Benachrichtigung automatisch von Monitoring schließen lassen.
Weitere Informationen finden Sie unter Benachrichtigungen verwalten.
Mit Richtlinien mit mehreren Bedingungen werden mehrere Benachrichtigungen erstellt
Sie haben eine Benachrichtigungsrichtlinie mit mehreren Bedingungen erstellt und diese Bedingungen mit einem logischen AND verknüpft. Sie erwarten, dass Sie eine Benachrichtigung erhalten und eine Warnung erstellt wird, wenn alle Bedingungen erfüllt sind. Sie erhalten jedoch mehrere Benachrichtigungen und sehen, dass mehrere Benachrichtigungen erstellt wurden.
Monitoring sendet eine Benachrichtigung und erstellt eine Benachrichtigung für jede Zeitreihe, die dazu führt, dass eine Bedingung erfüllt wird. Wenn Sie Benachrichtigungsrichtlinien mit mehreren Bedingungen haben, erhalten Sie möglicherweise eine Benachrichtigung und einen Alarm für jede Zeitreihe, die dazu führt, dass die verknüpften Bedingungen erfüllt werden.
Angenommen, Sie haben eine Benachrichtigungsrichtlinie mit zwei Bedingungen, wobei jede Bedingung drei Zeitreihen überwacht. Die Richtlinie sendet nur dann eine Benachrichtigung, wenn beide Bedingungen erfüllt sind. Wenn die Bedingungen Ihrer Richtlinie erfüllt sind, können Sie zwischen 2 (eine Zeitreihe ist in jeder Bedingung erfüllt) und 6 (alle Zeitreihen sind in jeder Bedingung erfüllt) Benachrichtigungen und Warnungen erhalten.
Sie können Monitoring nicht so konfigurieren, dass eine einzelne Benachrichtigung erstellt und gesendet wird.
Weitere Informationen finden Sie unter Wann Monitoring Benachrichtigungen sendet und Benachrichtigungen erstellt.
Die Variable für ein Messwertlabel hat den Wert null.
Sie erstellen eine Benachrichtigungsrichtlinie und fügen dem Dokumentationsabschnitt eine Variable für ein Messwertlabel hinzu.
Sie erwarten, dass in Benachrichtigungen der Wert des Labels angezeigt wird, auf das die Variable verweist. Der Wert der Variablen ist jedoch auf null festgelegt.
Versuchen Sie Folgendes, um dieses Problem zu beheben:
Prüfen Sie, ob die Aggregationseinstellungen für die Benachrichtigungsrichtlinie das Label beibehalten, das Sie anzeigen möchten.
Angenommen, Sie erstellen eine Benachrichtigungsrichtlinie, die die von VM-Instanzen geschriebenen Laufwerksbytes überwacht. In der Dokumentation soll das Gerät aufgeführt werden, das die Benachrichtigung verursacht. Daher fügen Sie dem Dokumentationsfeld Folgendes hinzu:
device: ${metric.label.device}.Außerdem müssen Sie prüfen, ob der Wert des Labels
devicedurch Ihre Aggregationseinstellungen beibehalten wird. Sie können dieses Label beibehalten, indem Sie die Aggregationsfunktion aufnonesetzen oder prüfen, ob die Gruppierungsauswahldeviceenthält.Prüfen Sie die Syntax und Anwendbarkeit der Variable. Informationen zur Syntax finden Sie unter Benachrichtigungen mit benutzerdefinierter Dokumentation versehen.
Die Variable
log.extracted_label.KEYwird beispielsweise nur für logbasierte Benachrichtigungsrichtlinien unterstützt. Diese Variable wird immer alsnulldargestellt, wenn eine Benachrichtigungsrichtlinie einen Messwert überwacht, auch einen logbasierten Messwert.
Keine neuen Daten nach Änderungen an Messwertdefinitionen
Sie ändern die Definition eines benutzerdefinierten Messwerts, z. B. indem Sie den Filter ändern, den Sie in einem logbasierten Messwert verwendet haben, und die Benachrichtigungsrichtlinie spiegelt die Änderung an der Messwertdefinition nicht wider.
Um dieses Problem zu beheben, erzwingen Sie die Aktualisierung der Benachrichtigungsrichtlinie, indem Sie den Anzeigenamen der Richtlinie bearbeiten.
Erstellung der Benachrichtigungsrichtlinie in der API schlägt aufgrund eines fehlenden Messwerts fehl
Sie haben vor Kurzem einen Messwert erstellt und dann auf diesen Messwert verwiesen, als Sie versucht haben, eine Benachrichtigungsrichtlinie in der Cloud Monitoring API zu erstellen. Der API-Befehl schlägt jedoch fehl und zeigt den folgenden Fehler an:
Error 404: Cannot find metric(s) that match type = "METRIC_NAME". If a metric was created recently, it could take up to 10 minutes to become available. Please try again soon.
Warten Sie mindestens zehn Minuten und senden Sie die API-Anfrage dann noch einmal, um dieses Problem zu beheben.
Diagramm der Benachrichtigungsrichtlinie zeigt keine Schwellenwertüberschreitung an
Sie haben eine Benachrichtigung erhalten, dass eine Benachrichtigung für Ihre Benachrichtigungsrichtlinie geöffnet wurde. Wenn Sie jedoch die Detailseite für die Richtlinie aufrufen, wird im Diagramm nicht angezeigt, dass der Grenzwert überschritten wurde.
Versuchen Sie, den Zeitraum für das Diagramm zu verkürzen, um dieses Problem zu beheben. Sie können den Zeitraum mit der Zeitraumauswahl in der Symbolleiste oder durch Markieren von Zeiträumen im Diagramm mit dem Mauszeiger verkürzen.
Diagramme haben eine begrenzte Auflösung und zeigen für einige Zeiträume möglicherweise nicht alle Messwerte an.