Benachrichtigungsrichtlinien für fehlende Messwerte erstellen

In diesem Dokument wird beschrieben, wie Sie mit der Google Cloud Console eine Benachrichtigungsrichtlinie erstellen, sodass Benachrichtigungen gesendet werden, wenn eine überwachte Zeitreihe während eines bestimmten Dauerfensters keine Daten enthält.

Für Bedingungen für fehlende Messwerte ist innerhalb des maximalen Dauerfensters nach Installation oder Änderung der Richtlinie mindestens eine erfolgreiche Messung erforderlich, also eine Messung, bei der Daten abgerufen werden. Das maximal konfigurierbare Zeitfenster für die Dauer beträgt 24 Stunden in der Google Cloud Console und 24,5 Stunden in der Cloud Monitoring API.

Nehmen wir beispielsweise an, Sie legen das Dauerfenster in einer Richtlinie für einen fehlenden Messwert auf 30 Minuten fest. Die Bedingung ist nicht erfüllt, wenn das Subsystem, das Messwertdaten schreibt, noch nie einen Datenpunkt geschrieben hat. Das Subsystem muss mindestens einen Datenpunkt ausgeben, auf den 30 Minuten lang keine weiteren Datenpunkte folgen dürfen.

Dieser Inhalt gilt nicht für logbasierte Benachrichtigungsrichtlinien. Informationen zu logbasierten Benachrichtigungsrichtlinien, die Sie benachrichtigen, wenn eine bestimmte Nachricht in Ihren Logs angezeigt wird, finden Sie unter Logs überwachen.

In diesem Dokument wird Folgendes nicht beschrieben:

Hinweise

  1. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring Editor (roles/monitoring.editor) für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen und Ändern von Benachrichtigungsrichtlinien über die Google Cloud Console benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

    Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

    Weitere Informationen zu Cloud Monitoring-Rollen finden Sie unter Zugriff mit Identity and Access Management steuern.

  2. Machen Sie sich mit den allgemeinen Konzepten von Benachrichtigungsrichtlinien vertraut. Informationen zu diesen Themen finden Sie in der Benachrichtigungsübersicht.

  3. Konfigurieren Sie die Benachrichtigungskanäle, die Sie zum Empfangen von Benachrichtigungen verwenden möchten. Aus Gründen der Redundanz empfehlen wir, mehrere Arten von Benachrichtigungskanälen zu erstellen. Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

Benachrichtigungsrichtlinie erstellen

