Risolvere i problemi di routing e archiviazione dei log

Questo documento illustra i problemi comuni di routing e di archiviazione e come utilizzare il console Google Cloud per visualizzare e risolvere errori di configurazione risultati imprevisti.

Per informazioni generali sull'utilizzo dei log nelle destinazioni sink, consulta Visualizza i log nelle destinazioni sink.

Risolvere i problemi relativi ai log di routing

Questa sezione descrive come risolvere i problemi comuni relativi al routing dei log.

La destinazione contiene log indesiderati

Si stanno visualizzando i log indirizzati a una destinazione e si determina che contiene log indesiderati.

Per risolvere questa condizione, aggiorna il parametro filtri di esclusione per che instrada i log alla destinazione. I filtri di esclusione ti consentono di escludere dei log selezionati dall'instradamento a una destinazione.

Ad esempio, supponiamo di creare sink aggregato per instradare i log da un'organizzazione a una destinazione. Per escludere i log da una specifica di destinazione del progetto, aggiungi il seguente filtro di esclusione al sink:

logName:projects/PROJECT_ID

Puoi anche escludere i log da più progetti utilizzando l'operatore logico-OR per unire le clausole logName.

Nella destinazione mancano i log

Forse il problema più comune relativo al sink è che i log sembrano non essere presenti una destinazione sink.

In alcuni casi, non viene generato un errore, ma potresti notare che i log sono non sono disponibili quando provi ad accedervi nella tua destinazione. Se sospetti che se il sink non esegue correttamente il routing dei log, controlla le impostazioni basate su log di sistema del sink metrics:

  • exports/byte_count: numero di byte nelle voci di log il cui routing è stato eseguito.
  • exports/log_entry_count: numero di voci di log instradate.
  • exports/error_count: numero di voci di log il cui routing non è riuscito.

Le metriche hanno etichette che registrano i conteggi per nome e destinazione del sink e ti verrà comunicato se il sink ha eseguito correttamente il routing dei dati dei log o in stato di errore. Per maggiori dettagli su come visualizzare le metriche, consulta Visualizza le metriche basate su log.

Se le metriche del sink indicano che le prestazioni non sono quelle previste, ecco alcuni possibili motivi e cosa fare:

Latenza

  • Non sono state ricevute voci di log corrispondenti dalla creazione o dall'aggiornamento nel lavandino; vengono instradate solo le nuove voci di log.

    Prova ad attendere un'ora e controlla di nuovo la destinazione.

  • Le voci di log corrispondenti arrivano in ritardo.

    Potrebbe verificarsi un ritardo prima che tu possa visualizzare i log nella destinazione. I log arrivati in ritardo sono particolarmente comune per i sink che hanno configurato Cloud Storage come destinazioni. Prova ad attendere qualche ora e controlla destinazione.

La visualizzazione dell'ambito/del filtro non è corretta

Errore nel filtro del sink

  • Il filtro del sink non è corretto e non acquisisce i log che ti aspettavi di vedere nella tua destinazione.

    • Modifica il filtro del sink utilizzando il router dei log nella nella console Google Cloud. Per verificare di aver inserito il filtro corretto, Seleziona Anteprima log nel riquadro Modifica sink. Si apre Esplora log in una nuova scheda con il filtro precompilato. Per istruzioni sulla visualizzazione e la gestione dei sink, consulta Gestisci i sink.

Visualizza errori

Per ognuna delle destinazioni sink supportate, Logging fornisce messaggi di errore per i sink non configurati correttamente.

Esistono diversi modi per visualizzare questi errori relativi al sink; questi metodi descritti nelle seguenti sezioni:

  • Visualizza i log degli errori generati per il sink.
  • Ricevi notifiche via email relative agli errori del sink.

Log degli errori

Il metodo consigliato per esaminare nel dettaglio gli errori relativi al sink è quello di visualizza le voci di log degli errori generate dal sink. Per informazioni dettagliate sulla visualizzazione Consulta Visualizzare i log utilizzando Esplora log.

Puoi utilizzare la seguente query nel riquadro dell'editor query nella Esplora log per esaminare i log degli errori del sink. La stessa query funziona l'API Logging e gcloud CLI.

Prima di copiare la query, sostituisci la variabile SINK_NAME con la macro nome del sink di cui stai tentando di risolvere i problemi. Puoi trovare il nome del sink nella pagina Router di log della console Google Cloud.

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"

Ad esempio, se il nome del sink è my-sink-123, la voce di log potrebbe essere simile al seguente:

