Se riscontri problemi durante il routing o l'archiviazione delle voci di log, puoi utilizzare la consoleGoogle Cloud per diagnosticare errori di configurazione, esaminare i messaggi di errore e risolvere i problemi relativi ai log mancanti.
Per informazioni sulla visualizzazione dei dati di log dopo che hanno raggiunto una destinazione, consulta Visualizza i log nelle destinazioni sink.
Risolvi i problemi di routing dei log
Questa sezione descrive come risolvere i problemi comuni durante il routing delle voci di log.
La creazione di un sink non riesce con un errore di servizio sconosciuto
Provi a creare un sink di log, ma il comando non riesce e viene visualizzato un errore INVALID_ARGUMENT (HTTP 400). Il messaggio di errore include quanto segue:
Sink.destination with unknown service name: [SERVICE_DOMAIN]. Supported services are bigquery.googleapis.com,pubsub.googleapis.com,storage.googleapis.com,logging.googleapis.com
Per risolvere questo errore, utilizza l'endpoint globale per uno dei servizi supportati. Una destinazione del sink di log non può specificare un endpoint di servizio regionale (REP), come pubsub.LOCATION.rep.googleapis.com.
Il messaggio di errore di configurazione del sink indica che una regione dell'argomento non è consentita
Si verifica una delle seguenti condizioni:
Ricevi un'email con l'oggetto
[ACTION REQUIRED] Cloud Logging sink configuration error in [PROJECT_ID]e il codice di erroretopic_region_not_allowed. L'email include un messaggio simile al seguente:La policy di archiviazione dei messaggi dell'argomento richiede l'applicazione in transito, ma la richiesta di pubblicazione è stata ricevuta da un server Pub/Sub in una regione non consentita. Pubblica tramite un endpoint Cloud Logging regionale corrispondente a una regione consentita o aggiorna la policy di archiviazione dei messaggi dell'argomento.
Noti voci di log con un livello di gravità
ERROR, un codice di errore"topic_region_not_allowed"e un payload di testo simile al seguente:Cloud Logging sink configuration error in [PROJECT_ID], sink [SINK_NAME]: topic_region_not_allowed ()
Questi messaggi indicano che la destinazione del sink è un argomento Pub/Sub che applica limitazioni in transito e che Logging ha indirizzato le voci di log da una regione non consentita dalla policy dell'argomento. Le limitazioni in transito possono essere configurate nella policy di archiviazione dei messaggi di un singolo argomento o applicate a livello di organizzazione utilizzando il vincolo della policy dell'organizzazione constraints/pubsub.enforceInTransitRegions.
Per risolvere questi errori, esegui una delle seguenti operazioni:
- Aggiorna la policy di archiviazione dei messaggi dell'argomento Pub/Sub di destinazione per disattivare l'applicazione in transito o espandere le regioni di persistenza consentite.
- Se le limitazioni in transito sono applicate da una policy dell'organizzazione, aggiorna la policy dell'organizzazione o richiedi un'esenzione per il progetto.
- Aggiorna il sink per instradare le voci di log a una destinazione diversa.
La destinazione contiene voci di log indesiderate
Stai visualizzando le voci di log indirizzate a una destinazione e stabilisci che la destinazione contiene voci di log indesiderate.
Per risolvere questa condizione, aggiorna i filtri di esclusione per i sink che indirizzano le voci di log alla destinazione. I filtri di esclusione ti consentono di escludere le voci di log selezionate dal routing verso una destinazione.
Ad esempio, supponiamo che tu crei un sink aggregato per instradare le voci di log di un'organizzazione verso una destinazione. Per escludere le voci di log di un progetto specifico dal routing alla destinazione, aggiungi il seguente filtro di esclusione al sink:
logName:projects/PROJECT_ID
Puoi anche escludere le voci di log da più progetti utilizzando l'operatore OR logico per unire le clausole logName.
Nella destinazione mancano voci di log
Forse il problema più comune relativo ai sink è che le voci di log sembrano mancare nella destinazione di un sink.
In alcuni casi, non viene generato un errore, ma potresti notare che le voci di log non sono disponibili quando provi ad accedervi nella destinazione. Se sospetti che il sink non indirizzi correttamente le voci di log, controlla le metriche di sistema basate su log del sink:
exports/byte_count: Numero di byte nelle voci di log che sono state instradate.exports/log_entry_count: il numero di voci di log che sono state instradate.exports/error_count: numero di voci di log che non è stato possibile instradare.
Le metriche hanno etichette che registrano i conteggi in base al nome del sink e al nome della destinazione e ti consentono di sapere se il sink sta indirizzando correttamente le voci di log o se non riesce.
Se le metriche del sink indicano che il sink non funziona come previsto, ecco alcuni possibili motivi e cosa fare:
Latenza
Non sono state ricevute voci di log corrispondenti da quando hai creato o aggiornato il sink; vengono indirizzate 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 le voci di log nella destinazione. Prova ad attendere qualche ora e controlla di nuovo la destinazione.
Ambito/filtro di visualizzazione non corretto
L'ambito che stai utilizzando per visualizzare le voci di log archiviate in un bucket di log non è corretto.
Limita la ricerca a una o più visualizzazioni log come segue:
Se utilizzi Esplora log, utilizza il pulsante Perfeziona ambito.
Se utilizzi gcloud CLI, utilizza il comando
gcloud logging reade aggiungi un flag--view=AllLogs.
L'intervallo di tempo che utilizzi per selezionare e visualizzare i dati nella destinazione del sink è troppo ristretto.
Prova ad ampliare l'intervallo di tempo che utilizzi quando selezioni i dati nella destinazione del sink.
Errore nel filtro del sink
Il filtro del sink non è corretto e non acquisisce le voci di log che ti aspettavi di vedere nella destinazione.
Modifica il filtro del sink utilizzando il Router dei log nella console Google Cloud . Per verificare di aver inserito il filtro corretto, seleziona Anteprima dei log nel riquadro Modifica sink. In questo modo, Esplora log si apre in una nuova scheda con il filtro precompilato. Per istruzioni su come visualizzare e gestire i sink, consulta Gestisci i sink.
Visualizza errori
Per ciascuna delle destinazioni sink supportate, Logging fornisce messaggi di errore per i sink configurati in modo errato.
Esistono diversi modi per visualizzare questi errori relativi ai sink, descritti nelle sezioni seguenti:
- Visualizza i log degli errori generati per il sink.
Ricevi notifiche di errore del sink via email.
Il mittente di questa email è
logging-noreply@google.com. La riga dell'oggetto è simile a[ACTION REQUIRED] Cloud Logging sink configuration error.
Log degli errori
Il metodo consigliato per esaminare in dettaglio gli errori relativi al sink è visualizzare le voci di log generate dal sink. Per informazioni dettagliate sulla visualizzazione delle voci di log, consulta Visualizza i log utilizzando Esplora log.
Puoi utilizzare la seguente query nel riquadro dell'editor di query in Esplora log per esaminare i log degli errori del sink. La stessa query funziona nell'API Logging e in gcloud CLI.
Prima di copiare la query, sostituisci la variabile SINK_NAME con il nome del sink di cui stai tentando di risolvere i problemi. Puoi trovare il nome del sink nella pagina Router dei 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 alla 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 coppia chiave-valore nidificate ti aiutano a identificare l'origine dell'errore del sink. Contiene la risorsa interessata, il sink interessato e il codice di errore. Il campo labels.error_code contiene una descrizione abbreviata dell'errore, che ti consente di sapere quale componente del sink deve essere riconfigurato.
Per risolvere questo errore, modifica il sink. Ad esempio, puoi modificare il sink utilizzando la pagina Router dei log:
Notifiche via email
Contatti necessari invia notifiche via email relative agli errori di configurazione del sink ai contatti assegnati alla categoria di notifica Tecnica per un progetto Google Cloud o la relativa risorsa principale.
Se la risorsa non ha un contatto configurato per le notifiche tecniche,
gli utenti elencati come Project Owner IAM roles/owner per la
risorsa ricevono la notifica via email.
Per ogni combinazione di nome del sink di log ed errore, il sistema invia una notifica al giorno.
L'email contiene le seguenti informazioni:
- ID risorsa: il nome del progetto Google Cloud o di un'altra risorsaGoogle 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, ad 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, inclusi i consigli per la risoluzione dei problemi relativi all'errore sottostante.
Il mittente di questa email è logging-noreply@google.com.
L'oggetto è simile a: Subject: [ACTION REQUIRED] Cloud Logging sink configuration error in my-project
Per visualizzare e gestire i sink, utilizza la pagina Router dei log:
Gli 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 una delle voci di log generate dal sink difettoso. Per esaminare in dettaglio gli errori sottostanti, consulta la sezione Log degli errori.
Destinazione sink errata
Se configuri un sink, ma poi visualizzi un errore di configurazione che indica che la destinazione non è stata trovata quando Logging ha tentato di instradare le voci di log, ecco alcuni possibili motivi:
La configurazione del sink contiene un errore di ortografia o un altro errore di formattazione nella destinazione del sink specificata.
Devi aggiornare la configurazione del sink per specificare correttamente la destinazione esistente.
La destinazione specificata potrebbe essere stata eliminata.
Puoi modificare la configurazione del sink in modo da utilizzare una destinazione esistente diversa o ricreare la destinazione con lo stesso nome.
Per risolvere questi tipi di errori, modifica il sink. Ad esempio, puoi modificare il sink utilizzando la pagina Router dei log:
Il sink inizia a instradare le voci di log quando viene trovata la destinazione e Logging riceve nuove voci di log corrispondenti al filtro.
Problemi relativi ai sink disabilitati
Se hai disattivato un sink per interrompere l'archiviazione delle voci di log in un bucket di log, ma vedi ancora il routing delle voci di log, attendi qualche minuto per l'applicazione delle modifiche al sink.
Problemi di autorizzazione con i sink
Quando un sink tenta di instradare una voce di log, ma non dispone delle autorizzazioni IAM appropriate per la destinazione del sink, il sink segnala un errore, che puoi visualizzare, e salta la voce di log.
Quando crei un sink, al account di servizio del sink devono essere concesse le autorizzazioni di destinazione appropriate. Se crei il sink nella console Google Cloud nello stesso progettoGoogle Cloud , la console Google Cloud in genere assegna queste autorizzazioni automaticamente. Tuttavia, se crei il sink in un progettoGoogle Cloud diverso o utilizzando gcloud CLI o l'API Logging, devi configurare le autorizzazioni manualmente.
Se visualizzi errori relativi alle autorizzazioni per il sink, aggiungi le autorizzazioni necessarie o aggiorna il sink in modo che utilizzi una destinazione diversa. Per istruzioni su come aggiornare queste autorizzazioni, consulta Autorizzazioni di destinazione.
C'è un leggero ritardo tra la creazione del sink e l'utilizzo del nuovo account di servizio del sink per autorizzare la scrittura nella destinazione. Il sink inizia a instradare le voci di log quando le autorizzazioni vengono corrette e Logging riceve nuove voci di log che corrispondono al filtro.
Problemi relativi alle policy dell'organizzazione con i sink
Se provi a instradare una voce di log, ma incontri una policy dell'organizzazione che impedisce a Logging di scrivere nella destinazione del sink, il sink non può eseguire il routing alla destinazione selezionata e segnala un errore.
Se visualizzi errori relativi alle policy dell'organizzazione, puoi procedere come segue:
Aggiorna la policy dell'organizzazione per la destinazione in modo da rimuovere i vincoli che impediscono al sink di instradare le voci di log. Ciò presuppone che tu disponga delle autorizzazioni appropriate per aggiornare la policy dell'organizzazione.
Potresti esaminare se esiste una limitazione della località delle risorse (
constraints/gcp.resourceLocations). Questo vincolo determina le località in cui è possibile archiviare i dati. Inoltre, alcuni servizi supportano vincoli che potrebbero influire su un sink di log. Ad esempio, esistono diverse limitazioni che potrebbero essere applicate quando viene selezionata una destinazione Pub/Sub. Per un elenco dei possibili vincoli, consulta Vincoli delle policy dell'organizzazione.Per le istruzioni, consulta la pagina sulla creazione e modifica delle policy.
Se non puoi aggiornare la policy dell'organizzazione, aggiorna il sink nella pagina Router dei log in modo da utilizzare una destinazione conforme.
Il sink inizia a instradare le voci di log quando la policy dell'organizzazione non impedisce più al sink di scrivere nella destinazione e Logging riceve nuove voci di log che corrispondono al filtro.
Problemi relativi alle chiavi di crittografia con i sink
Se utilizzi chiavi di crittografia, gestite con Cloud Key Management Service o da te, per criptare i dati nella destinazione del sink, potresti visualizzare errori correlati. Ecco alcuni possibili problemi e i modi per risolverli:
Impossibile trovare la chiave Cloud KMS.
Il progetto Google Cloud che contiene la chiave Cloud KMS configurata per criptare i dati non è stato trovato.
Utilizza una chiave Cloud KMS valida di un progettoGoogle Cloud esistente.
La località della chiave Cloud KMS non corrisponde a quella della destinazione.
Se il progetto Google Cloud che contiene la chiave Cloud KMS si trova in una regione diversa da quella della destinazione, la crittografia non va a buon fine e il sink non può instradare i dati a quella destinazione.
Utilizza una chiave Cloud KMS contenuta in un progetto Google Cloud la cui regione corrisponde alla destinazione del sink.
L'accesso alla chiave di crittografia è negato al account di servizio del sink.
Anche se il sink è stato creato correttamente con le autorizzazioni dell'account di servizio corrette, questo messaggio di errore viene visualizzato se la destinazione del sink utilizza una chiave di crittografia che non concede all'account di servizio autorizzazioni sufficienti per criptare o decriptare i dati.
Concedi il ruolo Cloud KMS CryptoKey Encrypter/Decrypter per l'account di servizio specificato nel campo
writerIdentitydel sink per la chiave utilizzata nella destinazione. Verifica anche che l'API Cloud KMS sia abilitata.
Problemi relativi alle quote con i sink
Quando i sink scrivono voci di log, si applicano le quote di esportazione e di destinazione. A seconda della destinazione, le quote vengono applicate alla risorsa in cui è stato creato il sink, ad esempio per Pub/Sub, o alla destinazione stessa, ad esempio per BigQuery. Se la quota viene esaurita, un sink interrompe il routing delle voci di log verso la destinazione.
- I sink che instradano le voci di log a un argomento Pub/Sub sono limitati a 60 GB/min. Se il volume delle voci di log supera la quota di frequenza di esportazione, viene scritta una voce di log con un codice di errore
topic_over_quota.
Le quote si applicano anche ai sink aggregati. Questi sink indirizzano le voci di log per la cartella o l'organizzazione in cui sono stati creati e per le risorse figlio.
Per risolvere i problemi di esaurimento della quota, prova quanto segue:
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. Puoi utilizzare la funzione
samplenel filtro per selezionare una frazione del numero totale di voci di log.Invia una richiesta di assistenza per aumentare la quota.
Per informazioni dettagliate sui limiti che potrebbero essere applicati quando instradi le voci di log, consulta le informazioni sulle quote della destinazione appropriata:
Errori di routing ai bucket di Cloud Logging
Potresti riscontrare una situazione in cui in Esplora log puoi visualizzare voci di log che hai escluso con il sink. Puoi comunque visualizzare queste voci di log se si verifica una delle seguenti condizioni:
Stai eseguendo la query nel progetto Google Cloud che ha generato le voci di log.
Per risolvere il problema, verifica di eseguire la query nel progettoGoogle Cloud corretto.
Le voci di log escluse sono state inviate a più bucket di log; stai visualizzando una copia dello stesso log che volevi escludere.
Per risolvere il problema, controlla i sink nella pagina Router dei log per verificare che non stai includendo le voci di log nei filtri di altri sink.
Hai accesso alle visualizzazioni nel bucket di log in cui sono state inviate le voci di log. In questo caso, puoi visualizzare queste voci di log per impostazione predefinita.
Per evitare di visualizzare queste voci di log in Esplora log, puoi perfezionare l'ambito della ricerca in base al progetto o al bucket Google Cloud di origine.
Risolvi i problemi di archiviazione dei log
Perché non riesco a eliminare questo bucket?
Se stai tentando di eliminare un bucket, procedi nel seguente modo:
Verifica di disporre delle autorizzazioni corrette per eliminare il bucket. Per l'elenco delle autorizzazioni necessarie, consulta Controllo dell'accesso con IAM.
Determina se il bucket è bloccato elencando gli attributi del bucket. Se il bucket è bloccato, controlla il suo periodo di conservazione. Non puoi eliminare un bucket bloccato finché tutti i log al suo interno non hanno soddisfatto il periodo di conservazione del bucket.
Quali service account eseguono il routing dei log al mio bucket?
Per determinare se i service account dispongono delle autorizzazioni IAM per instradare i log al tuo bucket, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina IAM:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.
Nella scheda Autorizzazioni, visualizza per Ruoli. Viene visualizzata una tabella con tutti i ruoli e le entità IAM associati al tuo progettoGoogle Cloud .
Nella casella di testo Filtro filter_list della tabella, inserisci Writer bucket di log.
Vengono visualizzate tutte le entità con il ruolo Writer bucket di log. Se un'entità è un account di servizio, il suo ID contiene la stringa
.(Facoltativo) Se vuoi rimuovere un account di servizio per impedire il routing dei log al tuo progetto Google Cloud , seleziona la casella di controllo check_box_outline_blank per il account di servizio e fai clic su Rimuovi.
Perché vedo i log di un progetto Google Cloud anche se li ho esclusi dal mio sink _Default?
Potresti visualizzare i log in un bucket di log in un progetto Google Cloud centralizzato, che aggrega i log di tutta l'organizzazione.
Se utilizzi Esplora log per accedere a questi log e visualizzi i log che hai escluso dal sink _Default, la visualizzazione potrebbe essere impostata sul livello di progettoGoogle Cloud .
Per risolvere il problema, seleziona Visualizzazione log nel menu Perfeziona ambito, quindi seleziona la visualizzazione log associata al bucket _Default nel tuo progettoGoogle Cloud . Non dovresti più vedere i log esclusi.