Fehlerbehebung bei der Konfiguration von Observability Analytics

Mit Observability Analytics können Sie SQL-Abfragen ausführen, um Ihre Logs zu analysieren, Analyseansichten zu erstellen, Log-Buckets mit BigQuery-Datasets zu verknüpfen und Abfrageergebnisse mit Benachrichtigungsrichtlinien zu überwachen. Wenn beim Konfigurieren oder Abfragen von Observability Analytics Fehler auftreten, können Sie die Anleitung in diesem Dokument verwenden, um sie zu identifizieren und zu beheben. Informationen zu Problemen beim Upgrade eines Log-Buckets finden Sie unter Fehlerbehebung beim Upgrade eines Buckets für die Verwendung von Observability Analytics.

Fehlermeldungen

In diesem Abschnitt werden Fehlermeldungen beschrieben, die möglicherweise angezeigt werden, und wie Sie die entsprechenden Fehler beheben können.

No completion signal within allotted timeframe-Fehlermeldung

Sie geben eine SQL-Abfrage ein und wählen Abfrage ausführen aus. Die Abfrage wird nicht abgeschlossen und die folgende Fehlermeldung wird angezeigt:

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 Logs abgefragt werden, und wiederholen Sie die Abfrage. Wenn ein Abfrageintervall beispielsweise 14 Tage beträgt, verkürzen Sie das Intervall 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-Schnittstelle unterstützt Abfragen, die eine längere Ausführungszeit als die Cloud Logging-Schnittstelle erfordern. Weitere Informationen finden Sie unter Verknüpftes BigQuery-Dataset erstellen.

Fehlermeldung bei Abfragen für Buckets 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 die folgende Fehlermeldung wird angezeigt:

Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.

Führen Sie einen der folgenden Schritte aus, um dieses 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 Standort 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 Standort wie die Log-Buckets befinden. Bei dieser Konfiguration werden alle temporären Daten, die von der Observability Analytics-Abfrage generiert werden, mit dem Standardschlüssel des übergeordneten Elements verschlüsselt. Weitere Informationen finden Sie unter Einschränkungen für Observability Analytics.

FROM clause must contain exactly one log view-Fehlermeldung

Sie geben eine SQL-Abfrage im Abfragebereich der Seite Observability Analytics in der Google Cloud Console ein, aber der SQL-Parser zeigt 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 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 Observability Analytics-Benennungsschemas entspricht. 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 die Projekt-ID von Google Cloud 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:

    
    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 Dialogschritte 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, die einen Standort angeben. 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 Standardressourceneinstellungen für Cloud Logging so zu aktualisieren, dass die Standorteinstellung gemäß Ihrer Organisationsrichtlinie zulässig ist. Weitere Informationen finden Sie unter Standardressourceneinstellungen 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:

  1. Achten Sie darauf, dass die Abfrage keine 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 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, führen sie aus und klicken dann 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.

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 Analyseansichten erstellen und abfragen: Vorbereitung.

  • Prüfen Sie, ob 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:

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 Observability Analytics benötigen, sind dieselben, 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.

Log-Bucket kann aufgrund einer Standorteinschränkung nicht erstellt werden

Sie versuchen, einen Log-Bucket zu erstellen, aber die Aktion schlägt mit einer Meldung wie der folgenden fehl:

Constraint `constraints/gcp.resourceLocations` violated for `<CONTAINER>` attempting to change `<BUCKET_NAME>` with location `<LOCATION>`. The location must be in the allowed location list configured by the organization policy administrator.

Die vorherige Fehlermeldung weist darauf hin, dass der von Ihnen für den neuen Log-Bucket ausgewählte Standort von Ihrer Organisation nicht unterstützt wird.

Wählen Sie einen Standort aus, der von Ihrer Organisation unterstützt wird, um diesen Fehler zu beheben.

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 BigQuery-Datasets aus. Das verknüpfte BigQuery-Dataset wird jedoch nicht erstellt.

Bitten Sie den Systemadministrator für das Projekt Google Cloud , 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 benötigen das verknüpfte BigQuery-Dataset nicht mehr, aber die Option zum Löschen dieses Datasets ist deaktiviert.