{
   errorGroups: [
   0: {
   id: "COXu96aNws6BiQE"
   }]
   insertId: "170up6jan"
   labels: {
      activity_type_name: "LoggingSinkConfigErrorV2"
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      error_code: "topic_not_found"
      error_detail: ""
      sink_id: "my-sink-123"
   }
   logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
   receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
   resource: {
   labels: {
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      name: "my-sink-123"
      project_id: "my-project"
   }
   type: "logging_sink"
   }
   severity: "ERROR"
   textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
   timestamp: "2024-07-11T14:41:41.296157014Z"
}

Il campo LogEntry labels e le relative informazioni sulla coppia chiave-valore nidificate ti aiuta a scegliere come target l'origine dell'errore del sink; contiene risorsa, sink interessato e codice di errore. Il campo labels.error_code contiene una breve descrizione dell'errore in modo da indicare quale componente del tuo è necessario riconfigurare il sink.

Per risolvere l'errore, modificare il sink. Ad esempio, puoi modificare il sink utilizzando Pagina Router dei log:

Vai a Router dei log

Notifiche via email

Se hai sottoscritto un abbonamento a un progetto Google Cloud o alla relativa risorsa padre come Contatto tecnico essenziale, riceverai notifiche via email relative all'errore di configurazione del sink. Se non sono presenti Contatti tecnici necessari configurati per una risorsa, poi gli utenti elencati come Il proprietario del progetto IAM roles/owner per la risorsa riceve il .

Il messaggio e-mail contiene le seguenti informazioni:

  • ID risorsa: il nome del progetto Google Cloud o altro Risorsa Google Cloud in cui è stato configurato il sink.
  • Nome sink: il nome del sink che contiene l'errore di configurazione.
  • Destinazione sink: il percorso completo della destinazione di routing del sink; della un esempio, pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
  • Codice di errore: descrizione abbreviata della categoria di errore. ad esempio topic_not_found.
  • Dettagli errore: informazioni dettagliate sull'errore, tra cui e i suggerimenti per risolvere l'errore sottostante.

Per visualizzare e gestire i sink, utilizza la pagina Router dei log:

Vai a Router dei log

Eventuali errori di configurazione del sink che si applicano alla risorsa vengono visualizzati nell'elenco come Cloud Logging sink configuration error. Ogni errore contiene un link a uno degli le voci di log generate dal sink difettoso. Esaminare gli errori sottostanti consulta la sezione Log degli errori.

Tipi di errori del sink

Le seguenti sezioni descrivono ampie categorie di errori correlati ai sink e come puoi risolverli.

Destinazione errata

Se configuri un sink, ma visualizzi un errore di configurazione che indica che la destinazione impossibile trovare quando Logging ha tentato di eseguire il routing dei log. Ecco alcuni possibili motivi:

  • La configurazione del sink contiene un errore di ortografia o un altro errore di formattazione in della destinazione del sink specificata.

    Devi aggiornare la configurazione del sink per specificare correttamente l'attuale destinazione.

  • La destinazione specificata potrebbe essere stata eliminata.

    Puoi modificare la configurazione del sink in modo da usare un'altra o ricrearla con lo stesso nome.

Per risolvere questi tipi di errori, modificare il sink. Ad esempio, puoi modificare il sink utilizzando Pagina Router dei log:

Vai a Router dei log

Il sink avvia il routing dei log quando viene trovata la destinazione e nuovi log che corrispondono al filtro vengono ricevuti da Logging.

Gestione dei problemi dei sink

Se ha disattivato un sink interrompere l'archiviazione dei log in un bucket di log, ma continuare a visualizzare i log con routing. e poi attendere qualche minuto per l'applicazione delle modifiche al sink.

Problemi relativi alle autorizzazioni

Quando un sink tenta di indirizzare una voce di log, ma non dispone dell'appropriata Autorizzazioni IAM per la destinazione del sink, riporta un errore, che puoi visualizzare, e viene saltata la voce di log.

Quando crei un sink, è necessario concedere all'account di servizio del sink appropriata autorizzazioni della destinazione. Se crei il sink nella console Google Cloud nello stesso progetto Google Cloud, la console Google Cloud di solito assegna questi automaticamente le autorizzazioni. Tuttavia, se crei il sink in una zona progetto Google Cloud, oppure mediante gcloud CLI o l'API Logging, allora devi e configurare manualmente le autorizzazioni.

