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 SchweregradERROR
. In den Abfrageergebnissen wirdtrue
in die Spaltenotify
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 Spaltenotify
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
-
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.
-
So rufen Sie die Log-Buckets
- 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.
- So aktivieren Sie Abfragen für reservierte BigQuery-Slots:
Folgendes:
- Wenn der Log-Bucket, den Sie abfragen möchten, kein verknüpftes Dataset hat, erstellen Sie ein verknüpftes Dataset.
- Konfigurieren Sie reservierte BigQuery-Slots und ordnen Sie sie Ihrem Google Cloud-Projekt zu.
-
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:
-
Monitoring-Bearbeiter (
roles/monitoring.editor
) für Ihr Projekt -
Logging SqlAlertWriter (
roles/logging.sqlAlertWriter
) für Ihr Projekt -
BigQuery-Jobnutzer (
roles/bigquery.jobUser
) für Ihr Projekt -
BigQuery-Datenbetrachter (
roles/bigquery.dataViewer
) für das verknüpfte Dataset
Informationen zum Gewähren von Zugriff auf ein Dataset finden Sie unter Zugriff auf ein Dataset gewähren.
-
Monitoring-Bearbeiter (
Das Monitoring-Dienstkonto muss vorhanden sein und die folgenden Rollen haben:
- Rolle „Monitoring-Dienst-Agent“ (
monitoring.notificationServiceAgent
) für Ihr Projekt. - 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.
- Rolle „Monitoring-Dienst-Agent“ (
- 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.
Rufen Sie in der Google Cloud Console die Seite Logspeicher auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
SQL-basierte Benachrichtigungsrichtlinie erstellen
So erstellen Sie eine SQL-basierte Benachrichtigungsrichtlinie:
Google Cloud Console
-
Rufen Sie in der Google Cloud Console die Seite Loganalysen auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
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.
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 settings Abfrage-Engine auswählen und dann auf BigQuery. Die Schaltfläche Abfrage ausführen ändert sich in In BigQuery ausführen.
Klicken Sie auf der Seite Log Analytics in der Tabelle Ergebnisse auf add_alert Benachrichtigung erstellen.
Auf der Seite Log Analytics wird das Fenster SQL-Benachrichtigungsrichtlinie erstellen angezeigt. Ihre Abfrage wird im Bereich SQL-Abfrage angezeigt.
Gehen Sie im Abschnitt Benachrichtigungsbedingung so vor: Bedingung und Zeitplan der Benachrichtigungsrichtlinie konfigurieren
Konfigurieren Sie die Details der Benachrichtigung Ihrer Benachrichtigungsrichtlinie.
Optional: Fügen Sie Labels für Benachrichtigungsrichtlinien und Dokumentation.
Fügen Sie Benachrichtigungskanäle hinzu und klicken Sie dann auf Weiter.
Ü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:
- BigQuery-Preise
- Cloud Logging in der Preisdokumentation für die Observability-Funktionen von Google Cloud
- Cloud Monitoring in den Google Cloud Observability-Preisen Dokumentation
Nächste Schritte
Informationen zum Erstellen von Diagrammen aus Ihren Log Analytics-Daten finden Sie unter Abfrageergebnisse mit Log Analytics in Diagrammen darstellen.