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 Projekts muss sich am selben Standort 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 Log Analytics in der Google Cloud -Konsole 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 (
(.)
) enthält, muss jedes dieser Felder in einfache Graviszeichen ((`)
) eingeschlossen werden. Google CloudWenn die Projekt-ID beispielsweise
example.com:bluebird
lautet, verwenden Sie die folgende Syntax, um die Tabelle anzugeben, wenn Sie die Ansicht_AllLogs
des Log-Buckets_Default
abfragen möchten: Google CloudSELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
Bei der vorherigen Abfrage wird davon ausgegangen, dass sich der Bucket
_Default
in der Regionglobal
befindet.
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.Wenn die Option Abfrage speichern deaktiviert ist, wird in den Standardressourceneinstellungen Ihrer Organisation oder Ihres Ordners ein Speicherort definiert, der gemäß der Organisationsrichtlinie nicht zulässig ist. Bitten Sie den Administrator Ihrer Organisation, einen Standort in den Standardressourceneinstellungen zu definieren, der mit einem Standort übereinstimmt, der durch Ihre Organisationsrichtlinie zulässig ist, um diesen Fehler zu beheben. Weitere Informationen finden Sie unter Standardeinstellungen für Organisationen und Ordner 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 sie 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 Log Analytics werden keine Analytics-Ansichten angezeigt.
Versuchen Sie Folgendes, um diesen Fehler zu beheben:
Ihre IAM-Rollen müssen 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 Konsole und es wird eine Fehlermeldung angezeigt, die besagt, 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 das Logging erhalten.
Die Berechtigungen, die Sie zum Aufrufen von Logeinträgen und zum Ausführen von Abfragen auf der Seite Log 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 für benutzerdefinierte 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 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 ist, die die verwendbaren Regionen einschränkt. Log-Buckets, die für ein Upgrade zur Verwendung von Log Analytics infrage kommen, müssen die Region global
verwenden. 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 der Google Cloud -Konsole löschen. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Die Schaltfläche für die Einstellungen der Abfrage-Engine fehlt
Wenn die Schaltfläche settings Einstellungen nicht neben der Schaltfläche Abfrage ausführen angezeigt wird, sind für Ihr Google Cloud Projekt keine reservierten BigQuery-Slots aktiviert. Damit die Schaltfläche settings Einstellungen angezeigt wird, müssen Sie reservierte BigQuery-Slots für Ihr Projekt konfigurieren.
Schaltfläche „In BigQuery ausführen“ ist deaktiviert
Wenn die Schaltfläche 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 in Ihrer Log-Ansicht.
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 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.
Meine Loganalysen enthalten doppelte Logeinträge
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 Logname, Zeitstempel und Einfügungs-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 durchgeführt wie im Log-Explorer.
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
fieldA
undfieldB
.fieldA
ist ein String undfieldB
ist numerisch. Angenommen, die JSON-Nutzlast enthält 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 `TABLE_NAME_OF_LOG_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 `TABLE_NAME_OF_LOG_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;