Se vengono visualizzati errori relativi alle autorizzazioni per il sink, aggiungi i necessari autorizzazioni o aggiornare il sink destinazione. Per istruzioni su come aggiornare queste autorizzazioni, vedi Autorizzazioni della destinazione.

Si verifica un leggero ritardo tra la creazione del sink e l'utilizzo della nuova di account di servizio per autorizzare la scrittura nella destinazione. Si avvia il sink log di routing quando le autorizzazioni vengono corrette e nuovi log corrispondenti vengono ricevuti da Logging.

Problemi relativi ai criteri dell'organizzazione

Se stai tentando di eseguire il routing di una voce di log, ma riscontri un criterio dell'organizzazione che impedisce a Logging di scrivere nella destinazione del sink, quindi il sink non riesce a eseguire il routing alla destinazione selezionata e segnala un errore.

Se visualizzi errori relativi ai criteri dell'organizzazione, puoi: seguenti:

  • Aggiorna il criterio dell'organizzazione per la destinazione per rimuovere i vincoli impedire al sink di eseguire il routing delle voci di log; questo presuppone che tu abbia le autorizzazioni appropriate per aggiornare il criterio dell'organizzazione. Per istruzioni, consulta l'articolo Creare e modificare i criteri.

  • Se non riesci ad aggiornare il criterio dell'organizzazione, aggiorna il sink nella Router dei log per utilizzare una destinazione conforme.

    Vai a Router dei log

Il sink avvia il routing dei log quando il criterio dell'organizzazione non blocca più dalla scrittura nella destinazione, mentre i nuovi log corrispondenti al filtro vengono ricevute da Logging.

Problemi relativi alle chiavi di crittografia

Se utilizzi chiavi di crittografia, gestite con Cloud Key Management Service o da te, per criptare i dati nella destinazione del sink, potresti riscontrare errori correlati. Di seguito sono riportati alcuni possibili problemi e alcuni modi per risolverli:

  • La fatturazione non viene abilitata per il progetto Google Cloud che contiene le Chiave Cloud KMS.

    • Anche se il sink è stato creato correttamente con la destinazione corretta, questo messaggio di errore viene visualizzato se non esiste un account di fatturazione valido associati al progetto Google Cloud che contiene la chiave.

    • Assicurati che sia disponibile una password account di fatturazione collegato al progetto Google Cloud che contiene la chiave. Se un account di fatturazione non è collegato a progetto Google Cloud, abilita la fatturazione per quel progetto Google Cloud oppure usano una chiave Cloud KMS contenuta in un progetto Google Cloud che abbia un account di fatturazione valido collegato.

  • Impossibile trovare la chiave Cloud KMS.

    • Il progetto Google Cloud che contiene la chiave Cloud KMS e configurato per criptare i dati, non è stato trovato.

    • Utilizza una chiave Cloud KMS valida di un modello esistente progetto Google Cloud.

  • La posizione della chiave Cloud KMS non corrisponde a quella della destinazione.

    • Se il progetto Google Cloud che contiene la chiave Cloud KMS che si trovano in una regione diversa da quella della destinazione, la crittografia non riesce e il sink non riesce a instradare i dati a quella destinazione.

    • Utilizza una chiave Cloud KMS contenuta in un progetto Google Cloud il cui corrisponde alla destinazione del sink.

  • L'accesso alla chiave di crittografia è negato all'account di servizio del sink.

    • Anche se il sink è stato creato correttamente con autorizzazioni dell'account di servizio corrette, questo errore viene visualizzato se la destinazione del sink utilizza una chiave di crittografia non concede all'account di servizio autorizzazioni sufficienti per criptare o decriptare i dati.

    • Concedi a Cloud KMS Ruolo Autore crittografia/decrittografia CryptoKey per l'account di servizio specificato writerIdentity per la chiave utilizzata nella destinazione. Assicurati inoltre che l'API Cloud KMS sia abilitata.

Problemi relativi alle quote

Quando i sink scrivono i log, vengono applicate quote specifiche della destinazione Progetti Google Cloud in cui sono stati creati i sink. Se le quote vengono esauriti, il sink interrompe il routing dei log alla destinazione.

Ad esempio, quando esegui il routing dei dati a BigQuery, potresti vedere che indica che la quota di inserimento di flussi di dati per tabella è stata superata per a una determinata tabella nel tuo set di dati. In questo caso, anche il sink potrebbe instradare gli errori troppe voci di log troppo rapidamente. Lo stesso concetto si applica agli altri modelli destinazioni sink, ad esempio argomenti Pub/Sub.