So erstellen Sie eine Benachrichtigungsrichtlinie, die Benachrichtigungen sendet, wenn eine überwachte Zeitreihe für einen bestimmten Zeitraum keine Daten enthält:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Benachrichtigungen aus:

    Zu Benachrichtigungen

  2. Wählen Sie Richtlinie erstellen aus.
  3. Wählen Sie die zu überwachende Zeitreihe aus:

    1. Klicken Sie auf Messwert auswählen, gehen Sie durch die Menüs, wählen Sie einen Ressourcentyp und einen Messwerttyp aus und klicken Sie dann auf Übernehmen.

      Das Menü Messwert auswählen enthält Funktionen, mit denen Sie die verfügbaren Messwerttypen finden können:

      • Mit der Filterleiste können Sie nach einem bestimmten Messwerttyp suchen. Wenn Sie beispielsweise util eingeben, werden im Menü nur Einträge angezeigt, die util enthalten. Einträge werden angezeigt, wenn sie einen "enthält"-Test bestehen, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird.

      Sie können jeden integrierten Messwert oder jeden benutzerdefinierten Messwert überwachen.

    2. Optional: Klicken Sie auf Filter hinzufügen, um einen Teil der Zeitachsen zu überwachen, die den im vorherigen Schritt ausgewählten Messwert- und Ressourcentypen entsprechen. Wählen Sie im Dialogfeld „Filter“ das Label, nach dem gefiltert werden soll, einen Vergleichsoperator und dann den Filterwert aus. Der Filter zone =~ ^us.*.a$ verwendet beispielsweise einen regulären Ausdruck, um alle Zeitachsendaten abzugleichen, deren Zonenname mit us beginnt und mit a endet. Weitere Informationen finden Sie unter Ausgewählte Zeitreihe filtern.

    3. Optional: Wenn Sie ändern möchten, wie die Punkte in einer Zeitachse ausgerichtet werden, legen Sie im Abschnitt Daten transformieren die Felder Rollierendes Fenster und Funktion für rollierendes Fenster fest.

      Diese Felder geben an, wie die in einem Fenster aufgezeichneten Punkte kombiniert werden. Angenommen, das Fenster beträgt 15 Minuten und die Fensterfunktion ist max. Der ausgerichtete Punkt ist der Maximalwert aller Punkte in den letzten 15 Minuten. Weitere Informationen finden Sie unter Ausrichtung: Regularisierung innerhalb der Reihe.

    4. Optional: Kombinieren Sie Zeitachsen, wenn Sie die Anzahl der von einer Richtlinie überwachten Zeitachsen reduzieren oder nur eine Sammlung von Zeitachsen überwachen möchten. Anstatt beispielsweise die CPU-Auslastung jeder VM-Instanz zu überwachen, können Sie den Durchschnitt der CPU-Auslastung für alle VMs in einer Zone berechnen und dann diesen Durchschnitt überwachen. Standardmäßig werden Zeitreihen nicht kombiniert. Allgemeine Informationen finden Sie unter Reduktion: Zeitachsen kombinieren.

      So kombinieren Sie alle Zeitreihen:

      1. Klicken Sie im Abschnitt Über Zeitreihen auf Maximieren.
      2. Legen Sie für das Feld Zeitachsenaggregation einen anderen Wert als none fest. Wählen Sie beispielsweise mean aus, um den Durchschnittswert der Zeitachse anzuzeigen.
      3. Achten Sie darauf, dass das Feld Zeitachsen gruppieren nach leer ist.

      So kombinieren oder gruppieren Sie Zeitreihen nach Labelwerten:

      1. Klicken Sie im Abschnitt Über Zeitreihen auf Maximieren.
      2. Legen Sie für das Feld Zeitachsenaggregation einen anderen Wert als none fest.
      3. Wählen Sie im Feld Zeitachsen gruppieren nach die Labels aus, nach denen gruppiert werden soll.

      Wenn Sie beispielsweise nach dem Label zone gruppieren und dann das Aggregationsfeld auf den Wert mean festlegen, wird im Diagramm für jede Zone, für die Daten vorhanden sind, eine Zeitachse angezeigt. Die für eine bestimmte Zone angezeigten Zeitachsen sind der Durchschnitt aller Zeitachsen mit dieser Zone.

    5. Klicken Sie auf Next (Weiter).

  4. Konfigurieren Sie den Bedingungstrigger:

    1. Wählen Sie als Bedingungstyp Fehlende Messwerte aus.
    2. Wählen Sie einen Wert für das Menü Auslöser für Benachrichtigungen aus. In diesem Menü können Sie die Teilmenge von Zeitachsen angeben, die keine Daten enthalten dürfen, bevor die Bedingung erfüllt ist.
    3. Geben Sie im Feld Abwesenheitszeit für Trigger an, wie lange Messwertdaten fehlen müssen, bevor Sie von Benachrichtigungen benachrichtigt werden.
    4. Klicken Sie auf Next (Weiter).
  5. Optional: Erstellen Sie eine Benachrichtigungsrichtlinie mit mehreren Bedingungen.

    Die meisten Richtlinien überwachen einen einzelnen Messwerttyp. Eine Richtlinie kann beispielsweise die Anzahl der Byte überwachen, die in eine VM-Instanz geschrieben werden. Wenn Sie mehrere Messwerttypen überwachen möchten, erstellen Sie eine Richtlinie mit mehreren Bedingungen. Mit jeder Bedingung wird ein Messwerttyp überwacht. Nachdem Sie die Bedingungen erstellt haben, geben Sie an, wie sie kombiniert werden sollen. Weitere Informationen finden Sie unter Richtlinien mit mehreren Bedingungen.

    So erstellen Sie eine Benachrichtigungsrichtlinie mit mehreren Bedingungen:

    1. Klicken Sie für jede zusätzliche Bedingung auf Benachrichtigungsbedingung hinzufügen und konfigurieren Sie diese Bedingung.
    2. Klicken Sie auf Weiter und konfigurieren Sie, wie Bedingungen kombiniert werden.
    3. Klicken Sie auf Weiter, um zur Einrichtung von Benachrichtigungen und Dokumentation zu gelangen.
  6. Konfigurieren Sie die Benachrichtigungen:

    1. Maximieren Sie das Menü Benachrichtigungen und Name und wählen Sie Ihre Benachrichtigungskanäle aus. Aus Gründen der Redundanz empfehlen wir, einer Benachrichtigungsrichtlinie mehrere Arten von Benachrichtigungskanälen hinzuzufügen. Weitere Informationen finden Sie unter Benachrichtigungskanäle verwalten.

    2. Optional: Wählen Sie Bei Schließung eines Vorfalls benachrichtigen aus, um benachrichtigt zu werden, wenn ein Vorfall geschlossen wurde. Wenn Sie eine Benachrichtigungsrichtlinie mit der Google Cloud Console erstellen, wird standardmäßig nur dann eine Benachrichtigung gesendet, wenn ein Vorfall erstellt wird.

    3. Optional: Wählen Sie eine Option aus dem Menü Dauer der automatischen Schließung von Vorfällen aus, um festzulegen, wie lange Monitoring wartet, bevor ein Vorfall geschlossen wird, nachdem keine Daten mehr eingehen. Wenn keine Daten mehr ankommen, wartet Monitoring standardmäßig sieben Tage, bevor ein offener Vorfall geschlossen wird.

    4. Wählen Sie eine Option aus dem Menü Schweregrad der Richtlinie aus. Bei Vorfällen und Benachrichtigungen wird der Schweregrad angezeigt.

    5. Optional: So fügen Sie der Benachrichtigungsrichtlinie im Abschnitt Nutzerlabels für Richtlinien benutzerdefinierte Labels hinzu:

      1. Klicken Sie auf Label hinzufügen und geben Sie im Feld Schlüssel einen Namen für das Label ein. Labelnamen müssen mit einem Kleinbuchstaben beginnen und können Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten. Geben Sie beispielsweise severity ein.
      2. Klicken Sie auf Wert und geben Sie einen Wert für das Label ein. Labelwerte können Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten. Geben Sie beispielsweise critical ein.

      Informationen dazu, wie Sie Richtlinienlabels zur Verwaltung von Benachrichtigungen verwenden können, finden Sie unter Benachrichtigungen mit Labels versehen.

  7. Optional: Geben Sie im Abschnitt Dokumentation alle Inhalte ein, die in der Benachrichtigung enthalten sein sollen.

    Zur Formatierung der Dokumentation können Sie Nur-Text, Markdown und Variablen verwenden. Sie können auch Links einfügen, die Nutzern beim Debuggen des Vorfalls helfen, z. B. Links zu internen Playbooks, Google Cloud-Dashboards und externen Seiten. Die folgende Dokumentationsvorlage beschreibt beispielsweise einen Vorfall zur CPU-Auslastung für eine gce_instance-Ressource und enthält mehrere Variablen zum Verweisen auf die Benachrichtigungsrichtlinie und die Bedingungs-REST-Ressourcen. Die Dokumentationsvorlage leitet Leser dann auf externe Seiten weiter, die ihnen bei der Fehlerbehebung helfen können.

    Wenn Benachrichtigungen erstellt werden, ersetzt Monitoring die Dokumentationsvariablen durch ihre Werte. Die Werte ersetzen die Variablen nur in Benachrichtigungen. Im Vorschaubereich und an anderen Stellen in der Google Cloud Console wird nur die Markdown-Formatierung angezeigt.

    Vorschau

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}
    Alerting policy resource name: ${policy.name}
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com
    Internal troubleshooting guide: example.com
    ${resource.type} dashboard: example.com
    

    In Benachrichtigung formatieren

    Beispiel für die Darstellung der Dokumentation in einer Benachrichtigung.

    Weitere Informationen finden Sie unter Benachrichtigungen mit benutzerdefinierter Dokumentation annotieren und Kanalsteuerelemente verwenden.

  8. Klicken Sie auf Name der Benachrichtigung und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.

  9. Klicken Sie auf Richtlinie erstellen.

