Mit Observability Analytics können Sie SQL-Abfrageergebnisse als Diagramme visualisieren, um Muster und Trends in Ihren Logdaten zu erkennen. Nachdem Sie eine Abfrage zum Suchen und Aggregieren Ihrer Logs ausgeführt haben, können Sie die Ergebnisse in einer Tabelle ansehen, in ein Diagramm umwandeln und die Visualisierung in einem Dashboard speichern.
Im folgenden Diagramm wird beispielsweise die Anzahl der Logeinträge über einen Zeitraum von 12 Stunden nach severity aufgeschlüsselt:
Hinweis
In diesem Abschnitt werden die Schritte beschrieben, die Sie ausführen müssen, bevor Sie Observability Analytics verwenden können.
Log-Buckets konfigurieren
Prüfen Sie, ob für Ihre Log-Buckets ein Upgrade zur Verwendung von Observability Analytics durchgeführt wurde:
-
Rufen Sie in der Google Cloud -Console die Seite Logspeicher auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
- Prüfen Sie für Log-Buckets mit einer Logansicht, die Sie abfragen möchten, ob in der Spalte Observability Analytics verfügbar die Option Öffnen angezeigt wird. Wenn Upgrade angezeigt wird, klicken Sie auf Upgrade und schließen Sie das Dialogfeld.
IAM-Rollen und ‑Berechtigungen konfigurieren
In diesem Abschnitt werden die IAM-Rollen oder -Berechtigungen beschrieben, die für die Verwendung von Observability Analytics erforderlich sind:
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von Observability Analytics und zum Abfragen von Logansichten benötigen:
-
So fragen Sie die Log-Buckets
_Requiredund_Defaultab: Loganzeige (roles/logging.viewer) -
So fragen Sie alle Logansichten in einem Projekt ab: Logs View Accessor (
roles/logging.viewAccessor)
Sie können einen Prinzipal auf eine bestimmte Logansicht beschränken, indem Sie entweder eine IAM-Bedingung für die auf Projektebene erteilte Rolle „Logs View Accessor“ hinzufügen oder eine IAM-Bindung zur Richtliniendatei der Logansicht hinzufügen. Weitere Informationen finden Sie unter Zugriff auf eine Logansicht steuern.
Dies sind dieselben Berechtigungen, die Sie benötigen, um Logeinträge auf der Seite Log-Explorer aufzurufen. Informationen zu zusätzlichen Rollen, die Sie zum Abfragen von Ansichten in benutzerdefinierten Buckets oder zum Abfragen der
_AllLogs-Ansicht des_Default-Log-Buckets benötigen, finden Sie unter Cloud Logging-Rollen. -
So fragen Sie die Log-Buckets
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Observability Analytics User (
roles/observability.analyticsUser) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Analyseansichten benötigen. -
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Monitoring Editor (
roles/monitoring.editor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Diagrammen benötigen.
Daten für das Diagramm auswählen
Wenn Sie konfigurieren möchten, welche Daten in einem Diagramm angezeigt werden sollen, erstellen Sie eine Abfrage mit SQL. Wenn Sie den Tab Diagramm auswählen, werden die Abfrageergebnisse in einem Diagramm angezeigt. Nachdem Sie die Abfrage ausgeführt und ein Diagramm generiert haben, können Sie das Diagramm anpassen, indem Sie den Diagrammtyp ändern und Spalten auswählen, um andere Daten anzuzeigen.
So rufen Sie Ihre Abfrageergebnisse als Diagramm auf:
-
Rufen Sie in der Google Cloud Console die Seite manage_searchObservability Analytics auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Geben Sie im Bereich Abfrage eine Abfrage ein und klicken Sie auf Ausführen.
Nachdem die Abfrage abgeschlossen ist, wählen Sie auf dem Tab Ergebnisse aus, wie Sie die Abfrageergebnisse ansehen möchten:
Tabelle: Nur tabellarisches Format.
Diagramm: Nur Diagrammformat.
Beide: Diagramm- und Tabellenformat.
Nachdem Sie ausgewählt haben, wie die Abfrageergebnisse angezeigt werden sollen, können Sie alle Felder für die ausgewählte Visualisierung konfigurieren und die Abfrage und die Ergebnisse dann in einem benutzerdefinierten Dashboard speichern. Wenn Sie die Option Tabelle ausgewählt haben, wird das Format als Tabelle gespeichert. Andernfalls ist das Format ein Diagramm.
Bei Diagrammen können Sie mit den Visualisierungsoptionen den Diagrammtyp auswählen und festlegen, welche Zeilen und Spalten im Diagramm dargestellt werden sollen. Weitere Informationen zur Diagrammkonfiguration finden Sie unter Diagrammkonfiguration anpassen.
Diagrammkonfiguration anpassen
Sie können die Diagrammkonfiguration anpassen, indem Sie den Diagrammtyp ändern, die Dimension und den Messwert für das Diagramm auswählen und eine Aufschlüsselung anwenden. Die Dimension wird verwendet, um Zeilen zu gruppieren oder zu kategorisieren, und ist der Wert der X-Achse. Der Messwert oder der Wert auf der Y-Achse ist eine Datenreihe, die auf der Y-Achse dargestellt wird.
Diagrammtyp ändern
Je nachdem, welche Zeilen und Spalten Sie als Dimension und Messwert ausgewählt haben und wie diese Daten visualisiert werden sollen, können Sie aus den folgenden Diagrammtypen auswählen.
Balkendiagramm (Standard): In Balkendiagrammen werden Daten auf zwei Achsen dargestellt. Wenn Ihr Diagramm eine Kategorie oder einen String als Dimension verwendet, können Sie die Diagrammkonfiguration für ein Balkendiagramm auf horizontal oder vertikal festlegen, wobei die Dimensions- und Messwertachsen vertauscht werden.
Liniendiagramm: Liniendiagramme können verwendet werden, um Datenänderungen im Zeitverlauf darzustellen. In einem Liniendiagramm wird jede Zeitreihe durch eine andere Linie dargestellt, die den von Ihnen ausgewählten Messwerten entspricht.
Wenn die X-Achse zeitbasiert ist, wird jeder Datenpunkt am Anfang eines Zeitintervalls platziert. Die einzelnen Datenpunkte sind durch lineare Interpolation verbunden.
Gestapeltes Flächendiagramm: Ein Flächendiagramm basiert auf einem Liniendiagramm. Der Bereich unter jeder Linie ist schattiert. In Flächendiagrammen werden die Datenreihen gestapelt. Wenn Sie beispielsweise zwei identische Reihen haben, überlappen sich die Reihen in einem Liniendiagramm, aber der schattierte Bereich wird in einem Flächendiagramm gestapelt.
Kreis- oder Ringdiagramm: In einem Kreisdiagramm wird dargestellt, wie sich Kategorien in einem Dataset zum gesamten Dataset verhalten. Dabei wird das gesamte Dataset durch einen Kreis und die Kategorien im Dataset durch Segmente im Kreis dargestellt. Die Größe eines Segments gibt an, wie viel die Kategorie zum Ganzen beiträgt, oft als Prozentsatz.
Tabelle: In einer Tabelle wird für jede Zeile im Abfrageergebnis eine Zeile angezeigt. Die Spalten in der Tabelle werden durch die
SELECT-Klausel definiert. Wenn Sie Daten in Tabellenform auf einem Dashboard anzeigen möchten, verwenden Sie eineLIMIT-Klausel, um die Anzahl der Zeilen im Ergebnis auf weniger als ein paar Hundert zu beschränken.Gauge oder Kurzübersicht: Gauges und Kurzübersichten zeigen den aktuellen Wert zusammen mit einer grünen, gelben oder roten Anzeige an, je nachdem, wie hoch dieser Wert im Vergleich zu einer Reihe von Grenzwerten ist. Im Gegensatz zu Gauges, die nur Informationen zum letzten Wert enthalten, können Kurzübersichten auch Informationen zu früheren Werten enthalten.
In Gauges und Kurzübersichten kann das Abfrageergebnis nur angezeigt werden, wenn es mindestens eine Zeile enthält und diese Zeile eine Spalte mit einem Zeitstempel und eine Spalte mit numerischen Daten enthält. Das Abfrageergebnis kann mehrere Zeilen und mehr als zwei Spalten enthalten.
Wenn Sie die zeitbasierte Aggregation als Teil Ihrer Abfrage ausführen möchten, gehen Sie so vor:
Konfigurieren Sie Ihre Abfrage so, dass Daten über ein Zeitintervall aggregiert werden, die Ergebnisse nach absteigenden Zeitstempeln sortiert werden und die Anzahl der Zeilen in den Ergebnissen begrenzt wird. Sie können die
LIMIT-Klausel oder die Zeitraumauswahl verwenden, um die Anzahl der Zeilen im Abfrageergebnis zu begrenzen.Im folgenden Beispiel wird eine Logansicht abgefragt, die Daten werden nach Stunde aggregiert, ein Limit wird angewendet und die Ergebnisse werden sortiert:
SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID` WHERE severity IS NOT NULL AND severity = "DEFAULT" GROUP BY hour,severity ORDER BY hour DESC LIMIT 10
Im Folgenden wird die Bedeutung der Felder im vorherigen Ausdruck beschrieben:
- PROJECT_ID: Die Kennung des Projekts.
- LOCATION: Der Speicherort der Logansicht oder der Analyseansicht.
- BUCKET_ID: Der Name oder die ID des Log-Buckets.
- LOG_VIEW_ID: Die Kennung der Logansicht. Sie ist auf 100 Zeichen begrenzt und darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten.
Legen Sie die Dimension so fest, dass sie der Spalte mit der Zeiteinheit entspricht. Wenn Ihre Abfrage beispielsweise Daten nach einer Stunde aggregiert und eine Spalte mit dem Namen
hourerstellt, setzen Sie das Menü Dimension aufhour.Wählen Sie Intervall deaktivieren aus, da in Ihrer Abfrage bereits das Aggregationsintervall angegeben ist. In diesem Beispiel beträgt das Intervall eine Stunde.
Legen Sie für Messwert die numerische Spalte und für die Funktion Keine fest.
Wenn Sie die zeitbasierte Aggregation von Observability Analytics durchführen lassen möchten, gehen Sie so vor:
- Konfigurieren Sie die Zeitraumauswahl, die sich auf die Anzahl der Zeilen im Abfrageergebnis auswirkt.
- Legen Sie die Dimension so fest, dass sie der Spalte mit der Zeiteinheit entspricht.
Sie können dieses Menü beispielsweise auf
timestampfestlegen. - Legen Sie im Menü Intervall ein bestimmtes Aggregationsintervall fest.
Legen Sie beispielsweise den Wert dieses Felds auf
1 hourfest. Wählen Sie nicht Automatisches Intervall aus. - Legen Sie den Messwert auf die numerische Spalte fest und wählen Sie eine Funktion wie Summe aus.
Dimension und Messwert ändern
Sie können auswählen, welche Zeilen und Spalten im Diagramm dargestellt werden, indem Sie die Dimensions- und Messwertfelder auswählen.
Dimension
Die Dimension muss eine Zeitstempel-, numerische oder Stringspalte sein. Standardmäßig ist die Dimension auf die erste zeitstempelbasierte Spalte im Schema festgelegt. Wenn in der Abfrage kein Zeitstempel vorhanden ist, wird die erste Stringspalte als Dimension ausgewählt. Im Bereich Diagrammanzeige können Sie auch die Dimension anpassen. Wenn eine Zeitstempelspalte als Dimension ausgewählt ist, zeigt das Diagramm, wie sich die Daten im Laufe der Zeit ändern. Wenn eine Stringspalte als Dimension für ein Balkendiagramm ausgewählt ist, können Sie die Daten in aufsteigender oder absteigender Reihenfolge sortieren. Dadurch wird die Dimension nach lexikalischer Reihenfolge sortiert. Sie können auch die Sortierreihenfolge „default“ beibehalten, bei der die Dimension anhand der Werte des entsprechenden Measures in absteigender Reihenfolge sortiert wird.
Standardmäßig wird das Intervall für Zeitstempel automatisch festgelegt. Sie können aber auch ein benutzerdefiniertes Intervall auswählen. Bei automatischen Intervallen werden die Werte basierend auf der Zeitauswahl geändert, um ähnlich große Gruppen beizubehalten.
Sie können das Intervall auch deaktivieren. So können Sie für komplexere Analysen eigene Aggregationen und Zeiträume in der Abfrage angeben. Wenn Sie das Intervall deaktivieren, wird die Aggregationsfunktion der Messwerte auf
nonegesetzt. Wenn das Dimensionsintervall deaktiviert ist, sind nur numerische Messwerte zulässig.Messen
Im Bereich Diagrammanzeige können Sie mehrere Messwerte auswählen. Wenn Sie einen Messwert auswählen, müssen Sie auch die Aggregationsfunktion auswählen, die für die gruppierten Werte ausgeführt werden soll, z. B.
count,sum,averageundpercentile-99. Beispielsweise gibtcount-distinctdie Anzahl der eindeutigen Werte in einer bestimmten Spalte zurück.Wenn Sie das Kästchen Intervall deaktivieren für die Dimension aktivieren, ist die Aggregationsfunktionsoption
noneverfügbar. Wenn die Dimension ein Stringwert ist, wird das Kästchen Intervall deaktivieren nicht angezeigt. Wenn Sie die Aggregationsfunktionen eines Messwerts aufnonefestlegen, wird das Intervall jedoch ebenfalls deaktiviert.
Aufschlüsselung hinzufügen
Wenn Sie eine einzelne Datenreihe anhand einer anderen Spalte in mehrere Datenreihen aufteilen möchten, fügen Sie eine Aufschlüsselung hinzu.
Wählen Sie bei der Aufschlüsselung Spalten mit einer kleinen Anzahl kurzer und aussagekräftiger Labels aus, z. B. region_name. Wählen Sie keine Felder aus, die eine große Anzahl von Strings oder lange Strings enthalten könnten, z. B. textPayload.
Sehen Sie sich beispielsweise die folgende Diagrammkonfiguration an, bei der das Feld Dimension auf type, das Feld Ergebnis auf Zeilen zählen und das Feld Aufschlüsselung auf severity festgelegt ist:
Im vorherigen Screenshot sehen Sie eine gestapelte Datenreihe, in der der Ressourcentyp k8s_container in verschiedene severity-Typen aufgeteilt ist. So können Sie feststellen, wie viele Logs der einzelnen Schweregrade von einer bestimmten Ressource generiert wurden.
Diagramm in einem benutzerdefinierten Dashboard speichern
Nachdem ein Diagramm aus Ihrer Abfrage generiert wurde, können Sie es in einem benutzerdefinierten Dashboard speichern. Mit benutzerdefinierten Dashboards können Sie Informationen, die für Sie nützlich sind, mithilfe einer Vielzahl von Widget-Typen anzeigen und organisieren. In diesen Dashboards können Sie auch Variablen definieren. Das sind Filter auf Dashboard-Ebene, die nur auf bestimmte Widgets angewendet werden. Wenn Sie eine Variable auf ein Widget anwenden möchten, müssen Sie die Abfrage ändern. Weitere Informationen finden Sie unter Variable auf ein Widget anwenden.
In einem Dashboard wird eine Warnmeldung für ein Widget mit einer SQL-Abfrage angezeigt, wenn die Abfrage in der BigQuery-Engine ausgeführt wird und sich die abgefragten Ressourcen nicht in derselben Eigentumsgrenze befinden. Die Eigentumsgrenzen werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der von der Abfrage verwendeten Ressourcen. Richten Sie einen Dienstperimeter ein, um diese Warnungen zu vermeiden.
So speichern Sie das Diagramm in einem Dashboard:
-
Rufen Sie in der Google Cloud Console die Seite manage_searchObservability Analytics auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Führen Sie eine Abfrage aus, um ein Diagramm zu generieren, und klicken Sie dann auf Im Dashboard speichern.
Geben Sie im Dialogfeld Im Dashboard speichern einen Titel für das Diagramm ein und wählen Sie das Dashboard aus, in dem Sie das Diagramm speichern möchten.
Optional: Klicken Sie in der Toast-Benachrichtigung auf Dashboard ansehen, um das benutzerdefinierte Dashboard aufzurufen.
Wenn Sie eine Liste der benutzerdefinierten Dashboards aufrufen möchten, die Diagramme enthalten, die von SQL-Abfragen generiert wurden, klicken Sie auf den Button Im Dashboard speichern und dann auf arrow_drop_down Menü.
In einem benutzerdefinierten Dashboard gespeichertes Diagramm bearbeiten
Sie können ein Diagramm ändern, nachdem es in einem Dashboard gespeichert wurde. Weitere Informationen finden Sie unter Widget-Konfiguration ändern. Im Dialogfeld Widget konfigurieren können Sie Folgendes tun:
- Ändern Sie die abgefragten Daten.
- Abfrage bearbeiten, die zum Erstellen eines Diagramms verwendet wird.
- Passen Sie die Diagrammkonfiguration an, um andere Daten zu visualisieren.
Beschränkungen
Wenn sich Ihr Google Cloud -Projekt in einem Ordner befindet, der Assured Workloads verwendet, können die von Ihnen generierten Diagramme nicht in einem benutzerdefinierten Dashboard angezeigt werden.
Filter auf Dashboard-Ebene werden nicht auf Diagramme angewendet, die aus einer SQL-Abfrage generiert wurden.
Ausgewählte Spalten müssen mindestens eine Zeile mit einem Wert ungleich null enthalten.
Wenn Sie eine Abfrage speichern und die Diagrammkonfiguration anpassen, wird die benutzerdefinierte Diagrammkonfiguration nicht gespeichert.
Wenn Ihre Abfrage bereits Aggregationen enthält, kann das generierte Diagramm aufgrund einer zusätzlichen Aggregation, die automatisch von Observability Analytics angewendet wird, anders aussehen.
JSON-Pfade müssen in Strings oder Zahlen umgewandelt werden, damit sie in Diagrammen dargestellt werden können.
Beispielabfragen
In diesem Abschnitt finden Sie SQL-Beispielabfragen zum Erstellen von Diagrammen für Ihre Abfrageergebnisse. Wenn Sie mehr nützliche Informationen aus Ihren Logs gewinnen möchten, passen Sie die Diagrammkonfiguration an. So verwenden Sie die Beispielabfragen:
-
Rufen Sie in der Google Cloud Console die Seite manage_searchObservability Analytics auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Ermitteln Sie den Tabellennamen für die Logansicht, die Sie abfragen möchten.
Um diesen Namen zu ermitteln, rufen Sie die Liste Logansichten auf, suchen Sie die Logansicht und wählen Sie dann Abfrage aus. Der Bereich Abfrage ist mit einer Standardabfrage ausgefüllt, die den Tabellennamen der abgefragten Logansicht enthält. Der Tabellenname hat das Format
project_ID.region.bucket_ID.view_ID.Weitere Informationen zum Zugriff auf die Standardabfrage finden Sie unter Logansicht abfragen.
Ersetzen Sie VIEW durch den Tabellennamen für die Logansicht, die Sie abfragen möchten, und kopieren Sie dann die Abfrage.
Fügen Sie die Abfrage im Bereich Abfrage ein und klicken Sie dann auf Abfrage ausführen.
Logeinträge nach Standort und Schweregrad in einem Diagramm darstellen
Mit der folgenden Abfrage werden location und severity ausgewählt, wobei der Standort als String umgewandelt wird:
SELECT
CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
severity,
FROM
`VIEW`
WHERE resource.labels.location IS NOT NULL
Ein Beispieldiagramm und eine Beispielkonfiguration sehen so aus:
Im vorherigen Screenshot hat die Diagrammkonfiguration die folgende Diagrammkonfiguration:
- Diagrammtyp: Balkendiagramm, horizontal
- Dimension:
location, mit einem Limit von 10 - Messwert: Zeilen zählen
- Aufschlüsselung:
severity, maximal fünf
BigQuery-Audit-Logs für den Datenzugriff in Diagrammen darstellen
Die folgende Abfrage filtert nach BigQuery-data_access-Audit-Logs und wählt bestimmte Felder aus, z. B. user_email, ip, auth_permission und job_execution_project. Sie können beispielsweise ein Diagramm erstellen, das die Häufigkeit der BigQuery API-Nutzung der einzelnen Hauptkonten im Zeitverlauf visualisiert.
SELECT
timestamp,
proto_payload.audit_log.authentication_info.principal_email as user_email,
proto_payload.audit_log.request_metadata.caller_ip as ip,
auth.permission as auth_permission,
auth.granted as auth_granted,
JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `VIEW` as data_access,
UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
log_id="cloudaudit.googleapis.com/data_access"
AND data_access.resource.type = 'bigquery_dataset'
Ein Beispieldiagramm und eine Beispielkonfiguration sehen so aus:
Im vorherigen Screenshot hat die Diagrammkonfiguration die folgende Diagrammkonfiguration:
- Diagrammtyp: Balkendiagramm, vertikal
- Dimension:
user_email, maximal fünf - Messwert: Zeilen zählen
- Aufschlüsselung:
auth_permission, maximal fünf
Nächste Schritte
Eine Übersicht über Observability Analytics finden Sie unter Logs abfragen und analysieren.
Beispielabfragen finden Sie unter Beispiel-SQL-Abfragen.
Informationen zum Analysieren von Audit-Logs mit Observability Analytics finden Sie unter SQL-Abfragen für Sicherheitsstatistiken.