Per risolvere i problemi di esaurimento della quota, riduci la quantità di dati di log instradati aggiornando il filtro del sink in modo che corrisponda a un numero inferiore di voci di log. Potresti usare lo Funzione sample in il filtro per selezionare una frazione del numero totale di voci di log.

Il sink inizia il routing dei log alla destinazione dopo che hai aggiornato il sink in modo da trovare una corrispondenza con meno voci di log o quando le quote vengono aggiornate.

Per maggiori dettagli sui limiti che potrebbero essere applicati quando esegui il routing dei log, esamina il le informazioni sulla quota della destinazione appropriata:

Oltre ai tipi di errori del sink generici, di seguito vengono riportati i i tipi di errori più comuni specifici per la destinazione e come correggerli.

Routing degli errori a Cloud Storage

Di seguito sono riportati gli errori più comuni durante il routing dei log a Cloud Storage:

  • Voci di log in arrivo:

    • Le voci di log instradate vengono salvate nei bucket Cloud Storage ogni ora batch. L'operazione potrebbe richiedere da 2 a 3 ore prima dell'inizio delle prime voci per essere mostrati.

    • shard del file di log instradati con il suffisso An ("Aggiungi") contiene le voci di log arrivate in ritardo. Se lo Cloud Storage subisce un'interruzione, Cloud Logging memorizza i dati nel buffer fino al termine dell'interruzione.

  • Impossibile concedere le autorizzazioni corrette alla destinazione:

    • Anche se il sink è stato creato correttamente con autorizzazioni dell'account di servizio corrette, questo errore viene visualizzato se il modello di controllo dell'accesso Il bucket Cloud Storage è stato impostato su un accesso uniforme quando è stato creato un bucket.

    • Per i bucket Cloud Storage esistenti, puoi modificare l'accesso di controllo per i primi 90 giorni dopo la creazione del bucket utilizzando Scheda Autorizzazioni. Per i nuovi bucket, seleziona l'accesso Granulare durante la creazione del bucket. Per maggiori dettagli, vedi Creazione di bucket Cloud Storage.

Errori di routing a BigQuery

Di seguito sono riportati gli errori più comuni durante il routing dei log a BigQuery:

  • Schema della tabella non valido:

    • Log trasmessi in flussi alla tabella nel tuo set di dati BigQuery non corrispondono allo schema della tabella corrente. I problemi più comuni includono il tentativo di di routing delle voci di log con tipi di dati diversi, determinando schema non corrispondente. Ad esempio: uno dei campi della voce di log è un numero intero, mentre nello schema ha un tipo di stringa.

    • Assicurati che le voci di log corrispondano allo schema della tabella. Dopo la correzione l'origine dell'errore, puoi rinominare la tabella corrente e Logging crea di nuovo la tabella.

    • BigQuery supporta il caricamento dati nidificati nelle relative tabelle. Tuttavia, quando carichi i dati da Logging, il numero massimo il limite di profondità nidificato per una colonna è 13 livelli.

    Quando BigQuery identifica una mancata corrispondenza dello schema, all'interno del set di dati corrispondente per archiviare le informazioni sull'errore. Il tipo di una tabella determina il nome della tabella. Per le tabelle con frazioni di date, il formato di denominazione è export_errors_YYYYMMDD. Per le tabelle partizionate, il formato di denominazione è export_errors. Per informazioni sullo schema delle tabelle degli errori e su come prevenire future errate corrispondenze dei tipi di campo, consulta Mancate corrispondenze nello schema.

  • Le voci di log non rientrano nei limiti di tempo consentiti:

    • I flussi di log trasmessi alla tabella BigQuery partizionata sono esterni entro i limiti di tempo consentiti. BigQuery non accetta log troppo lontani nel passato o nel futuro.

    • Puoi aggiornare il sink per instradare i log a Cloud Storage e utilizza un job di caricamento BigQuery. Consulta le Documentazione di BigQuery per ulteriori istruzioni.

  • Il set di dati non consente all'account di servizio associato al sink di log di scrivici:

    • Anche se il sink è stato creato correttamente con autorizzazioni dell'account di servizio corrette, questo errore viene visualizzato un messaggio se non esiste un account di fatturazione valido associato a il progetto Google Cloud che contiene la destinazione del sink.

    • Assicurati che sia presente account di fatturazione collegato al tuo progetto Google Cloud. Se un account di fatturazione non è collegato alla destinazione del sink progetto Google Cloud, abilita la fatturazione per quel progetto Google Cloud oppure aggiornare la destinazione del sink in modo che si trovi in Progetto Google Cloud a cui è collegato un account di fatturazione valido.

  • Il set di dati contiene voci di log duplicate:

    • Possono verificarsi voci di log duplicate in caso di errori nei flussi di log in BigQuery, anche a causa di nuovi tentativi o configurazioni errate. Cloud Logging deduplica le voci di log con gli stessi valori timestamp e insertId al momento della query. BigQuery non elimina voci di log duplicate.

    • Per ignorare le voci di log duplicate in BigQuery, includi il comando SELECT DISTINCT nella tua query. Ad esempio:

    SELECT DISTINCT insertId, timestamp FROM TABLE_NAME
    