Ausgewählte Zeitreihe filtern

Mithilfe von Filtern wird sichergestellt, dass nur Zeitachsen überwacht werden, die bestimmte Kriterien erfüllen. Wenn Sie Filter anwenden, können Sie die Anzahl der Linien im Diagramm reduzieren und so die Leistung des Diagramms verbessern. Sie können die überwachte Datenmenge auch reduzieren, indem Sie eine Aggregation anwenden. Filter stellen sicher, dass nur Zeitachsen verwendet werden, die bestimmte Kriterien erfüllen. Wenn Sie Filter anwenden, müssen weniger Zeitreihen ausgewertet werden, was die Leistung der Benachrichtigung verbessern kann.

Ein Filter besteht aus einem Label, einem Vergleichsoperator und einem Wert. Wenn Sie beispielsweise alle Zeitachsen abgleichen möchten, deren zone-Label mit "us-central1" beginnt, können Sie den Filter zone=~"us-central1.*" verwenden, der zum Durchführen des Vergleichs einen regulären Ausdruck verwendet.

Wenn Sie nach der Projekt-ID oder dem Ressourcencontainer filtern, müssen Sie den Gleichheitsoperator ((=)) verwenden. Wenn Sie nach anderen Labels filtern, können Sie einen beliebigen unterstützten Vergleichsoperator verwenden. In der Regel können Sie Messwert- und Ressourcenlabels sowie nach Ressourcengruppe filtern.

