In diesem Dokument wird beschrieben, wie Sie Fehler beheben können, die bei der Verwendung der Seite Observability Analytics in der Google Cloud Console auftreten können.
Fehlermeldungen
In diesem Abschnitt werden Fehlermeldungen beschrieben, die möglicherweise angezeigt werden, und wie Sie die entsprechenden Fehlerbedingungen beheben können.
Fehlermeldung No completion signal within allotted timeframe
Sie geben eine SQL-Abfrage ein und wählen Abfrage ausführen aus. Die Abfrage wird nicht abgeschlossen und Sie sehen die folgende Fehlermeldung:
The query failed to execute and return results due to error: No completion signal within allotted timeframe.
So beheben Sie diesen Fehler:
Verkürzen Sie das Intervall, über das Logs abgefragt werden, und versuchen Sie es dann noch einmal. Wenn das Abfrageintervall beispielsweise 14 Tage beträgt, verkürzen Sie es auf 7 Tage und führen Sie die Abfrage dann aus.
Erstellen Sie ein verknüpftes BigQuery-Dataset und führen Sie die Abfrage dann über die BigQuery-Oberfläche aus. Die BigQuery-Oberfläche unterstützt Abfragen, die eine längere Ausführungszeit als die Cloud Logging-Oberfläche erfordern. Weitere Informationen finden Sie unter Verknüpftes BigQuery-Dataset abfragen.
Fehlermeldung „Queries against buckets with distinct CMEK keys“
Sie geben eine SQL-Abfrage ein, mit der mehrere Log-Buckets abgefragt werden, und wählen Abfrage ausführen aus. Die Abfrage wird nicht abgeschlossen und Sie sehen die folgende Fehlermeldung:
Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.
So beheben Sie dieses Problem:
- Konfigurieren Sie Ihre Log-Buckets so, dass sie denselben Cloud Key Management Service-Schlüssel (Cloud KMS) verwenden.
- Wenn sich die Log-Buckets am selben Standort befinden, können Sie einen Ordner oder eine Organisation konfigurieren, die eine übergeordnete Ressource für die Log-Buckets mit einem standardmäßigen Cloud KMS-Schlüssel ist. Der Standardschlüssel der übergeordneten Ressource muss sich am selben Standort wie die Log-Buckets befinden. Mit dieser Konfiguration werden alle temporären Daten, die von der Observability Analytics-Abfrage generiert werden, mit dem Standardschlüssel der übergeordneten Ressource verschlüsselt. Weitere Informationen finden Sie unter Einschränkungen für Observability Analytics.
Fehlermeldung „FROM clause must contain exactly one view“
Sie geben eine SQL-Abfrage in den Abfragebereich der Seite Observability Analytics in der -Console ein, aber der SQL-Parser gibt den folgenden Fehler aus: Google Cloud
FROM clause must contain exactly one log view
Der vorherige Fehler wird gemeldet, wenn die in der FROM-Anweisung angegebene Tabelle nicht in eine bestimmte Logansicht aufgelöst werden kann.
Achten Sie darauf, dass der Tabellenname die richtige Syntax hat, um diesen Fehler zu beheben:
Der Tabellenname muss der Syntax entsprechen, die für das Benennungsschema von Observability Analytics erforderlich ist. BigQuery und Observability Analytics haben unterschiedliche Anforderungen an den Tabellennamen. Die erforderliche Syntax für den Tabellennamen finden Sie in der Standardabfrage.
Wenn die Google Cloud Projekt-ID, die Region, die Bucket-ID oder die Ansichts-ID eines Log-Buckets Punkte enthält,
(.), muss jedes dieser Felder in einzelne Graviszeichen eingeschlossen werden,(`).Wenn eine Projekt-ID beispielsweise Google Cloud
example.com:bluebirdist, verwenden Sie die folgende Syntax, um die Tabelle anzugeben, um die Ansicht_AllLogsdes Log-Buckets_Defaultabzufragen:SELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`Bei der vorherigen Abfrage wird davon ausgegangen, dass sich der Bucket
_Defaultin der Regionglobalbefindet.
Abfrage kann nicht gespeichert werden
Sie möchten Ihre aktuelle Abfrage speichern. Dazu führen Sie die Abfrage aus und klicken dann auf Speichern . Die Option Abfrage speichern ist jedoch deaktiviert oder Sie können die Schritte im Dialogfeld nicht ausführen.
Die Ursache für diesen Fehler ist ein Konflikt zwischen einer Organisationsrichtlinie und den Standardeinstellungen für Ressourcen für Cloud Logging. Für eine Organisation oder einen Ordner können Sie Standardeinstellungen für Ressourcen für Cloud Logging konfigurieren, in denen ein Standort angegeben wird. An diesem Standort werden Ihre gespeicherten Abfragen gespeichert. Wenn der Standort jedoch mit einer Organisationsrichtlinie in Konflikt steht, können Ihre Abfragen nicht gespeichert werden.
Bitten Sie den Administrator Ihrer Organisation, die Standardeinstellungen für Ressourcen für Cloud Logging zu aktualisieren, damit die Standorteinstellung von Ihrer Organisationsrichtlinie zugelassen wird. Weitere Informationen finden Sie unter Standardeinstellungen für Ressourcen für Cloud Logging konfigurieren.
Wenn die Option Abfrage speichern aktiviert ist, Sie das Dialogfeld aber nicht abschließen und die Abfrage nicht speichern können, gehen Sie so vor:
- Achten Sie darauf, dass die Abfrage keine Syntaxfehler enthält. Sie können nur gültige Abfragen speichern.
- Optional: Kopieren Sie die Abfrage in die Zwischenablage.
- Aktualisieren Sie die Seite.
- Wenn Sie die Abfrage in die Zwischenablage kopiert haben, fügen Sie sie in den Bereich Abfrage ein, führen Sie die Abfrage aus und speichern Sie sie dann.
Analyseansicht kann nicht erstellt werden
Sie möchten eine Analyseansicht erstellen. Dazu geben Sie eine SQL-Abfrage ein und führen sie aus. Dann klicken Sie auf Speichern. Die Option Als Analyseansicht speichern ist jedoch deaktiviert.
Achten Sie darauf, dass Ihre IAM-Rollen die folgenden Berechtigungen enthalten, um dieses Problem zu beheben:
observability.analyticsViews.{get, list, create, update, delete}
Diese Berechtigungen sind in keiner vordefinierten Cloud Logging-Rolle enthalten. Informationen zu den erforderlichen Rollen finden Sie unter Analyseansichten erstellen und abfragen: Vorbereitung.
Analyseansicht kann nicht abgefragt werden
Sie möchten eine Analyseansicht abfragen, aber im Bereich Ansichten auf der Seite Observability Analytics werden keine Analyseansichten angezeigt.
So beheben Sie diesen Fehler:
Achten Sie darauf, dass Ihre IAM-Rollen die folgenden Berechtigungen enthalten:
observability.analyticsViews.{get, list}
Diese Berechtigungen sind in keiner vordefinierten Cloud Logging-Rolle enthalten. Informationen zu den erforderlichen Rollen finden Sie unter Analyseansichten erstellen und abfragen: Vorbereitung.
Achten Sie darauf, dass in Ihrem Google Cloud Projekt Analyseansichten vorhanden sind.
Zugriff auf die Seite Observability Analytics verweigert
Sie öffnen die Seite Observability Analytics in der Google Cloud Console und es wird eine Fehlermeldung angezeigt, dass die Berechtigung verweigert wurde.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Laden der Seite Observability Analytics , zum Ausführen von Abfragen und zum Aufrufen von Logs benötigen:
-
Logs ansehen:
Logbetrachter (
roles/logging.viewer) -
Logs in benutzerdefinierten Log-Buckets ansehen:
Zugriffsberechtigter für Logbetrachtung (
roles/logging.viewAccessor)
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder Logging vordefinierte Rollen erhalten.
Die Berechtigungen, die Sie zum Aufrufen von Logeinträgen und zum Ausführen von Abfragen auf der Seite Observability Analytics benötigen, sind dieselben wie die, die Sie zum Aufrufen von Logs auf der Seite Log-Explorer benötigen. Informationen zu
zusätzlichen Rollen, die Sie zum Abfragen von Ansichten in benutzerdefinierten Buckets oder
zum Abfragen der Ansicht _AllLogs des Log-Buckets _Default benötigen, finden Sie unter
Cloud Logging-Rollen.
Upgrade des Log-Buckets zur Verwendung von Observability Analytics schlägt fehl
Sie erstellen einen Log-Bucket und wählen die Option zur Verwendung von Observability Analytics aus oder Sie führen ein Upgrade eines vorhandenen Log-Buckets durch, um Observability Analytics zu verwenden. Das Upgrade schlägt mit einer Fehlermeldung ähnlich der folgenden fehl:
Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID with location global.
Die vorherige Fehlermeldung gibt an, dass Ihre Organisation eine Organisationsrichtlinie konfiguriert hat, die die verwendbaren Regionen einschränkt. Für Log-Buckets, die für ein Upgrade zur Verwendung von Observability Analytics infrage kommen, muss die Region global verwendet werden. Wenn Sie die Organisationsrichtlinie entfernen können, die die Verwendung der Region global einschränkt, können Sie ein Upgrade für Ihren Log-Bucket durchführen. Andernfalls können Sie kein Upgrade für Ihre Log-Buckets durchführen.
Erstellen eines verknüpften BigQuery-Datasets schlägt fehl
Sie bearbeiten einen Log-Bucket, um ein verknüpftes BigQuery-Dataset zu erstellen, oder Sie erstellen einen neuen Log-Bucket und wählen die Option zum Erstellen eines verknüpften Datasets aus. Das verknüpfte Dataset wird jedoch nicht erstellt.
Bitten Sie den Systemadministrator des Google Cloud Projekts , Ihnen eine IAM-Rolle zuzuweisen, die die folgende Berechtigung enthält, um diesen Fehler zu beheben:
logging.links.create
Die vorherige Berechtigung ist in den Rollen Logging-Administrator (roles/logging.admin) und Logkonfigurationsautor (roles/logging.configWriter) enthalten.
Informationen zu Rollen und Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Löschen eines verknüpften BigQuery-Datasets schlägt fehl
Sie möchten das verknüpfte Dataset nicht mehr verwenden, aber die Option zum Löschen dieses Datasets ist deaktiviert.
Bitten Sie den Systemadministrator des Google Cloud Projekts , Ihnen eine IAM-Rolle zuzuweisen, die die folgende Berechtigung enthält, um diesen Fehler zu beheben:
logging.links.delete
Die vorherige Berechtigung ist in den Rollen Logging-Administrator (roles/logging.admin) und Logkonfigurationsautor (roles/logging.configWriter) enthalten.
Mit dieser Berechtigung können Sie das verknüpfte Dataset auf der Logspeicher Seite der Google Cloud -Console löschen. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Observability Analytics zeigt eine Warnung zu sensiblen Metadaten an
Auf der Seite Observability Analytics wird eine Meldung ähnlich der folgenden angezeigt:
This SQL query is configured to run on the BigQuery engine using [PROJECT_ID],
and references resources from [RESOURCE, ...]. Sensitive metadata,
including table contents, may be written to [PROJECT_ID].
Die Warnmeldung gibt an, dass die Abfrage Eigentumsgrenzen überschreitet, und bietet Ihnen die Möglichkeit, die Abfrage zu überprüfen, bevor sie ausgeführt wird. Eigentumsgrenzen werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der Ressourcen, die von der Abfrage verwendet werden.
Sie können diese Arten von Warnungen nicht verhindern.
Wenn auf der Seite Observability Analytics ein Warndialogfeld angezeigt wird, haben Sie folgende Möglichkeiten:
Wenn Sie wissen, dass die Abfrage sicher ausgeführt werden kann, und Sie die Abfrageergebnisse sehen möchten, klicken Sie auf Bestätigen und ausführen.
Analysieren Sie die Abfrage und verwerfen Sie sie gegebenenfalls. Beispielsweise können Sie Folgendes tun:
- Überprüfen Sie die Abfrage. Berücksichtigen Sie dabei, welche Daten abgefragt werden, die potenzielle Größe des abgefragten Datasets und die Abfrage-Engine. Für Abfragen, die im BigQuery-Dienst ausgeführt werden, können Gebühren anfallen.
- Wenn Sie einen Link zur Seite Observability Analytics erhalten haben, prüfen Sie, ob der Absender eine vertrauenswürdige Quelle ist.
Google Cloud bietet einige Funktionen, mit denen Datenverluste durch Phishing, Insider-Angriffe oder externe Entitäten verhindert werden können. Weitere Informationen finden Sie unter Datensicherheit mit Observability Analytics.
Abfrage-Engine kann nicht auf BigQuery festgelegt werden
Die Option „BigQuery“ ist im Menü settings Einstellungen deaktiviert.
Achten Sie darauf, dass für den abgefragten Log-Bucket ein verknüpftes BigQuery-Dataset vorhanden ist, um diese Option zu aktivieren.
Button „In BigQuery ausführen“ ist deaktiviert
Wenn der Button In BigQuery ausführen angezeigt, aber deaktiviert ist, hat eine Logansicht, auf die in Ihrer Abfrage verwiesen wird, kein verknüpftes Dataset. Erstellen Sie ein verknüpftes BigQuery-Dataset für Ihren Log-Bucket, um die Abfrage in der BigQuery-Engine auszuführen.
Kein Monitoring-Dienstkonto
Sie möchten eine Benachrichtigungsrichtlinie erstellen, um die Ergebnisse einer SQL-Abfrage zu überwachen. Bei der Einrichtung mussten Sie dem Monitoring-Dienstkonto IAM-Rollen zuweisen, aber dieses Konto ist nicht vorhanden.
Das Monitoring-Dienstkonto wird als Dienst-Agent bezeichnet, da es von Google Clouderstellt und verwaltet wird. Das Konto wird automatisch erstellt, wenn Sie eine Ressource oder einen Dienst konfigurieren, für die bzw. den das Konto erforderlich ist. Wenn Sie beispielsweise einen Pub/Sub-Benachrichtigungskanal erstellen, kann dadurch das Monitoring-Dienstkonto erstellt werden.
So erstellen Sie das Monitoring-Dienstkonto und gewähren ihm die Berechtigungen, die für SQL-basierte Benachrichtigungsrichtlinien erforderlich sind:
Erstellen Sie das Monitoring-Dienstkonto. Weitere Informationen finden Sie unter Rollen erstellen und ihnen Dienst-Agents zuweisen.
Weisen Sie dem Monitoring-Dienstkonto die folgenden Rollen zu:
- Monitoring-Dienst-Agent (
roles/monitoring.notificationServiceAgent) für Ihr Projekt. - BigQuery-Datenbetrachter (
roles/bigquery.dataViewer) für Ihr verknüpftes Dataset.
- Monitoring-Dienst-Agent (
Fehler „Berechtigung für Monitoring-Dienstkonto verweigert“
Sie möchten eine Benachrichtigungsrichtlinie erstellen, um die Ergebnisse einer SQL-Abfrage zu überwachen.
Sie sehen jedoch einen PermissionDenied-Fehler mit einer Meldung, die mit Error authenticating service account beginnt.
Weisen Sie dem Monitoring-Dienstkonto die folgenden Rollen zu, um diesen Fehler zu beheben:
- Monitoring-Dienst-Agent (
roles/monitoring.notificationServiceAgent) für Ihr Projekt. - BigQuery-Datenbetrachter (
roles/bigquery.dataViewer) für Ihr verknüpftes Dataset.
In meinen Observability Analytics-Ergebnissen sind doppelte Logeinträge vorhanden
Sie führen eine Abfrage aus, mit der doppelte Einträge gezählt oder gemeldet werden. Da der Log-Explorer doppelte Einträge anhand des Lognamens, des Zeitstempels und der Einfüge-ID entfernt, erwarten Sie, dass Observability Analytics Logeinträge dedupliziert, bevor eine Abfrage ausgeführt wird.
Observability Analytics führt nicht dieselbe Art der Deduplizierung wie der Log-Explorer aus.
So beheben Sie doppelte Logeinträge:
Prüfen Sie, ob die doppelten Logeinträge unterschiedliche Zeitstempelwerte für den Empfang haben. Wenn sich die Zeitstempel unterscheiden, bedeutet das, dass dieselben Daten mehrmals in Logging geschrieben wurden.
Untersuchen Sie Ihre Logging-Integration auf Fehlermeldungen oder Fehlkonfigurationen, um doppelte Schreibvorgänge zu beheben.
Wenn Ihr Bucket für die Verwendung von Cloud Key Management Service-Schlüsseln konfiguriert ist, prüfen Sie, ob Sie das Kontingent nicht überschreiten und ob Ihr Schlüssel immer zugänglich ist. Eine Überschreitung des Kontingents oder der Verlust des Schlüsselzugriffs kann zu doppelten Logeinträgen führen.
Achten Sie darauf, dass Sie Ihr Kontingent nicht überschreiten und dass Ihr Schlüssel zugänglich ist, um diese Fehler zu beheben.
Ändern Sie Ihre Abfrage, um doppelte Logeinträge zu entfernen.
Angenommen, die JSON-Nutzlast enthält
fieldAundfieldB. Das erste Feld ist ein String und das zweite eine Zahl. Außerdem enthält die JSON-Nutzlast ein Feld mit der Bezeichnungserver, das einen String enthält. Betrachten Sie nun die folgende Abfrage:SELECT JSON_VALUE(json_payload.fieldA) AS fieldA SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB FROM `VIEW` WHERE JSON_VALUE(json_payload.server) = "test" GROUP BY fieldA;Sie können die Abfrage so ändern, dass doppelte Logeinträge entfernt werden. Dabei werden der Logname, der Zeitstempel und die Einfüge-ID geprüft, um festzustellen, ob ein Logeintrag ein Duplikat ist:
WITH deduplicated AS ( SELECT JSON_VALUE(json_payload.fieldA) AS fieldA IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB FROM `VIEW` a WHERE JSON_VALUE(json_payload.server) = "test" QUALIFY ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 ) SELECT fieldA, SUM(fieldB) AS sum_fieldB FROM deduplicated GROUP BY fieldA;