Errori di routing ai bucket Cloud Logging

Potresti riscontrare una situazione in cui puoi visualizzare i log in Esplora log esclusi con il sink. Puoi comunque visualizzare questi log se: le seguenti condizioni sono vere:

  • Stai eseguendo la query nel progetto Google Cloud che ha generato logaritmi.

    Per risolvere questo problema, assicurati di eseguire la query nel formato progetto Google Cloud.

  • I log esclusi sono stati inviati a più bucket di log; stai vedendo un dello stesso log che intendevi escludere.

    Per risolvere il problema, controlla i sink nella pagina Router dei log per assicurarti di non includano i log in altri sink filtri corretti.

  • Hai accesso alle viste nel bucket di log in cui sono stati inviati i log. In questo caso, puoi visualizzare i log per impostazione predefinita.

    Per evitare di visualizzare questi log in Esplora log, puoi perfezionare l'ambito della ricerca al progetto o al bucket Google Cloud di origine.

Risolvere i problemi di archiviazione dei log

Perché non posso eliminare questo bucket?

Se stai cercando di eliminare un bucket, segui questi passaggi:

  • Assicurati di disporre delle autorizzazioni corrette per eliminare il bucket. Per delle autorizzazioni di cui hai bisogno, vedi Controllo dell'accesso con IAM.

  • Determina se il bucket è bloccato da elenco degli attributi del bucket. Se il bucket è bloccato, controlla lo stato periodo di conservazione. Non puoi eliminare un bucket bloccato finché tutti i log nel bucket hanno soddisfatto il periodo di conservazione del bucket.

  • Verifica che il bucket di log non abbia un set di dati BigQuery collegato. Non puoi eliminare un bucket di log con un set di dati collegato.

    Il seguente errore viene mostrato in risposta a un comando delete su una bucket di log con un set di dati collegato:

    FAILED_PRECONDITION: This bucket is used for advanced analytics and has an active link. The link must be deleted first before deleting the bucket
    

    Per elencare i collegamenti associati a un bucket di log, esegui il [gcloud logging links list]Comando [link-list] o eseguire projects.locations.buckets.links.list API.

Quali account di servizio eseguono il routing dei log al mio bucket?

a determinare se alcuni account di servizio dispongono di autorizzazioni IAM per: eseguire il routing dei log al bucket, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai a IAM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e Console di amministrazione.

  2. Nella scheda Autorizzazioni, visualizza la scheda per Ruoli. Viene visualizzata una tabella contenente i ruoli e le entità IAM associati progetto Google Cloud.

  3. Nella sezione Filtro della tabella casella di testo, inserisci Writer bucket di log.

    Tutte le entità con il ruolo Writer bucket di log sono visualizzate. Se un'entità è un account di servizio, il suo ID contiene la stringa gserviceaccount.com.

  4. (Facoltativo) Se vuoi rimuovere un account di servizio dalla possibilità di eseguire il routing log al tuo progetto Google Cloud, seleziona casella di controllo per l'account di servizio, quindi fai clic su Rimuovi.

Perché vedo i log di un progetto Google Cloud anche se li ho esclusi dal sink _Default?

È possibile che tu stia visualizzando i log in un bucket di log in una un progetto Google Cloud centralizzato, aggrega i log di tutta l'organizzazione.

Se utilizzi Esplora log per accedere a questi log e visualizzare quelli che escluso dal sink _Default, la tua visualizzazione potrebbe essere limitata all'ambito a livello di progetto Google Cloud.

Per risolvere il problema, seleziona Ambito in base all'archiviazione nel Riquadro Perfeziona ambito e poi seleziona il bucket _Default nel tuo progetto Google Cloud. Non dovresti più visualizzare i log esclusi.