Fehlerbehebung bei Benachrichtigungsrichtlinien

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, durch die Auswahl des Fensters für den erneuten Test. Siehe z. B. Verhalten von messwertbasierten Benachrichtigungsrichtlinien.

Richtlinie zur Laufwerksauslastung bedingt unerwartete Vorfälle

Sie haben eine Benachrichtigungsrichtlinie erstellt, um die „genutzte“ Kapazität der Laufwerke 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 eines physischen Laufwerks den in der Bedingung festgelegten Grenzwert überschreitet. Diese Richtlinie führt jedoch zu Vorfällen, wenn die Laufwerksauslastung jedes physischen Laufwerks unter dem Grenzwert liegt.

Eine bekannte Ursache für unerwartete Vorfälle bei solchen 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 entworfen wurde, dass seine Auslastung bei 100 % liegt, würde dies die Richtlinie dazu motivieren, einen Vorfall 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 Richtlinie für Benachrichtigungen zur Laufwerknutzung konfiguriert werden, um die Zeitreihen für die Loopback-Geräte /dev/loop0 und /dev/loop1 herausfiltern zu lassen. Sie können beispielsweise den Filter device !=~ ^/dev/loop.* hinzufügen, um alle Zeitreihen auszuschließen, deren device-Label nicht mit dem regulären Ausdruck ^/dev/loop.* übereinstimmt.

Häufige Ursachen für anomale Vorfälle

Sie haben eine Benachrichtigungsrichtlinie erstellt und die Richtlinie scheint vorzeitig oder fälschlicherweise Vorfälle zu erstellen.

Es gibt verschiedene Gründe, warum Sie eine Benachrichtigung über Vorfälle erhalten, die nicht korrekt zu sein scheinen:

  • Wenn es eine Datenlücke gibt, insbesondere bei den Benachrichtigungsrichtlinien mit Bedingungen für das Fehlen von Messwerten oder „weniger als“-Schwellenwerten, kann ein Vorfall erstellt werden, der anomal zu sein scheint. Manchmal wird die Datenlücke im Vorfall nicht angezeigt und manchmal wird sie automatisch korrigiert:

    • In Diagrammen werden Lücken beispielsweise möglicherweise nicht angezeigt, weil die Werte für fehlende Daten interpoliert werden. Auch wenn die Daten von einigen Minuten nicht vorhanden ist, verbindet das Diagramm fehlende Punkte, um visuelle Kontinuität zu gewährleisten. Eine solche Lücke in den zugrunde liegenden Daten kann ausreichen, um einen Vorfall über eine Benachrichtigungsrichtlinie zu erstellen.

    • 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. Daher kann es zu einer Lücke in einem logbasierten Messwert kommen, die nicht mehr sichtbar ist. hat eine Benachrichtigungsrichtlinie zum Erstellen eines Vorfalls geführt.

  • 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 der Zeit der Bewertung und der Zeit ändern, zu dem der entsprechende Vorfall in Monitoring sichtbar ist.

  • Bedingungen, die so konfiguriert sind, dass ein Vorfall auf Basis einer einzelnen Messung erstellt wird, können dazu führen, dass Vorfälle vorzeitig oder falsch erscheinen. Bis um dies zu verhindern. Stellen Sie sicher, dass mehrere Messungen erforderlich sind, bevor ein Vorfall wird durch Festlegen des Fensters für den erneuten Test einer Bedingung erstellt mehr als doppelt so hoch wie die Stichprobenrate des Messwerts ist.

    Beispiel: Wenn ein Messwert alle 60 Sekunden als Stichprobe verwendet wird, legen Sie das Zeitfenster für die Wiederholung auf mindestens 3 Minuten fest. Wenn Sie das Fenster für die Wiederholung auf den aktuellsten Wert oder auf gleich 0 Sekunden festlegen, kann eine einzelne Messung dazu führen, dass ein Vorfall erstellt wird.

  • Wenn die Bedingung einer Benachrichtigungsrichtlinie bearbeitet wird, kann es mehrere Minuten warten, bis die Änderung über die Benachrichtigungsinfrastruktur übertragen wurde. Während dieses Zeitraums können Sie Benachrichtigungen über Vorfälle erhalten, die die ursprünglichen Bedingungen der Benachrichtigungsrichtlinie erfüllt.

  • Wenn Zeitreihendaten eintreffen, kann es bis zu einer Minute dauern, bis die Daten angezeigt werden. die gesamte Benachrichtigungsinfrastruktur umfasst. Während dieser Zeit kann eine Benachrichtigungsrichtlinie eine Bedingung als erfüllt bewerten, auch wenn die Zeitreihendaten noch nicht in das Zeitreihendiagramm übernommen wurden. Daher erhalten Sie möglicherweise eine Benachrichtigung, obwohl das Diagramm nicht anzeigt, dass die Bedingung erfüllt ist. Um die Wahrscheinlichkeit zu verringern, sollten Sie einen Ausrichtungszeitraum von mindestens fünf Minuten festlegen.

