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 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 di 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 visualizzazione di un bucket di log contiene caratteri punto,
(.)
, assicurati che ciascuno di questi campi sia racchiuso tra virgolette singole inverse,(`)
. Google CloudAd 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 regioneglobal
.
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 posizione non consentita dai criteri 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 Configurare 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:
- Assicurati che la query non contenga errori di sintassi. Puoi salvare solo query valide.
- (Facoltativo) Copia la query negli appunti.
- Ricarica la pagina.
- Se hai copiato la query negli appunti, incollala nel riquadro Query, eseguila e poi salva.
Impossibile creare una vista analitica
Vuoi creare una vista analitica, quindi inserisci ed esegui una query SQL e poi fai clic su
Salva ma l'opzione Salva come vista analitica è disattivata.Per risolvere il problema, 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, vedi Creare ed eseguire query sulle visualizzazioni di 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, vedi Creare ed eseguire query sulle visualizzazioni di Analytics: prima di iniziare.
Assicurati che le viste di Analytics esistano 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:
-
Visualizza i log:
Visualizzatore log (
roles/logging.viewer
) -
Visualizza i log nei bucket di log personalizzati:
Logs View Accessor (
roles/logging.viewAccessor
)
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 va a buon fine e viene visualizzata una condizione di errore simile alla seguente:
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 un criterio dell'organizzazione che limita le regioni utilizzabili. 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.
Il pulsante delle impostazioni del motore di query non è presente
Se il pulsante Impostazioni settings non viene visualizzato accanto al pulsante Esegui query, il tuo progetto Google Cloud non ha slot BigQuery riservati abilitati. Per attivare il pulsante settings Impostazioni, configura gli slot BigQuery riservati per il tuo progetto.
Il pulsante Esegui in BigQuery è disattivato
Se il pulsante Esegui su BigQuery è 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 nella visualizzazione log.
Nessun service account di monitoraggio
Vuoi creare una criterio 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 di monitoraggio è 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 di Monitoring.
Per creare il service account Monitoring e concedergli le autorizzazioni richieste per le policy di avviso basate su SQL:
Crea il service account di monitoraggio. Per saperne di più, vedi Creare e concedere ruoli agli agenti di servizio.
Concedi i seguenti ruoli al service account Monitoring:
- Agente del servizio di monitoraggio (
roles/monitoring.notificationServiceAgent
) sul tuo progetto. - Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) nel set di dati collegato.
- Agente del servizio di monitoraggio (
Errore di autorizzazione negata per l'account di servizio di monitoraggio
Vuoi creare una criterio 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:
- Agente del servizio di monitoraggio (
roles/monitoring.notificationServiceAgent
) sul tuo progetto. - Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) nel set di dati collegato.
Nei risultati di Log Analytics 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 quanto segue:
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.
Se il bucket è configurato per utilizzare le chiavi Cloud Key Management Service, assicurati di rientrare nella quota e che la chiave sia costantemente 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.
Modifica la query per rimuovere le voci di log duplicate.
Ad esempio, supponiamo che il payload JSON contenga
fieldA
efieldB
, il primo è una stringa e il secondo è numerico. Supponiamo inoltre che il payload JSON contenga un campo etichettatoserver
, 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 `TABLE_NAME_OF_LOG_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 `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;