In diesem Dokument wird beschrieben, wie Sie Fehler beheben können, die beim Verwenden der Seite Log Analytics in der Google Cloud Console auftreten können.
Fehlermeldungen
In diesem Abschnitt werden mögliche Fehlermeldungen und deren Behebung beschrieben.
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, über das Protokolle abgefragt werden, und wiederholen Sie die Abfrage. Wenn das Abfrageintervall beispielsweise 14 Tage beträgt, verkürzen Sie es auf 7 Tage und führen Sie dann die Abfrage 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 erfordern als die Cloud Logging-Oberfläche. Weitere Informationen finden Sie unter Verknüpfte BigQuery-Datasets abfragen.
Fehlermeldung bei Abfragen für Bucket mit unterschiedlichen CMEK-Schlüsseln
Sie geben eine SQL-Abfrage ein, die mehrere Log-Buckets abfragt, 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 Protokoll-Buckets so, dass derselbe Cloud Key Management Service-Schlüssel (Cloud KMS) verwendet wird.
- Wenn sich die Log-Buckets am selben Speicherort befinden, können Sie einen Ordner oder eine Organisation als übergeordnete Ressource für die Log-Buckets 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 durch die Log Analytics-Abfrage generiert werden, mit dem Standardschlüssel des übergeordneten Elements verschlüsselt. Weitere Informationen finden Sie unter Einschränkungen für Log Analytics.
FROM-Klausel muss genau eine Ansicht enthalten
Sie geben in der Google Cloud Console auf der Seite Log Analytics eine SQL-Abfrage in den Abfragebereich ein. Der SQL-Parser zeigt jedoch den folgenden Fehler an:
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 Protokollansicht aufgelöst werden kann.
Achten Sie darauf, dass der Tabellenname die richtige Syntax hat, um diesen Fehler zu beheben:
Der Tabellenname muss der Syntax des Log Analytics-Benennungsschemas entsprechen. BigQuery und Log 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, müssen diese Felder jeweils in einzelne Backticks ((`)
) gesetzt werden.Wenn die Google Cloud-Projekt-ID beispielsweise
example.com:bluebird
lautet, verwenden Sie die folgende Syntax, um die_AllLogs
-Ansicht des_Default
-Protokoll-Buckets abzufragen:SELECT * 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
Wenn Sie eine SQL-Abfrage eingeben und ausführen und die Option Standardeinstellungen für Organisationen und Ordner konfigurieren.
Speichern deaktiviert ist, ist in den Standardressourceneinstellungen Ihrer Organisation oder Ihres Ordners ein Speicherort definiert, der von der Organisationsrichtlinie nicht zulässig ist. Bitten Sie den Administrator Ihrer Organisation, in den Standardressourceneinstellungen einen Standort zu definieren, der mit einem Standort übereinstimmt, der gemäß Ihrer Organisationsrichtlinie zulässig ist. Weitere Informationen finden Sie unterWenn die Schaltfläche
Speichern aktiviert ist, Sie den Dialog aber nicht schließen und die Abfrage nicht speichern können, gehen Sie so vor:- Die Abfrage darf keine Syntaxfehler enthalten. Sie können nur gültige Abfragen speichern.
- Optional: Kopieren Sie die Abfrage in die Zwischenablage.
- Laden Sie die Seite neu.
- 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.
Zugriff auf die Seite Log Analytics verweigert
Sie öffnen die Seite Log Analytics in der Google Cloud Console und es wird eine Fehlermeldung angezeigt, dass die Berechtigung abgelehnt 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, Ausführen von Abfragen und Ansehen von Protokollen benötigen:
-
Logs ansehen:
Loganzeige (
roles/logging.viewer
) -
Logs in benutzerdefinierten Log-Buckets ansehen:
Zugriffsberechtigter für Logbetrachtung (
roles/logging.viewAccessor
)
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder vordefinierte Rollen für die Protokollierung erhalten.
Die Berechtigungen, die Sie zum Aufrufen von Logeinträgen und Ausführen von Abfragen auf der Seite Log Analytics benötigen, sind dieselben wie für das Aufrufen von Protokollen auf der Seite Log-Explorer. 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 auf Log Analytics schlägt fehl
Sie erstellen einen Log-Bucket und wählen die Option zur Verwendung von Log Analytics aus oder Sie führen ein Upgrade eines vorhandenen Log-Buckets für die Verwendung von Log Analytics durch. Das Upgrade schlägt mit einer Fehlermeldung wie 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 zulässigen Regionen einschränkt. Für Log-Buckets, die für die Verwendung von Log Analytics aktualisiert werden können, muss die Region global
verwendet werden. Wenn Sie die Organisationsrichtlinie entfernen können, die die Nutzung der Region global
einschränkt, können Sie ein Upgrade für Ihren Log-Bucket ausführen. Andernfalls können Sie Ihre Log-Buckets nicht aktualisieren.
Das 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 mit der folgenden Berechtigung zu gewähren, 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, aber die Option zum Löschen dieses Datasets ist deaktiviert.
Bitten Sie den Systemadministrator des Google Cloud-Projekts, Ihnen eine IAM-Rolle mit der folgenden Berechtigung zu gewähren, 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 (Logs Storage) der Google Cloud Console löschen. Weitere Informationen zu Rollen und Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Schaltfläche für die Einstellungen der Suchmaschine fehlt
Wenn die Schaltfläche settings Einstellungen neben der Schaltfläche Abfrage ausführen nicht angezeigt wird, sind für Ihr Google Cloud-Projekt keine reservierten BigQuery-Slots aktiviert. Wenn Sie die Schaltfläche settings Einstellungen aktivieren möchten, konfigurieren Sie reservierte BigQuery-Slots für Ihr Projekt.
Schaltfläche „In BigQuery ausführen“ ist deaktiviert
Wenn die Schaltfläche In BigQuery ausführen angezeigt, aber deaktiviert ist, hat eine Protokollansicht, auf die Ihre Abfrage verweist, keinen verknüpften Datensatz. Wenn Sie die Abfrage auf Ihren BigQuery-Steckplatzreservierungen ausführen möchten, erstellen Sie ein verknüpftes BigQuery-Dataset in Ihrer Protokollansicht.
Kein Monitoring-Dienstkonto
Sie möchten eine Benachrichtigungsrichtlinie erstellen, um die Ergebnisse einer SQL-Abfrage zu überwachen. Bei der Einrichtung müssen Sie dem Monitoring-Dienstkonto IAM-Rollen zuweisen. Dieses Konto ist jedoch nicht vorhanden.
Das Monitoring-Dienstkonto wird als Dienst-Agent bezeichnet, da es von Google Cloud erstellt und verwaltet wird. Das Konto wird automatisch erstellt, wenn Sie eine Ressource oder einen Dienst konfigurieren, für den das Konto erforderlich ist. Wenn Sie beispielsweise einen Pub/Sub-Benachrichtigungskanal erstellen, kann dadurch das Monitoring-Dienstkonto erstellt werden.
Je nach Erstellungsablauf wird dem Monitoring-Dienstkonto möglicherweise die Rolle Monitoring Service Agent (monitoring.NotificationServiceAgent
) für Ihr Projekt zugewiesen. Sie können die dem Konto zugewiesenen Rollen ändern.
Wenn das Monitoring-Dienstkonto nicht vorhanden ist, gehen Sie so vor, um eine Benachrichtigungsrichtlinie zu erstellen, die das Ergebnis einer SQL-Abfrage überwacht:
Erstellen Sie einen Dienst-Agenten manuell. Weitere Informationen zu diesem Schritt finden Sie unter Rollen erstellen und zuweisen.
Weisen Sie dem Dienst-Agent die erforderlichen Rollen zu. Informationen zu diesen Rollen finden Sie unter SQL-Abfrageergebnisse überwachen: Vorab.
Meine Log Analytics-Ergebnisse enthalten doppelte Logeinträge.
Sie führen eine Abfrage aus, bei der doppelte Einträge gezählt oder gemeldet werden. Da der Log-Explorer doppelte Einträge basierend auf Lognamen, Zeitstempel und Einfügungs-ID entfernt, erwarten Sie, dass Log Analytics Logeinträge dedupliziert, bevor eine Abfrage ausgeführt wird.
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 Zeitstempel für den Empfang der doppelten Logeinträge unterschiedlich sind. Wenn sich die Zeitstempel unterscheiden, wurden dieselben Daten mehrmals in die Protokollierung geschrieben.
Prüfen 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, achten Sie darauf, dass Sie das Kontingent nicht überschreiten und dass auf Ihren Schlüssel immer zugegriffen werden kann. Eine Überschreitung des Kontingents oder der Verlust des Schlüsselzugriffs kann zu doppelten Logeinträgen führen.
Um diese Fehler zu beheben, achten Sie darauf, dass Sie Ihr Kontingent nicht überschreiten und dass auf Ihren Schlüssel zugegriffen werden kann.
Ändern Sie die Abfrage, um doppelte Logeinträge zu entfernen.
Angenommen, die JSON-Nutzlast enthält
fieldA
undfieldB
, wobei der erste ein String und der zweite ein numerischer Wert ist. Angenommen, die JSON-Nutzlast enthält ein Feld mit dem Namenserver
, das einen String enthält. Betrachten Sie als Nächstes 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 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 `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;