SQL-Abfrageergebnisse mit einer Benachrichtigungsrichtlinie überwachen

In diesem Dokument wird erläutert, wie Sie eine Benachrichtigungsrichtlinie zum Überwachen der Ergebnisse erstellen SQL-Abfrage an. Sie werden über die Benachrichtigungsrichtlinie benachrichtigt, wenn das Abfrageergebnis die von Ihnen angegebenen Bedingungen erfüllt. Zum Beispiel könnten Sie konfigurieren Sie eine Benachrichtigungsrichtlinie, sodass Sie benachrichtigt werden, wenn mindestens 25% der Logeinträge in einem bestimmten Zeitraum haben den Schweregrad ERROR.

Es gibt drei Methoden, um Benachrichtigungen zu erhalten. Wann Inhalte oder Muster in Ihren Protokolldaten vorkommen:

  • Um einzelne Logeinträge nach einer bestimmten Wortgruppe zu durchsuchen, erstellen Sie einen logbasierte Benachrichtigungsrichtlinie Verwenden Sie diese Benachrichtigungsrichtlinien, wenn Sie möchten über Dinge wie sicherheitsrelevante Ereignisse informiert werden.

  • Wenn Sie Ereignisse in Ihren Logeintragsdaten beobachten möchten, können Sie eine logbasierten Messwert und erstellen Sie dann eine Benachrichtigungsrichtlinie, um den Messwert. Diese Arten von Benachrichtigungsrichtlinien sind wirksam, wenn Sie Trends bei Logeintragsdaten im Zeitverlauf beobachten. Allerdings sind sie nicht so effektiv, wenn Sie nur wenige Ereignisse erwarten.

  • Um eine Analyse der Logeintragsdaten durchzuführen und dann schreiben Sie eine SQL-Abfrage in Loganalysen, um Ihre Logeintragsdaten analysieren. Gehen Sie dann so vor: Erstellen Sie eine Benachrichtigungsrichtlinie, um die Tabelle mit den Abfrageergebnissen zu überwachen. Diese Art von Benachrichtigungsrichtlinie wird als SQL-basierte Benachrichtigungsrichtlinie bezeichnet.

    SQL-basierte Benachrichtigungsrichtlinien eignen sich am besten für die Auswertung exakter Werte in mehreren Logeinträgen. Wenn Sie einzelne Logeinträge auswerten und keine genauen Werte überwachen möchten, erstellen Sie logbasierte Benachrichtigungsrichtlinien mit der Logging Query Language.

Im weiteren Verlauf dieses Dokuments wird beschrieben, wie SQL-basierte Benachrichtigungsrichtlinien verwendet werden.

Allgemeine Informationen zu Loganalysen finden Sie unter Logs abfragen und ansehen

Funktionsweise von Benachrichtigungsrichtlinien

In einer Benachrichtigungsrichtlinie wird beschrieben, unter welchen Umständen und wie Sie über einen Vorfall benachrichtigt werden möchten. Mit einer Benachrichtigungsrichtlinie können die Ergebnisse einer SQL-Abfrage überwacht werden. Wenn das Abfrageergebnis die Bedingung der Benachrichtigungsrichtlinie erfüllt, erstellt Cloud Monitoring einen Vorfall und sendet dann Benachrichtigungen über den Vorfall über Benachrichtigungskanäle.

Ein Vorfall ist eine Aufzeichnung der Daten, die zur Entstehung des Zustands geführt haben. sowie andere relevante Informationen treffen. Anhand dieser Informationen können Sie die Probleme beheben, die den Vorfall verursacht haben. Sie können den Vorfall in der Google Cloud Console aufrufen. Weitere Informationen finden Sie unter Vorfälle bei SQL-basierten Benachrichtigungsrichtlinien.

Komponenten von Benachrichtigungsrichtlinien

Eine SQL-basierte Benachrichtigungsrichtlinie enthält eine Bedingung und einen Zeitplan:

  • Die Bedingung enthält die Abfrage, bei der es sich um eine SQL-Abfrage handelt, die Abfragen eine Logansicht. Die Bedingung definiert außerdem die Umstände, unter denen das Abfrageergebnisse erstellt Monitoring einen Vorfall.

  • Mit dem Zeitplan wird festgelegt, wie oft die Abfrage der Benachrichtigungsrichtlinie ausgeführt wird. Mit dem Zeitplan wird auch die Größe des Lookback-Windows definiert, bei dem es sich um einen Filter handelt. mit der nur die Logeinträge ausgewählt werden, die seit der letzten Auswertung der Abfrage eingegangen sind. Wenn Sie beispielsweise den Zeitplan auf 60 Minuten einstellen, dann wird die Abfrage alle 60 Minuten mit einem Lookback-Window, das die letzten 60 Minuten für Logeinträge.

Auswertungstypen für SQL-Benachrichtigungsrichtlinien

