In diesem Dokument wird beschrieben, wie Sie Fehler beheben können, die bei der Verwendung der Seite Log Analytics der Google Cloud Console auftreten können.
Fehlermeldungen
In diesem Abschnitt werden Fehlermeldungen beschrieben, die möglicherweise angezeigt werden, und es wird erläutert, wie Sie die entsprechenden Fehlerbedingungen beheben.
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.
Führen Sie einen der folgenden Schritte aus, um diesen Fehler zu beheben:
Verkürzen Sie das Intervall, für das Protokolle abgefragt werden, und wiederholen Sie die Abfrage. Wenn ein Abfrageintervall beispielsweise 14 Tage umfasst, 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-Benutzeroberflä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 bei Abfragen für Buckets mit unterschiedlichen CMEK-Schlüsseln
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.
Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
- 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 Ort befinden, können Sie einen Ordner oder eine Organisation, die eine übergeordnete Ressource für die Log-Buckets ist, mit einem Cloud KMS-Standardschlüssel konfigurieren. Der Standardschlüssel des übergeordneten Elements muss sich am selben Speicherort wie die Log-Buckets befinden. Bei dieser Konfiguration werden alle temporären Daten, die von der Log Analytics-Abfrage generiert werden, mit dem Standardschlüssel des übergeordneten Kontos verschlüsselt. Weitere Informationen finden Sie unter Log Analytics-Einschränkungen.
FROM-Klausel muss genau eine Fehlermeldung für die Ansicht enthalten
Sie geben eine SQL-Abfrage im Abfragebereich der Seite Loganalysen in der Google Cloud -Console ein, aber der SQL-Parser gibt den folgenden Fehler aus:
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:
Achten Sie darauf, dass der Tabellenname der Syntax des Log Analytics-Benennungsschemas entspricht. Für BigQuery und Loganalysen gelten unterschiedliche Anforderungen an den Tabellennamen. Die erforderliche Syntax für den Tabellennamen finden Sie in der Standardabfrage.
Wenn die Projekt-ID, Region, Bucket-ID oder Ansichts-ID eines Log-Buckets Punkte ( Google Cloud ) enthält, muss jedes dieser Felder in einzelne Graviszeichen (
(`)) eingeschlossen werden.(.)Wenn die Projekt-ID beispielsweise
example.com:bluebirdlautet, verwenden Sie die folgende Syntax, um die Tabelle anzugeben, wenn Sie die Ansicht_AllLogsdes Log-Buckets_Defaultabfragen möchten: Google CloudSELECT * 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 Dialogfeldschritte nicht abschließen.
Die Ursache für diesen Fehler ist ein Konflikt zwischen einer Organisationsrichtlinie und den Standardressourceneinstellungen für Cloud Logging. Für eine Organisation oder einen Ordner können Sie Standardressourceneinstellungen für Cloud Logging konfigurieren, in denen ein Standort angegeben wird. Hier werden Ihre gespeicherten Anfragen gespeichert. Wenn der Standort jedoch mit einer Organisationsrichtlinie in Konflikt steht, können Ihre Anfragen nicht gespeichert werden.
Bitten Sie den Administrator Ihrer Organisation, die Standardressourceneinstellungen für Cloud Logging so zu aktualisieren, dass die Standorteinstellung durch Ihre Organisationsrichtlinie zugelassen wird. Weitere Informationen finden Sie unter Standardressourceneinstellungen für Cloud Logging konfigurieren.
Wenn die Option Abfrage speichern aktiviert ist, Sie das Dialogfeld aber nicht ausfüllen und die Abfrage nicht speichern können, gehen Sie so vor:
- Prüfen Sie, ob die Abfrage 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. Anschließend klicken Sie auf Speichern, aber die Option Als Analyseansicht speichern ist deaktiviert.
Zur Behebung dieses Problems müssen Ihre IAM-Rollen die folgenden Berechtigungen enthalten:
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 Analytics-Ansichten erstellen und abfragen: Vorbereitung.
Datenansicht kann nicht abgefragt werden
Sie möchten eine Analytics-Ansicht abfragen, aber im Bereich Ansichten auf der Seite Loganalysen werden keine Analytics-Ansichten angezeigt.
Versuchen Sie Folgendes, um diesen Fehler zu beheben:
Prüfen Sie, ob 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 Analytics-Ansichten erstellen und abfragen: Vorbereitung.
Achten Sie darauf, dass in Ihrem Google Cloud Projekt Analyseansichten vorhanden sind.
Zugriff auf die Seite Loganalysen verweigert
Sie öffnen die Seite Loganalysen 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 Log Analytics, zum Ausführen von Abfragen und zum Aufrufen von Logs benötigen:
-
Logs ansehen:
Loganzeige (
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 vordefinierte Rollen für Logging erhalten.
Die Berechtigungen, die Sie zum Aufrufen von Logeinträgen und zum Ausführen von Abfragen auf der Seite Loganalysen 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 _AllLogs-Ansicht des _Default-Log-Buckets benötigen, finden Sie unter Cloud Logging-Rollen.
Upgrade des Log-Buckets zur Verwendung von Log Analytics schlägt fehl
Sie erstellen einen Log-Bucket und wählen die Option zur Verwendung von Loganalysen aus oder Sie führen ein Upgrade für einen vorhandenen Log-Bucket durch, um Loganalysen zu verwenden. Das Upgrade schlägt mit einem Fehler ähnlich dem folgenden fehl:
Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID with location global.
Die vorherige Fehlermeldung weist darauf hin, dass in Ihrer Organisation eine Organisationsrichtlinie konfiguriert wurde, die die verwendbaren Regionen einschränkt. Für Log-Buckets, für die ein Upgrade zur Verwendung von Loganalysen durchgeführt werden kann, 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 ausfü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 für das Google Cloud -Projekt, Ihnen eine IAM-Rolle mit der folgenden Berechtigung zuzuweisen, um diesen Fehler zu beheben:
logging.links.create
Die vorherige Berechtigung ist in den Rollen „Logging-Administrator“ (roles/logging.admin) und „Autor von Logkonfigurationen“ (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, die Option zum Löschen des Datasets ist jedoch deaktiviert.
Bitten Sie den Systemadministrator für das Google Cloud -Projekt, Ihnen eine IAM-Rolle mit der folgenden Berechtigung zuzuweisen, um diesen Fehler zu beheben:
logging.links.delete
Die vorherige Berechtigung ist in den Rollen „Logging-Administrator“ (roles/logging.admin) und „Autor von Logkonfigurationen“ (roles/logging.configWriter) enthalten.
Mit dieser Berechtigung können Sie das verknüpfte Dataset auf der Seite Logs Storage (Speicher für Protokolle) der Google Cloud -Konsole löschen. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
In Log Analytics wird eine Warnung zu sensiblen Metadaten angezeigt
Auf der Seite Log 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 weist darauf hin, dass die Abfrage Eigentumsgrenzen überschreitet. Sie haben die Möglichkeit, die Abfrage zu überprüfen, bevor sie ausgeführt wird. Die Grenzen des Eigentums werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der Ressourcen, die in der Abfrage verwendet werden.
Diese Art von Warnungen lässt sich nicht verhindern.
Wenn auf der Seite Log Analytics ein Warnfeld angezeigt wird, haben Sie folgende Möglichkeiten:
Wenn Sie wissen, dass die Ausführung der Abfrage sicher ist, und Sie die Abfrageergebnisse sehen möchten, klicken Sie auf Bestätigen und ausführen.
Analysieren Sie die Anfrage und verwerfen Sie sie gegebenenfalls. Sie können beispielsweise Folgendes tun:
- Überprüfen Sie die Abfrage. Berücksichtigen Sie bei der Überprüfung, 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 Log Analytics erhalten haben, prüfen Sie, ob der Absender vertrauenswürdig ist.
Google Cloud bietet einige Funktionen, mit denen sich Daten-Exfiltration durch Phishing, Insider-Angriffe oder externe Entitäten verhindern lässt. Weitere Informationen finden Sie unter Datensicherheit mit Log Analytics.
Die Abfrage-Engine kann nicht auf BigQuery festgelegt werden.
Im Menü settings Einstellungen ist die BigQuery-Option deaktiviert.
So aktivieren Sie diese Option:
- Aktivieren Sie die BigQuery Reservations API.
- Reservierte BigQuery-Slots für Ihr Projekt konfigurieren
- Achten Sie darauf, dass Sie ein verknüpftes BigQuery-Dataset für den abgefragten Log-Bucket haben.
Schaltfläche „In BigQuery ausführen“ ist deaktiviert
Wenn der Button In BigQuery ausführen angezeigt, aber deaktiviert ist, hat eine von Ihrer Abfrage referenzierte Log-Ansicht kein verknüpftes Dataset. Wenn Sie Ihre Abfrage für Ihre BigQuery-Slotreservierungen ausführen möchten, erstellen Sie ein verknüpftes BigQuery-Dataset für Ihren Log-Bucket.
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 vonGoogle 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 erteilen ihm die für SQL-basierte Benachrichtigungsrichtlinien erforderlichen Berechtigungen:
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 Data Viewer (
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 den Fehler PermissionDenied 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 Data Viewer (
roles/bigquery.dataViewer) für Ihr verknüpftes Dataset.
In meinen Loganalyse-Ergebnissen sind doppelte Logeinträge vorhanden
Sie führen eine Abfrage aus, mit der doppelte Einträge gezählt oder gemeldet werden. Da im Log-Explorer doppelte Einträge anhand von Lognamen, Zeitstempel und Einfüge-ID entfernt werden, erwarten Sie, dass Loganalysen Logeinträge vor dem Ausführen einer Abfrage deduplizieren.
In Log Analytics wird nicht dieselbe Art der Deduplizierung wie im Log-Explorer durchgeführt.
So beheben Sie doppelte Logeinträge:
Prüfen Sie, ob die doppelten Logeinträge unterschiedliche Werte für den Empfangszeitstempel haben. Wenn sich die Zeitstempel unterscheiden, bedeutet das, dass dieselben Daten mehrmals in Logging geschrieben wurden.
Um doppelte Schreibvorgänge zu beheben, untersuchen Sie Ihre Logging-Integration auf Fehlermeldungen oder Fehlkonfigurationen.
Wenn Ihr Bucket für die Verwendung von Cloud Key Management Service-Schlüsseln konfiguriert ist, achten Sie darauf, dass Sie das Kontingent nicht überschreiten und dass Ihr Schlüssel immer zugänglich ist. Eine Überschreitung des Kontingents oder der Verlust des Schlüsselzugriffs kann zu doppelten Logeinträgen führen.
Um diese Fehler zu beheben, müssen Sie darauf achten, dass Sie Ihr Kontingent nicht überschreiten und dass Ihr Schlüssel zugänglich ist.
Ändern Sie die Abfrage, um doppelte Logeinträge zu entfernen.
Angenommen, die JSON-Nutzlast enthält
fieldAundfieldB, wobeifieldAein String undfieldBnumerisch ist. Angenommen, die JSON-Nutzlast enthält auch ein Feld mit dem Labelserver, 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 untersucht, 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;