Bitten Sie den Systemadministrator für das Projekt Google Cloud , 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 BigQuery-Dataset auf der Seite Logspeicher 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 weist darauf hin, dass die Abfrage die Eigentumsgrenzen überschreitet, und bietet Ihnen die Möglichkeit, die Abfrage vor der Ausführung zu überprüfen. Die Eigentumsgrenzen werden durch mehrere Faktoren bestimmt, darunter die Hierarchie der von der Abfrage verwendeten Ressourcen.

Diese Art von Warnungen lässt sich nicht verhindern.

Wenn auf der Seite Observability Analytics ein Warndialogfeld angezeigt wird, können Sie Folgendes tun:

  • 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. Sie können beispielsweise Folgendes tun:

    1. Prüfen Sie die Abfrage. Berücksichtigen Sie bei der Prüfung, welche Daten abgefragt werden, wie groß das abgefragte Dataset potenziell ist und welche Abfrage-Engine verwendet wird. Für Abfragen, die im BigQuery-Dienst ausgeführt werden, können Gebühren anfallen.
    2. 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 Sie die Daten-Exfiltration durch Phishing, Insider-Angriffe oder externe Entitäten verhindern können. Weitere Informationen finden Sie unter Datensicherheit mit Observability Analytics.

Abfrage eines verknüpften BigQuery-Datasets schlägt fehl, weil das Dataset nicht gefunden wurde

Sie senden eine Abfrage an ein verknüpftes BigQuery-Dataset und der Befehl schlägt mit einer Fehlermeldung wie „Dataset nicht gefunden“ fehl.

Versuchen Sie Folgendes, um dieses Problem zu beheben:

  • Prüfen Sie, ob der Pfad zum Dataset-Namen korrekt ist.
  • Führen Sie den folgenden gcloud logging links list-Befehl aus und prüfen Sie, ob in der Antwort Ihr verknüpftes BigQuery-Dataset aufgeführt ist.

    Wenn Ihr verknüpftes BigQuery-Dataset nicht aufgeführt ist, ist es verwaist. Löschen Sie das verknüpfte BigQuery-Dataset, um dieses Problem zu beheben.

    Ein Projekt kann ein verwaistes verknüpftes BigQuery-Dataset haben, wenn Sie IAM-Rollenzuweisungen von einem Dienstkonto widerrufen, das von Google Cloud Observability zum Verwalten von Daten verwendet wird, und dann die Verknüpfung im Log-Bucket löschen. In diesem Fall kann Google Cloud Observability das verknüpfte BigQuery-Dataset nicht löschen.

Die Abfrage-Engine kann nicht auf BigQuery festgelegt werden

Im Menü Einstellungen ist die BigQuery-Option deaktiviert.

Wenn Sie diese Option aktivieren möchten, benötigen Sie ein verknüpftes BigQuery-Dataset für den abgefragten Log-Bucket.

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 Logansicht kein verknüpftes BigQuery-Dataset. Wenn Sie Ihre Abfrage in der BigQuery-Engine ausführen möchten, erstellen Sie ein verknüpftes BigQuery-Dataset in Ihrem Log-Bucket.

Kein Monitoring-Dienstkonto

Sie möchten eine Benachrichtigungsrichtlinie erstellen, um die Ergebnisse einer SQL-Abfrage zu überwachen. Für die Einrichtungsschritte 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 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 diese Aktion dazu führen, dass das Monitoring-Dienstkonto erstellt wird.

So erstellen Sie das Monitoring-Dienstkonto und weisen ihm die für SQL-basierte Benachrichtigungsrichtlinien erforderlichen Berechtigungen zu:

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

In meinen Observability Analytics-Ergebnissen sind doppelte Logeinträge vorhanden

Sie führen eine Abfrage aus, die doppelte Einträge zählt oder meldet. Da der Log-Explorer doppelte Einträge anhand von Logname, Zeitstempel und 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 von Deduplizierung durch wie der Log-Explorer.

Versuchen Sie Folgendes, um doppelte Logeinträge zu beheben:

  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.

    Wenn Sie doppelte Schreibvorgänge beheben möchten, suchen Sie in Ihrer Logging-Integration nach 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.

    Achten Sie darauf, dass Sie Ihr Kontingent nicht überschreiten und dass Ihr Schlüssel zugänglich ist, um diese Fehler zu beheben.

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

    Angenommen, die JSON-Nutzlast enthält fieldA und fieldB, wobei der erste Wert ein String und der zweite ein numerischer Wert ist. Außerdem wird davon ausgegangen, dass die JSON-Nutzlast ein Feld mit dem Label server enthält, 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
      `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;