Der Vorfall wird nicht geschlossen, wenn keine Daten mehr eingehen

Sie folgen der Anleitung unter Teilweise Messwertdaten und konfigurieren eine Benachrichtigungsrichtlinie, um Vorfälle zu schließen, wenn keine Daten mehr eingehen. Manchmal gehen keine Daten mehr ein, aber es gibt keinen offenen Vorfall. automatisch geschlossen.

Wenn die zugrunde liegende Ressource, die von einer Benachrichtigungsrichtlinie überwacht wird, Folgendes enthält: Das Label metadata.system_labels.state und wenn diese Richtlinie nicht verfasst ist, mit der Monitoring Query Language kann Monitoring den Status ermitteln, der Ressource. Wenn der Status einer Ressource deaktiviert ist, dann Beim Monitoring werden Vorfälle nicht automatisch geschlossen, wenn Daten nicht mehr ankommen. Sie können diese Vorfälle jedoch manuell schließen.

Vorfalldetails können aufgrund eines Berechtigungsfehlers nicht aufgerufen werden

Rufen Sie in der Google Cloud Console die Seite „Vorfälle“ auf und wählen Sie einen Vorfall 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 Vorfalldetails mit Ausnahme der Messwertdaten sehen möchten, benötigen Sie die IAM-Rollen (Identity and Access Management, Identitäts- und Zugriffsverwaltung) von Betrachter von Monitoring Cloud Console-Vorfällen (roles/monitoring.cloudConsoleIncidentViewer) und Betrachter von Stackdriver-Konten (roles/stackdriver.accounts.viewer)

Wenn Sie alle Details zu Vorfällen, einschließlich der Messwertdaten, sehen und Vorfälle bestätigen oder schließen möchten, benötigen Sie die IAM-Rollen „Monitoring-Betrachter“ (roles/monitoring.viewer) und „Monitoring Cloud Console-Vorfallbearbeiter“ (roles/monitoring.cloudConsoleIncidentEditor).

Benutzerdefinierte Rollen können die zur Anzeige von Vorfalldetails erforderlichen Berechtigung nicht erteilen.

Vorfall wird nicht erstellt, wenn 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, Sie aber keine Benachrichtigung erhalten haben und kein Vorfall erstellt wurde.

Wenn nach der Bedingung der Benachrichtigungsrichtlinie eines der folgenden Kriterien erfüllt ist erfüllt ist, öffnet Monitoring den Vorfall nicht.

  • Die Benachrichtigungsrichtlinie ist zurückgestellt.
  • Die Benachrichtigungsrichtlinie ist deaktiviert.
  • Die Benachrichtigungsrichtlinie hat die maximale Anzahl an Vorfällen, die gleichzeitig geöffnet werden können.
  • Der Status der Ressource, die von der Benachrichtigungsrichtlinie überwacht wird, ist bekannt deaktiviert. Mit dem Monitoring kann der Status einer Ressource ermittelt werden, wenn die Ressource das Label metadata.system_labels.state enthält und die Benachrichtigungsrichtlinie nicht mit der Monitoring Query Language geschrieben wurde.

Vorfalldetails mit falschem Projekt

Sie erhalten eine Benachrichtigung und in der Bedingungsübersicht wird die Google Cloud-Projekt, in dem der Vorfall erstellt wurde, d. h., es werden die Projektumfangs definieren. Sie erwarten jedoch, dass bei dem Vorfall der Name des Google Cloud-Projekt, in dem die Zeitreihe gespeichert ist, Monitoring zum Erstellen des Vorfalls

Die in der Bedingung einer Benachrichtigungsrichtlinie angegebenen Aggregationsoptionen. Ermitteln Sie 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 Informationen zum Vorfall das Projekt zur Bereichsdefinition aufgeführt. Wenn Sie die Daten beispielsweise nur nach Zone gruppieren, wird das Label, in dem die Projekt-ID gespeichert ist, nach der Gruppierung entfernt.

  • Wenn die Aggregationsoptionen das Label beibehalten, in dem die Projekt-ID gespeichert ist, enthalten die Benachrichtigungen zu Vorfällen den Namen des Google Cloud-Projekts, in dem die Zeitreihe gespeichert ist, die den Vorfall verursacht. Wenn Sie das Label der Projekt-ID beibehalten möchten, fügen Sie das Label project_id in das Gruppierungsfeld ein oder gruppieren Sie die Zeitreihe nicht.

