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 beispielsweise durch die Auswahl des Testwiederholungsfensters auf eine Benachrichtigungsrichtlinie auswirken können, finden Sie unter Verhalten von messwertbasierten Benachrichtigungsrichtlinien.
Richtlinie zur Festplattennutzung löst unerwartete Benachrichtigungen aus
Sie haben eine Benachrichtigungsrichtlinie erstellt, um die „verwendete“ Kapazität der Festplatten in Ihrem System zu überwachen. Mit dieser Richtlinie wird der Messwert agent.googleapis.com/disk/percent_used überwacht.
Sie möchten nur benachrichtigt werden, wenn die Auslastung einer physischen Festplatte den in der Bedingung festgelegten Grenzwert überschreitet. Diese Richtlinie löst jedoch Benachrichtigungen aus, wenn die Festplattenauslastung jeder physischen Festplatte unter dem Grenzwert liegt.
Eine bekannte Ursache für unerwartete Benachrichtigungen für diese Richtlinien ist, dass die Bedingungen nicht auf die Überwachung physischer Festplatten beschränkt sind. Stattdessen überwachen diese Richtlinien alle Laufwerke, einschließlich virtueller Laufwerke, darunter Loopback-Geräte. Wenn ein virtuelles Laufwerk so entworfen wurde, dass seine Auslastung bei 100 % liegt, würde dies die Richtlinie dazu motivieren, eine Benachrichtigung auszulösen.
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 Festplattennutzung 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. Dadurch werden alle Zeitreihen ausgeschlossen, deren Label device nicht mit dem regulären Ausdruck ^/dev/loop.* übereinstimmt.
Häufige Ursachen für Anomaliebenachrichtigungen
Sie haben eine Benachrichtigungsrichtlinie erstellt und die Richtlinie scheint vorzeitig oder fälschlicherweise Benachrichtigungen zu erstellen.
Es gibt verschiedene Gründe, warum Sie Benachrichtigungen über Warnungen erhalten, die anscheinend falsch sind:
Wenn es eine Lücke in den Daten gibt, insbesondere bei Benachrichtigungsrichtlinien mit Bedingungen für fehlende Messwerte oder Messwertschwellen, die eine Untergrenze festlegen, kann eine Benachrichtigung erstellt werden, die anscheinend anomal ist. Manchmal wird die Datenlücke nicht in der Benachrichtigung angezeigt und manchmal wird sie automatisch korrigiert:
In Diagrammen sind Lücken möglicherweise nicht zu sehen, da die Werte für fehlende Daten interpoliert werden. Selbst bei mehreren Minuten an fehlenden Daten werden die fehlenden Punkte im Diagramm ergänzt, um einen visuellen Zusammenhang herzustellen. Eine solche Lücke in den zugrunde liegenden Daten kann ausreichen, damit eine Benachrichtigungsrichtlinie eine Benachrichtigung erstellt.
Punkte in logbasierten Messwerten können zu spät eintreffen und automatisch für die vergangenen 10 Minuten aufgefüllt werden. Das Backfill-Verhalten korrigiert die Lücke effektiv. Die Lücke wird ausgefüllt, sobald die Daten eintreffen. Eine Lücke in einem logbasierten Messwert, die nicht mehr sichtbar ist, kann also dazu geführt haben, dass durch eine Benachrichtigungsrichtlinie eine Benachrichtigung erstellt wurde.
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 angezeigt wird, ändern.
Bedingungen, die so konfiguriert sind, dass eine Benachrichtigung auf Basis einer einzelnen Messung erstellt wird, können dazu führen, dass Benachrichtigungen vorzeitig oder falsch erscheinen. Achten Sie zur Vermeidung dieser Situation darauf, dass mehrere Messungen erforderlich sind, bevor eine Benachrichtigung erstellt wird. Dazu legen Sie das Retest-Zeitfenster einer Bedingung auf mehr als das Doppelte der Stichprobenrate des Messwerts fest.
Wenn ein Messwert beispielsweise alle 60 Sekunden abgerufen wird, legen Sie das Testwiederholungsfenster auf mindestens 3 Minuten fest. Wenn Sie das Fenster für den erneuten Test auf den aktuellsten Wert oder auf gleich 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. Während dieses Zeitraums erhalten Sie möglicherweise Benachrichtigungen zu Benachrichtigungen, die die ursprünglichen Bedingungen der Benachrichtigungsrichtlinie erfüllt haben.
Wenn Zeitreihendaten eingehen, kann es bis zu einer Minute dauern, bis die Daten in der gesamten Benachrichtigungsinfrastruktur verfügbar sind. Während dieses Vorgangs kann es vorkommen, dass in einer Benachrichtigungsrichtlinie eine Bedingung als erfüllt ausgewertet wird, obwohl die Zeitreihendaten noch nicht im Zeitreihendiagramm angezeigt werden. Daher erhalten Sie möglicherweise eine Benachrichtigung, obwohl das Diagramm nicht darauf hinweist, dass die Bedingung erfüllt ist. Um die Wahrscheinlichkeit dieser Situation zu verringern, sollten Sie einen Ausrichtungszeitraum von mindestens fünf Minuten verwenden.
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 unternehmen. Benachrichtigungen werden automatisch geschlossen, wenn nach Ablauf des Zeitraums für das automatische Schließen keine Daten mehr eingehen. Weitere Informationen finden Sie unter Teilweise Messwertdaten.
Benachrichtigung wird nicht geschlossen, wenn keine Daten mehr eingehen
Sie folgen der Anleitung unter Teilweise Messwertdaten und konfigurieren eine Benachrichtigungsrichtlinie, um Benachrichtigungen zu schließen, wenn keine Daten mehr eingehen. In einigen Fällen werden keine Daten mehr empfangen, aber eine offene Benachrichtigung wird nicht automatisch geschlossen.
Wenn die zugrunde liegende Ressource, die von einer Benachrichtigungsrichtlinie überwacht wird, das Label metadata.system_labels.state enthält und diese Richtlinie nicht in der Monitoring Query Language geschrieben ist, kann Monitoring den Status der Ressource ermitteln. Wenn der Status einer Ressource als deaktiviert bekannt ist, werden Benachrichtigungen im Monitoring nicht automatisch geschlossen, wenn keine Daten mehr eingehen. Sie können diese Benachrichtigungen jedoch manuell schließen.
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 ansehen möchten, müssen 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, müssen Sie die IAM-Rollen „Monitoring-Betrachter“ (roles/monitoring.viewer) und „Monitoring Cloud Console Incident Editor“ (roles/monitoring.cloudConsoleIncidentEditor) haben.
Mit benutzerdefinierten Rollen kann nicht die Berechtigung zum Aufrufen von Benachrichtigungsdetails gewährt werden.
Benachrichtigung wird nicht erstellt, wenn die Bedingung erfüllt ist
Sie haben eine Benachrichtigungsrichtlinie mit einer Bedingung erstellt. Im Diagramm für die Benachrichtigungsrichtlinie ist zu sehen, 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 in 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“. Mit der Überwachung kann der Status einer Ressource ermittelt werden, wenn die Ressource das Label
metadata.system_labels.stateenthält und die Benachrichtigungsrichtlinie nicht in der Monitoring Query Language geschrieben ist.
In der Liste mit Benachrichtigungsdetails wird das falsche Projekt angezeigt
Sie erhalten eine Benachrichtigung und in der Zusammenfassung der Bedingung wird dasGoogle Cloud -Projekt aufgeführt, in dem die Benachrichtigung erstellt wurde, also das Projekt, das als Bereich festgelegt wurde. Sie erwarten jedoch, dass in der Benachrichtigung der Name des Google Cloud -Projekts aufgeführt ist, in dem die Zeitreihen gespeichert sind, die dazu geführt haben, dass Monitoring die Benachrichtigung erstellt hat.
Die in der Bedingung einer Benachrichtigungsrichtlinie angegebenen Aggregationsoptionen bestimmen das Google Cloud Projekt, auf das in einer Benachrichtigung verwiesen wird:
Wenn durch die Aggregationsoptionen das Label entfernt wird, in dem die Projekt-ID gespeichert ist, wird im Benachrichtigungstext das Projekt zur Bereichsdefinition aufgeführt. Wenn Sie die Daten beispielsweise nur nach Zone gruppieren, wird nach der Gruppierung das Label mit der Projekt-ID entfernt.
Wenn die Aggregationsoptionen das Label beibehalten, in dem die Projekt-ID gespeichert ist, enthalten die Benachrichtigungen für die Benachrichtigung den Namen des Google Cloud Projekts, in dem die Zeitreihe gespeichert ist, die die Benachrichtigung auslöst. Wenn Sie das Label „Projekt-ID“ beibehalten möchten, fügen Sie das Label
project_idin das Gruppierungsfeld ein oder gruppieren Sie die Zeitreihen nicht.
Benachrichtigung kann nicht manuell geschlossen werden
Sie haben eine Benachrichtigung über eine Warnung in Ihrem System erhalten. Sie rufen die Detailseite der Benachrichtigung auf und klicken auf Benachrichtigung schließen. Sie erwarten, dass die Benachrichtigung geschlossen wird, erhalten aber 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 im Benachrichtigungszeitraum 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 noch einmal versuchen oder Monitoring den Alarm automatisch 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 Warnungen erstellt werden.
Monitoring sendet eine Benachrichtigung und erstellt eine Warnung für jede Zeitachse, die eine Bedingung erfüllt. Wenn Sie also Benachrichtigungsrichtlinien mit mehreren Bedingungen haben, können Sie möglicherweise eine Benachrichtigung und Benachrichtigung für jede Zeitreihe erhalten, 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 wird in jeder Bedingung erfüllt) und 6 (alle Zeitreihen werden in jeder Bedingung erfüllt) Benachrichtigungen und Warnungen erhalten.
Sie können Monitoring nicht so konfigurieren, dass in diesem Fall eine einzelne Benachrichtigung erstellt und eine einzelne Benachrichtigung gesendet wird.
Weitere Informationen finden Sie unter Wann Monitoring Benachrichtigungen sendet und Warnungen 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 sich die Variable bezieht. Der Wert der Variablen wird jedoch auf null festgelegt.
Versuchen Sie Folgendes, um dieses Problem zu beheben:
Prüfen Sie, ob in den Aggregationseinstellungen für die Benachrichtigungsrichtlinie das Label beibehalten wird, das Sie anzeigen möchten.
Angenommen, Sie erstellen eine Benachrichtigungsrichtlinie, die die von VM-Instanzen geschriebenen Datenträger-Bytes ü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}.Sie müssen auch prüfen, ob der Wert des Labels
devicein Ihren Aggregationseinstellungen beibehalten wird. Sie können dieses Label beibehalten, indem Sie die Aggregationsfunktion aufnonefestlegen oder dafür sorgen, dass die Gruppierungsauswahlendeviceenthalten.Prüfen Sie die Syntax und Anwendbarkeit der Variablen. 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 alsnullgerendert, 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. durch Ändern des Filters, den Sie in einem logbasierten Messwert verwendet haben, und die Benachrichtigungsrichtlinie spiegelt die Änderung der Messwertdefinition nicht wider.
Um dieses Problem zu beheben, erzwingen Sie die Aktualisierung der Benachrichtigungsrichtlinie, indem Sie den Anzeigenamen der Richtlinie bearbeiten.
Erstellung von Benachrichtigungsrichtlinien in der API schlägt aufgrund fehlender Messwerte fehl
Sie haben vor Kurzem einen Messwert erstellt und dann darauf verwiesen, als Sie versucht haben, eine Benachrichtigungsrichtlinie in der Cloud Monitoring API zu erstellen. Der API-Befehl schlägt jedoch fehl und es wird der folgende Fehler angezeigt:
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.
Im Diagramm der Benachrichtigungsrichtlinie wird kein Grenzwertverstoß angezeigt
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 verkürzen, indem Sie die Zeitraumauswahl in der Symbolleiste verwenden oder indem Sie mit dem Mauszeiger Zeiträume im Diagramm markieren.
Diagramme haben eine begrenzte Auflösung und zeigen möglicherweise nicht alle Messungen für bestimmte Zeiträume an.