Wenn Sie mehrere Filterkriterien angeben, werden nur die Zeitachsen überwacht, die alle Kriterien erfüllen.

Um einen Filter hinzuzufügen, klicken Sie auf Filter hinzufügen, füllen Sie das Dialogfeld aus und klicken Sie dann auf Fertig. Im Dialogfeld wählen Sie im Feld Filter das Kriterium aus, nach dem gefiltert werden soll. Anschließend wählen Sie den Vergleichsoperator und dann den Wert aus. In jeder Zeile der folgenden Tabelle sind ein Vergleichsoperator, seine Bedeutung und ein Beispiel aufgeführt:

OperatorBedeutungBeispiel
= Entsprechung resource.labels.zone = "us-central1-a"
!= Ungleichheit resource.labels.zone != "us-central1-a"
=~ Gleichheit mit regulärem Ausdruck2 monitoring.regex.full_match("^us.*")
!=~ Ungleichheit mit regulärem Ausdruck2 monitoring.regex.full_match("^us.*")
starts_with Wert beginnt mit resource.labels.zone = starts_with("us")
ends_with Wert endet mit resource.labels.zone = ends_with("b")
has_substring Wert enthält resource.labels.zone = has_substring("east")
one_of Eine von resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with Wert beginnt nicht mit resource.labels.zone != starts_with("us")
!ends_with Wert endet nicht mit resource.labels.zone != ends_with("b")
!has_substring Wert enthält nicht resource.labels.zone != has_substring("east")
!one_of Wert ist keiner der folgenden Werte resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")