Fehlerbehebung bei der Log Analytics-Konfiguration

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 Cloud

    Wenn 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 Cloud

    
    SELECT *
    FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
    

    Bei der vorherigen Abfrage wird davon ausgegangen, dass sich der Bucket _Default in der Region global 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:

  1. Prüfen Sie, ob die Abfrage Syntaxfehler enthält. Sie können nur gültige Abfragen speichern.
  2. Optional: Kopieren Sie die Abfrage in die Zwischenablage.
  3. Aktualisieren Sie die Seite.
  4. 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:

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  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  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:

  1. Erstellen Sie das Monitoring-Dienstkonto. Weitere Informationen finden Sie unter Rollen erstellen und ihnen Dienst-Agents zuweisen.

  2. Weisen Sie dem Monitoring-Dienstkonto die folgenden Rollen zu:

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:

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:

  1. 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.

  2. 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.

  3. Ändern Sie die Abfrage, um doppelte Logeinträge zu entfernen.

    Angenommen, die JSON-Nutzlast enthält fieldA und fieldB. fieldA ist ein String und fieldB ist numerisch. Angenommen, die JSON-Nutzlast enthält ein Feld mit dem Label server, 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;