Risolvere i problemi di configurazione di Analisi dei log

Questo documento mostra come risolvere gli errori che potrebbero verificarsi durante l'utilizzo della pagina Log Analytics della console Google Cloud .

Messaggi di errore

Questa sezione descrive i messaggi di errore che potresti visualizzare e come risolvere le condizioni di errore corrispondenti.

Messaggio di errore No completion signal within allotted timeframe

Inserisci una query SQL e seleziona Esegui query. La query non viene completata e viene visualizzato il seguente messaggio di errore:

The query failed to execute and return results due to error: No completion signal within allotted timeframe.

Per risolvere questo errore, esegui una delle seguenti operazioni:

  • Riduci l'intervallo su cui vengono eseguite le query sui log e riprova. Ad esempio, se un intervallo di query è di 14 giorni, riducilo a 7 giorni e poi esegui la query.

  • Crea un set di dati BigQuery collegato e poi esegui la query dall'interfaccia BigQuery. L'interfaccia BigQuery supporta query che richiedono un tempo di esecuzione più lungo rispetto all'interfaccia Cloud Logging. Per saperne di più, consulta Eseguire query su un set di dati BigQuery collegato.

Messaggio di errore relativo alle query sui bucket con chiavi CMEK distinte

Inserisci una query SQL che interroga più bucket di log e seleziona Esegui query. La query non viene completata e viene visualizzato il seguente messaggio di errore:

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

Per risolvere il problema, esegui una delle seguenti operazioni:

  • Configura i bucket dei log in modo che utilizzino la stessa chiave di Cloud Key Management Service (Cloud KMS).
  • Quando i bucket dei log si trovano nella stessa località, puoi configurare una cartella o un'organizzazione che sia una risorsa padre per i bucket dei log con una chiave Cloud KMS predefinita. La chiave predefinita del progetto deve trovarsi nella stessa posizione dei bucket log. Con questa configurazione, la chiave predefinita del genitore cripta tutti i dati temporanei generati dalla query Log Analytics. Per ulteriori informazioni, vedi Limitazioni di Log Analytics.

La clausola FROM deve contenere esattamente un messaggio di errore della visualizzazione

Inserisci una query SQL nel riquadro delle query della pagina Analisi dei log nella console Google Cloud , ma il parser SQL visualizza il seguente errore:

FROM clause must contain exactly one log view

L'errore precedente viene segnalato quando la tabella specificata nell'istruzione FROM non può essere risolta in una visualizzazione log specifica.

Per risolvere questo errore, assicurati che il nome della tabella abbia la sintassi corretta:

  • Assicurati che il nome della tabella segua la sintassi richiesta dallo schema di denominazione di Log Analytics. BigQuery e Log Analytics hanno requisiti diversi per il nome della tabella. Puoi trovare la sintassi richiesta per il nome della tabella visualizzando la query predefinita.

  • Se l'ID progetto, la regione, l'ID bucket o l'ID vista di un bucket di log contiene punti, (.), assicurati che ciascuno di questi campi sia racchiuso tra virgolette singole inverse, (`). Google Cloud

    Ad esempio, se l'ID progetto Google Cloud è example.com:bluebird, per interrogare la visualizzazione _AllLogs del bucket di log _Default, utilizza la seguente sintassi per specificare la tabella:

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

    La query precedente presuppone che il bucket _Default si trovi nella regione global.

Impossibile salvare una query

Vuoi salvare la query corrente, quindi la esegui e poi fai clic su Salva, ma l'opzione Salva query è disattivata o non riesci a completare i passaggi della finestra di dialogo.

Quando l'opzione Salva query è disattivata, le impostazioni predefinite delle risorse della tua organizzazione o cartella definiscono una località non consentita dalla policy dell'organizzazione. Per risolvere questo errore, chiedi all'amministratore della tua organizzazione di definire una località nelle impostazioni predefinite delle risorse che corrisponda a una località consentita dai criteri dell'organizzazione. Per ulteriori informazioni, consulta la pagina Configura le impostazioni predefinite per organizzazioni e cartelle.

Se l'opzione Salva query è abilitata ma non riesci a completare la finestra di dialogo e salvare la query, procedi nel seguente modo:

  1. Assicurati che la query non contenga errori di sintassi. Puoi salvare solo query valide.
  2. (Facoltativo) Copia la query negli appunti.
  3. Ricarica la pagina.
  4. Se hai copiato la query negli appunti, incollala nel riquadro Query, esegui la query e poi esegui l'operazione di salvataggio.

Impossibile creare una vista analitica