Bedingungen, die ein SQL-Ergebnis überwachen, unterstützen zwei Auswertungstypen:

  • Grenzwert für die Zeilenanzahl: Die Bedingung ist erfüllt, wenn die Anzahl der Zeilen im Abfrageergebnis größer, gleich oder kleiner als ein Grenzwert ist.

    Angenommen, Sie möchten benachrichtigt werden, wenn mehr als 50 Logeinträge im Lookback-Window eine Schwere von über 200 haben. Sie erstellen eine Abfrage, die Logeinträge mit einer Schwere von über 200 meldet. Konfigurieren Sie dann eine Bedingung, wählen Sie den Schwellenwert für die Zeilenanzahl aus und legen Sie den Schwellenwert auf 50 fest.

  • Boolescher Wert: Die Bedingung ist erfüllt, wenn eine bestimmte boolesche Spalte in der Ergebnistabelle der Abfrage eine Zeile mit dem Wert true enthält.

    Angenommen, Sie möchten benachrichtigt werden, wenn mehr als 25 % der Logeinträge im Rückblickszeitraum den Schweregrad ERROR haben. Sie erstellen eine Abfrage, die den Prozentsatz von Logeinträgen mit dem Schweregrad ERROR. In den Abfrageergebnissen wird true in die Spalte notify geschrieben, wenn dieser Prozentsatz 25 % überschreitet. Als Nächstes erstellen Sie eine Bedingung, setzen den Typ auf Boolesch und konfigurieren den Bedingung zum Überwachen der Spalte notify an.

Benachrichtigungsrichtlinien, die ein SQL-Abfrageergebnis überwachen, dürfen nur eine Bedingung haben.

Benachrichtigungsrichtlinien und BigQuery

Wenn eine Benachrichtigungsrichtlinie eine SQL-Abfrage ausführt, wird diese mit reservierten BigQuery-Slots im Google Cloud-Projekt, an denen der Benachrichtigungsrichtlinie definiert ist. Weitere Informationen finden Sie unter Mit Slotreservierungen arbeiten

Für eine Benachrichtigungsrichtlinie zur Verwendung reservierter BigQuery-Slots zum Abfragen Logansicht muss so konfiguriert sein, dass ein verknüpftes Dataset vorhanden ist. Verknüpft Mit Datasets können Sie BigQuery-Funktionen für die Daten ausführen die Ihre SQL-Abfrage zurückgibt. Weitere Informationen finden Sie unter Verknüpftes BigQuery-Dataset erstellen.

Hinweise

  1. Um die erforderlichen Berechtigungen zur Verwendung von Loganalysen zu erhalten, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihre Log-Buckets oder Logansichten:

    • So rufen Sie die Log-Buckets _Required und _Default ab: Loganzeige (roles/logging.viewer).
    • So rufen Sie alle Logansichten in einem Projekt ab: Zugriffsberechtigter für Logbetrachtung (roles/logging.viewAccessor).
    • So rufen Sie Logs in einer bestimmten Loganzeige ab: Erstellen Sie eine IAM-Richtlinie für die Loganzeige oder beschränken Sie die Rolle „Zugriffsberechtigter für Loganzeige“ (roles/logging.viewAccessor) auf eine bestimmte Loganzeige. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht steuern.

    Informationen zu zusätzlichen Rollen finden Sie unter Logging-Rollen:
  2. Rufen Sie für die abzufragenden Logansichten die Seite Logspeicher auf. Prüfen Sie, ob für die Log-Buckets, in denen diese Logansichten gespeichert werden, ein Upgrade auf Loganalysen verwenden. Aktualisieren Sie gegebenenfalls den Log-Bucket.
  3. Rufen Sie in der Google Cloud Console die Seite Logspeicher auf.

    Zum Log-Speicher

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  4. So aktivieren Sie Abfragen für reservierte BigQuery-Slots: Folgendes:
    1. Wenn der Log-Bucket, den Sie abfragen möchten, kein verknüpftes Dataset hat, erstellen Sie ein verknüpftes Dataset.
    2. Konfigurieren Sie reservierte BigQuery-Slots und ordnen Sie sie Ihrem Google Cloud-Projekt zu.

  5. Um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von SQL-basierten Benachrichtigungsrichtlinien benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:

    Informationen zum Gewähren von Zugriff auf ein Dataset finden Sie unter Zugriff auf ein Dataset gewähren.

  6. Das Monitoring-Dienstkonto muss vorhanden sein und die folgenden Rollen haben:

    1. Rolle „Monitoring-Dienst-Agent“ (monitoring.notificationServiceAgent) für Ihr Projekt.
    2. Die Rolle „BigQuery-Datenbetrachter“ (roles/bigquery.dataViewer) für das verknüpfte Dataset

    Wenn das Monitoring-Dienstkonto nicht vorhanden ist, lesen Sie den Hilfeartikel Fehlerbehebung: Kein Monitoring-Dienstkonto.

  7. Konfigurieren Sie die Benachrichtigungskanäle, über die Sie Benachrichtigungen empfangen möchten Benachrichtigungen zu Vorfällen. Aus Gründen der Redundanz empfehlen wir, mehrere Benachrichtigungskanäle zu erstellen. Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