Vorfall kann nicht manuell geschlossen werden

Sie haben eine Benachrichtigung zu einem Vorfall auf Ihrem System erhalten. Sie gehen zur Seite mit den Vorfallsdetails und klicken Sie auf Vorfall schließen. Sie erwarten, dass der Vorfall geschlossen sein; Sie erhalten jedoch die folgende Fehlermeldung:

Unable to close incident with active conditions.

Sie können einen Vorfall nur schließen, wenn im letzten Benachrichtigungszeitraum keine Beobachtungen eingegangen sind. Der Benachrichtigungszeitraum, der in der Regel einen Standardwert hat von 5 Minuten, wird als Teil der Bedingung der Benachrichtigungsrichtlinie definiert. ist konfigurierbar. Die vorherige Fehlermeldung gibt an, dass Daten innerhalb des Benachrichtigungszeitraums eingegangen sind.

Der folgende Fehler tritt auf, wenn ein Vorfall aufgrund eines Interner Fehler:

Unable to close incident. Please try again in a few minutes.

Wenn Sie die vorherige Fehlermeldung sehen, können Sie den Vorgang zum Schließen wiederholen oder den Vorfall automatisch von Monitoring schließen lassen.

Weitere Informationen finden Sie unter Vorfälle 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 eine Benachrichtigung und einen Vorfall erstellen, wenn alle Bedingungen erfüllt sind. Sie erhalten jedoch mehrere Benachrichtigungen und sehen, dass mehrere Vorfälle erstellt wurden.

Monitoring sendet eine Benachrichtigung und erstellt einen Vorfall für jede Zeitreihe, die dazu führt, dass eine Bedingung erfüllt wird. Wenn Sie Benachrichtigungsrichtlinien mit mehreren Bedingungen haben, erhalten Sie daher möglicherweise eine Benachrichtigung und einen Vorfall 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 eine Benachrichtigung wenn beide Bedingungen erfüllt sind. Wenn die Bedingungen Ihrer Richtlinie erfüllt sind, können Sie zwischen 2 erhalten (eine Zeitreihe ist in jeder Bedingung erfüllt) und 6 Benachrichtigungen und Vorfälle (alle Zeitreihen sind in jeder Bedingung erfüllt).

Sie können Monitoring nicht für die Erstellung eines einzelnen Vorfalls und eine einzige Benachrichtigung senden.

Weitere Informationen finden Sie unter Benachrichtigungen nach Vorfall.

Variable für ein Messwertlabel ist null

Sie erstellen eine Benachrichtigungsrichtlinie fügen Sie im Abschnitt „Dokumentation“ eine Variable für ein Messwertlabel hinzu. Sie gehen davon aus, dass in den Benachrichtigungen der Wert der Variablen angezeigt wird. Der Wert ist jedoch auf null festgelegt.

Versuchen Sie Folgendes, um dieses Problem zu beheben:

  • Achten Sie darauf, dass in den Aggregationseinstellungen für die Benachrichtigungsrichtlinie das Label beibehalten wird, das Sie anzeigen möchten.

    Angenommen, Sie erstellen eine Benachrichtigungsrichtlinie, die den von VM-Instanzen geschriebene Laufwerkbyte. Sie möchten, dass in der Dokumentation Gerät, das die Benachrichtigung verursacht, fügen Sie der Dokumentation hinzu Folgendes Feld: device: ${metric.label.device}.

    Außerdem muss in den Aggregationseinstellungen der Wert beibehalten werden des Labels device. Sie können dieses Label beibehalten, indem Sie die Aggregationsfunktion auf none festlegen oder dafür sorgen, dass device in den Gruppierungsoptionen enthalten ist.

  • Prüfen Sie die Syntax und Anwendbarkeit der Variablen. Syntaxinformationen Siehe Benachrichtigungen mit benutzerdefinierter Dokumentation annotieren.

    So wird beispielsweise die Variable log.extracted_label.KEY nur unterstützt, für logbasierte Benachrichtigungsrichtlinien. Diese Variable wird immer als null gerendert, wenn überwacht eine Benachrichtigungsrichtlinie einen Messwert, auch einen logbasierten Messwert.

Keine neuen Daten nach Änderungen an Messwertdefinitionen

Sie können die Definition eines benutzerdefinierten Messwerts ändern, indem Sie beispielsweise den Filter, den Sie in einem logbasierten Messwert verwendet haben, und die Benachrichtigungsrichtlinie ist die die von Ihnen an der Messwertdefinition vorgenommene Änderung widerspiegelt.

Um dieses Problem zu beheben, erzwingen Sie eine Aktualisierung der Benachrichtigungsrichtlinie, indem Sie das Feld Anzeigename der Richtlinie.