Vuoi creare una vista Analytics, quindi inserisci ed esegui una query SQL e poi fai clic su Salva ma l'opzione Salva come vista Analytics è disattivata.

Per risolvere questa situazione, assicurati che i tuoi ruoli IAM includano le seguenti autorizzazioni:

  • observability.analyticsViews.{get, list, create, update, delete}

Queste autorizzazioni non sono incluse in alcun ruolo Cloud Logging predefinito. Per informazioni sui ruoli richiesti, consulta Creare ed eseguire query sulle viste Analytics: prima di iniziare.

Impossibile eseguire query su una vista Analytics

Vuoi eseguire query sulla visualizzazione Analytics, ma il riquadro Visualizzazioni nella pagina Analisi dei log non mostra alcuna visualizzazione Analytics.

Per risolvere questo errore, prova quanto segue:

  • Assicurati che i tuoi ruoli IAM includano le seguenti autorizzazioni:

    • observability.analyticsViews.{get, list}

    Queste autorizzazioni non sono incluse in alcun ruolo Cloud Logging predefinito. Per informazioni sui ruoli richiesti, consulta Creare ed eseguire query sulle viste Analytics: prima di iniziare.

  • Assicurati che esistano viste Analytics nel tuo progetto Google Cloud .

Accesso negato alla pagina Analisi dei log

Apri la pagina Analisi dei log nella console Google Cloud e viene visualizzato un messaggio di errore di autorizzazione negata.

Per ottenere le autorizzazioni necessarie per caricare la pagina Log Analytics, eseguire query e visualizzare i log, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o i ruoli predefiniti di Logging.

Le autorizzazioni necessarie per visualizzare le voci di log ed eseguire query nella pagina Analisi dei log sono le stesse necessarie per visualizzare i log nella pagina Esplora log. Per informazioni su ruoli aggiuntivi necessari per eseguire query sulle visualizzazioni nei bucket definiti dall'utente o per eseguire query sulla visualizzazione _AllLogs del bucket di log _Default, consulta Ruoli Cloud Logging.

L'upgrade del bucket di log per utilizzare Analisi dei log non va a buon fine

Crea un bucket di log e seleziona l'opzione per utilizzare Analisi dei log oppure esegui l'upgrade di un bucket di log esistente per utilizzare Analisi dei log. L'upgrade non riesce con una condizione di errore simile a:

Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID  with location global.

Il messaggio di errore precedente indica che la tua organizzazione ha configurato una policy dell'organizzazione che limita le regioni che possono essere utilizzate. I bucket di log idonei per l'upgrade per l'utilizzo di Analisi dei log devono utilizzare la regione global. Se puoi rimuovere il criterio dell'organizzazione che limita l'utilizzo della regione global, puoi eseguire l'upgrade del bucket dei log. In caso contrario, non puoi eseguire l'upgrade dei bucket di log.

La creazione di un set di dati BigQuery collegato non va a buon fine

Modifichi un bucket di log per creare un set di dati BigQuery collegato oppure crei un nuovo bucket di log e selezioni l'opzione per creare un set di dati collegato, ma il set di dati collegato non viene creato.

Per risolvere questo errore, chiedi all'amministratore di sistema del progetto Google Cloud di concederti un ruolo IAM che includa la seguente autorizzazione:

  • logging.links.create

L'autorizzazione precedente è inclusa nei ruoli Amministratore logging (roles/logging.admin) e Writer configurazione log (roles/logging.configWriter).

Per informazioni su ruoli e autorizzazioni, consulta Controllo dell'accesso con IAM.

L'eliminazione di un set di dati BigQuery collegato non va a buon fine

Non vuoi più il set di dati collegato, ma l'opzione per eliminarlo è disattivata.

Per risolvere questo errore, chiedi all'amministratore di sistema del progetto Google Cloud di concederti un ruolo IAM che includa la seguente autorizzazione:

  • logging.links.delete

L'autorizzazione precedente è inclusa nei ruoli Amministratore logging (roles/logging.admin) e Writer configurazione log (roles/logging.configWriter).

Questa autorizzazione ti consente di eliminare il set di dati collegato dalla pagina Archiviazione log della console Google Cloud . Per saperne di più su ruoli e autorizzazioni, consulta Controllo dell'accesso con IAM.

Log Analytics mostra un avviso relativo ai metadati sensibili

La pagina Log Analytics mostra un messaggio simile al seguente:

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

Il messaggio di avviso indica che la query supera i limiti di proprietà e ti offre l'opportunità di verificarla prima dell'esecuzione. I limiti di proprietà sono determinati da diversi fattori, uno dei quali è la gerarchia delle risorse utilizzate dalla query.