SQL-basierte Benachrichtigungsrichtlinie erstellen

So erstellen Sie eine SQL-basierte Benachrichtigungsrichtlinie:

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Loganalysen auf:

    Zu Log Analytics

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Geben Sie auf der Seite Log Analytics im Abfrageeditor eine SQL-Abfrage für eine Protokollansicht ein.

    Weitere Informationen zum Erstellen von SQL-Abfragen für Logansichten finden Sie unter Logansicht abfragen.

  3. Klicken Sie in der Symbolleiste auf In BigQuery ausführen.

    In Log Analytics wird Ihre Abfrage in der BigQuery-Engine ausgeführt und die Ergebnisse werden in der Tabelle Ergebnisse angezeigt.

    Wenn In BigQuery ausführen nicht angezeigt wird, klicken Sie auf Abfrage-Engine auswählen und dann auf BigQuery. Die Schaltfläche Abfrage ausführen ändert sich in In BigQuery ausführen.

  4. Klicken Sie auf der Seite Log Analytics in der Tabelle Ergebnisse auf  Benachrichtigung erstellen.

    Auf der Seite Log Analytics wird das Fenster SQL-Benachrichtigungsrichtlinie erstellen angezeigt. Ihre Abfrage wird im Bereich SQL-Abfrage angezeigt.

  5. Gehen Sie im Abschnitt Benachrichtigungsbedingung so vor: Bedingung und Zeitplan der Benachrichtigungsrichtlinie konfigurieren

  6. Konfigurieren Sie die Details der Benachrichtigung Ihrer Benachrichtigungsrichtlinie.

    1. Optional: Fügen Sie Labels für Benachrichtigungsrichtlinien und Dokumentation.

    2. Fügen Sie Benachrichtigungskanäle hinzu und klicken Sie dann auf Weiter.

  7. Überprüfen Sie die Benachrichtigungsrichtlinie und klicken Sie dann auf Speichern, um sie zu erstellen.

Cloud Monitoring API

Verwenden Sie die Methode alertPolicies.create, um können Sie Benachrichtigungsrichtlinien programmgesteuert erstellen. Der Condition-Typ Ihrer Benachrichtigungsrichtlinie muss conditionSql sein, eine Instanz von SqlCondition. Mit diesem Bedingungstyp können die Bedingungen Ihres Benachrichtigungsrichtlinie, die mit SQL definiert werden soll.

Um den Zeitplan zu definieren, legen Sie einen periodicity-Wert für eines der Felder minutes, hours oder days fest. Wenn die Abfrage beispielsweise alle 12 Stunden ausgeführt werden soll, legen Sie die Häufigkeit für das Feld hours auf 12 fest.

Verwenden Sie die folgenden Felder, um die Bedingung zu definieren:

  • boolean_test: Die Benachrichtigungsrichtlinie wird so konfiguriert, dass die Bedingung erfüllt ist, wenn eine Zeile einer booleschen Spalte in der Abfrageergebnistabelle den Wert „wahr“ enthält.
  • row_count_test: Die Benachrichtigungsrichtlinie wird so konfiguriert, dass die Bedingung erfüllt ist, wenn die Anzahl der Zeilen in der Abfrageergebnistabelle einen bestimmten Grenzwert erreicht.

Eine vollständige Liste der Felder und Definitionen finden Sie unter SqlCondition in der Cloud Monitoring API-Dokumentation.

Weitere Informationen zur Monitoring API für Benachrichtigungsrichtlinien finden Sie unter Benachrichtigungsrichtlinien über API verwalten.

Beschränkungen

Wenn eine Benachrichtigungsrichtlinie eine geplante SQL-Abfrage ausführt, wird eine Verzögerung von 15 Minuten eingeführt, damit die Logeinträge in den Log-Bucket übertragen werden können. Wenn der Empfang von Logeinträgen länger als 15 Minuten dauert, werden sie nicht von der Benachrichtigungsrichtlinie ausgewertet.

Diese Einführung einer 15-minütigen Verspätung wirkt sich auf die Zeit zwischen einer generiert wird. Wenn Monitoring erkennt, Bedingung erfüllt ist. Angenommen, Sie haben eine SQL-Abfrage, alle 30 Minuten ausgeführt werden. Wenn die Benachrichtigungsrichtlinie regelmäßig die werden Logeinträge mit Zeitstempeln zwischen 15 und 45 Minuten zuvor.

Informationen zu den Limits in Verbindung mit Benachrichtigungsrichtlinien finden Sie unter Monitoring-Limits.

Preise

Informationen zu den Preisen finden Sie in folgenden Dokumenten:

Nächste Schritte

Informationen zum Erstellen von Diagrammen aus Ihren Log Analytics-Daten finden Sie unter Abfrageergebnisse mit Log Analytics in Diagrammen darstellen.