Non puoi impedire la visualizzazione di questi tipi di avvisi.

Se nella pagina Log Analytics viene visualizzata una finestra di dialogo di avviso, puoi procedere in uno dei seguenti modi:

  • Se sai che la query è sicura da eseguire e vuoi visualizzare i risultati, fai clic su Conferma ed esegui.

  • Analizza la query e, se necessario, ignorala. Ad esempio, potresti fare quanto segue:

    1. Controlla la query. Durante l'ispezione, considera i dati sottoposti a query, le dimensioni potenziali del set di dati sottoposto a query e il motore di query. Le query eseguite sul servizio BigQuery potrebbero comportare addebiti.
    2. Se ti è stato inviato un link alla pagina Log Analytics, verifica che il mittente sia una fonte attendibile.

Google Cloud offre alcune funzionalità che possono contribuire a impedire l'esfiltrazione di dati tramite phishing, attacchi interni o entità esterne. Per scoprire di più, consulta Sicurezza dei dati con Log Analytics.

Impossibile impostare il motore di query su BigQuery

L'opzione BigQuery è disattivata nel menu Impostazioni di .

Per abilitare questa opzione:

  1. Abilita l'API BigQuery Reservations.
  2. Configura gli slot BigQuery riservati per il tuo progetto.
  3. Assicurati di avere un set di dati BigQuery collegato nel bucket di log su cui viene eseguita la query.

Il pulsante Esegui in BigQuery è disattivato

Se il pulsante Esegui su BigQuery viene visualizzato ma è disattivato, significa che una visualizzazione log a cui fa riferimento la query non ha un set di dati collegato. Per eseguire la query sulle prenotazioni di slot BigQuery, crea un set di dati BigQuery collegato nel bucket di log.

Nessun service account di monitoraggio

Vuoi creare una policy di avviso per monitorare i risultati di una query SQL. I passaggi di configurazione richiedono la concessione di ruoli IAM al service account Monitoring, ma questo account non esiste.

Il service account Monitoring è chiamato agente di servizio perché viene creato e gestito da Google Cloud. L'account viene creato automaticamente quando configuri una risorsa o un servizio che lo richiede. Ad esempio, se crei un canale di notifica Pub/Sub, questa azione potrebbe causare la creazione del service account Monitoring.

Per creare il service account Monitoring e concedergli le autorizzazioni richieste per le policy di avviso basate su SQL:

  1. Crea il service account di monitoraggio. Per saperne di più, consulta Creare e concedere ruoli agli agenti di servizio.

  2. Concedi i seguenti ruoli al service account di monitoraggio:

Errore di autorizzazione negata per il service account di monitoraggio

Vuoi creare una policy di avviso per monitorare i risultati di una query SQL. Tuttavia, visualizzi un errore PermissionDenied con un messaggio che inizia con Error authenticating service account.

Per risolvere questo errore, concedi i seguenti ruoli al service account Monitoring:

Nei risultati di Analisi dei log sono presenti voci di log duplicate

Esegui una query che conta o segnala le voci duplicate. Poiché Esplora log rimuove le voci duplicate in base al nome del log, al timestamp e all'ID inserimento, ti aspetti che Analisi dei log deduplichi le voci di log prima dell'esecuzione di una query.

Log Analytics non esegue lo stesso tipo di deduplicazione eseguito da Esplora log.

Per risolvere il problema delle voci di log duplicate, prova a svolgere i seguenti passaggi:

  1. Determina se le voci di log duplicate hanno valori di timestamp di ricezione diversi. Quando i timestamp sono diversi, significa che gli stessi dati sono stati scritti più volte in Logging.

    Per risolvere i problemi di scrittura duplicata, esamina l'integrazione del logging per individuare messaggi di errore o configurazioni errate.

  2. Se il bucket è configurato per utilizzare le chiavi Cloud Key Management Service, assicurati di rispettare la quota e che la chiave sia sempre accessibile. Il superamento della quota o la perdita dell'accesso alle chiavi può comportare voci di log duplicate.

    Per risolvere questi errori, assicurati di non superare la quota e che la chiave sia accessibile.

  3. Modifica la query per rimuovere le voci di log duplicate.

    Ad esempio, supponiamo che il payload JSON contenga fieldA e fieldB, il primo è una stringa e il secondo è numerico. Supponiamo inoltre che il payload JSON contenga un campo etichettato server, che contiene una stringa. Poi, considera la seguente query:

    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;
    

    Puoi modificare la query per rimuovere le voci di log duplicate, in cui vengono esaminati il nome del log, il timestamp e l'ID inserimento per determinare se una voce di log è un duplicato:

    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;