I sink di log in Cloud Logging ti consentono di instradare le voci di log dal tuo progetto Google Cloud alle destinazioni supportate per l'archiviazione a lungo termine, l'analisi o lo streaming. Per inviare i log, ogni sink scrive in una destinazione autorizzata, ad esempio un bucket di log, un bucket Cloud Storage, un set di dati BigQuery o un argomento Pub/Sub.
Un sink esegue un'azione di scrittura, pertanto deve essere autorizzato a scrivere nella destinazione. Quando la destinazione è un bucket di log nello stesso progetto del sink, il sink viene autorizzato automaticamente. Per tutte le altre destinazioni, il sink deve essere collegato a un service account a cui sono state concesse le autorizzazioni necessarie per scrivere dati nella destinazione.
Quando è richiesto un account di servizio, Cloud Logging lo crea e lo gestisce automaticamente. Tuttavia, potrebbe essere necessario modificare le autorizzazioni concesse al account di servizio. Non è necessario utilizzare il account di servizio creato da Logging. Puoi creare e gestire un account di servizio utilizzato dai sink in più progetti. Per saperne di più, consulta Configura i sink di log con service account gestiti dall'utente.
Panoramica
Questo documento descrive come creare un sink e come configurare le opzioni che potresti visualizzare quando utilizzi la console Google Cloud , Google Cloud CLI o l'API.
I sink appartengono a una determinata risorsa Google Cloud : un progetto Google Cloud , un account di fatturazione, una cartella o un'organizzazione. Quando la risorsa riceve una voce di log, ogni sink nella risorsa elabora la voce di log. Quando una voce di log corrisponde ai filtri del sink, viene indirizzata alla destinazione del sink.
In genere, i sink indirizzano solo le voci di log che hanno origine in una risorsa. Tuttavia, per cartelle e organizzazioni puoi creare sink aggregati. Questi sink indirizzano le voci di log che hanno origine nella cartella o nell'organizzazione e nelle relative risorse figlio. Questo documento non tratta i sink aggregati. Per saperne di più, consulta la panoramica dei sink aggregati.
Per creare e gestire i sink, puoi utilizzare la console Google Cloud , l'API Cloud Logging e Google Cloud CLI. Ti consigliamo di utilizzare la console Google Cloud per i seguenti motivi:
- Puoi configurare le destinazioni del sink nell'ambito del flusso per creare un sink.
- Puoi visualizzare l'anteprima delle voci di log che corrispondono ai filtri del sink.
- Alcuni passaggi di autorizzazione sono semplificati.
Ti consigliamo di rivedere la configurazione del sink di log quando apporti modifiche allo spazio di archiviazione dei log. Ad esempio, se elimini la destinazione di un sink di log, elimina il sink di log corrispondente.
Per informazioni sulla visualizzazione e sulla gestione dei sink di log, consulta la sezione Gestisci i sink di questo documento.
Destinazioni supportate
La destinazione di un sink può trovarsi in una risorsa diversa dal sink. Ad esempio, puoi utilizzare un sink di log per instradare le voci di log da un progetto a un bucket di log archiviato in un altro progetto.
Sono supportate le seguenti destinazioni:
- ProgettoGoogle Cloud
Seleziona questa destinazione se vuoi che i sink di log nel progetto di destinazione cambino il percorso delle voci di log o se hai creato un sink aggregato di intercettazione. I sink di log nel progetto di destinazione possono reindirizzare le voci di log a qualsiasi destinazione supportata, ad eccezione di un progetto.
I sink di log creati dal sistema nel progetto di destinazione escludono le voci di log che vengono indirizzate al bucket di log
_Requirednel progetto di origine. Ad esempio, se esegui il routing dei log delle attività di amministrazione a un altro progetto, i sink di log_Requirede_Defaultnel progetto di destinazione escludono queste voci di log. Per archiviare queste voci di log, nel progetto di destinazione aggiorna il sink di log_Defaulto crea un sink di log personalizzato.
- Bucket di log
Seleziona questa destinazione se vuoi archiviare i dati di log in risorse gestite da Cloud Logging. I dati di log archiviati nei bucket di log possono essere visualizzati e analizzati utilizzando servizi come Esplora log e Observability Analytics.
Se vuoi unire i dati di log ad altri dati aziendali, puoi archiviarli in un bucket di log e creare un set di dati BigQuery collegato. Un set di dati BigQuery collegato è di sola lettura, ma puoi eseguire query come su qualsiasi altro set di dati BigQuery.
- Set di dati BigQuery
- Seleziona questa destinazione quando vuoi unire i dati di log con altri dati aziendali. Il set di dati specificato deve essere abilitato per la scrittura. Non impostare la destinazione di un sink su un set di dati BigQuery collegato. I set di dati BigQuery collegati sono di sola lettura.
- bucket Cloud Storage, ad eccezione di Rapid Storage
- Seleziona questa destinazione se vuoi archiviare i dati di log a lungo termine. Il bucket Cloud Storage può trovarsi nel progetto in cui hanno origine le voci di log o in un progetto diverso. Le voci di log vengono archiviate come file JSON.
- Argomento Pub/Sub
- Seleziona questa destinazione se vuoi esportare i dati di log daGoogle Cloud e poi utilizzare integrazioni di terze parti come Splunk o Datadog. Le voci di log vengono formattate come JSON e poi indirizzate a un argomento Pub/Sub.
Limitazioni delle destinazioni
Questa sezione descrive le limitazioni specifiche per le destinazioni:
- Quando configuri una destinazione del sink, fornisci il percorso completo e utilizza l'endpoint globale del servizio.
Gli endpoint di servizio regionali (REP), come
pubsub.LOCATION.rep.googleapis.com, non sono supportati.
- Se instradi le voci di log a un bucket di log in un progetto Google Cloud diverso, Error Reporting non analizza queste voci di log. Per saperne di più, consulta la panoramica di Error Reporting.
Quando la destinazione di un sink di log è un set di dati BigQuery, si applicano le seguenti limitazioni:
- Il set di dati BigQuery deve essere abilitato per la scrittura. Non impostare la destinazione su un set di dati BigQuery collegato. I set di dati collegati sono di sola lettura.
- Logging crea una tabella all'interno del set di dati per ogni nome di log. Non puoi rinominare una tabella mentre un sink sta trasmettendo dati al suo interno.
Il routing delle voci di log ai bucket Cloud Storage configurati per Rapid Storage non è supportato.
L'avvio del routing delle voci di log da parte dei nuovi sink che eseguono il routing delle voci di log ai bucket Cloud Storage potrebbe richiedere diverse ore. Questi sink vengono elaborati ogni ora.
Il routing dei log a un argomento Pub/Sub che applica limitazioni in transito non è supportato. Logging non può garantire che le richieste di pubblicazione provengano da una regione consentita, il che causa errori di configurazione di
topic_region_not_allowede log ignorati.Le seguenti limitazioni si applicano quando la destinazione di un sink di log è un progetto Google Cloud :
- Esiste un limite di un hop.
- Il sink di log
_Requirednel progetto di destinazione instrada le voci di log al bucket di log_Requireddel progetto quando le voci di log corrispondono al filtro del sink e provengono dal progetto di destinazione. - Il sink di log
_Defaultnel progetto di destinazione instrada le voci di log che corrispondono al filtro di inclusione e non corrispondono a nessun filtro di esclusione. Il sink di log_Defaultesclude alcune voci di log. Ad esempio, questo sink non esegue il routing delle voci dei log Attività di amministrazione ed Evento di sistema. Puoi modificare questo sink. - Solo i sink aggregati che si trovano nella gerarchia delle risorse di una voce di log elaborano la voce.
Ad esempio, supponiamo che la destinazione di un sink di log nel progetto
Asia il progettoB. In questo caso, si applicano le seguenti regole:- A causa del limite di un hop, i sink di log nel progetto
Bnon possono reindirizzare le voci di log a un altro progetto Google Cloud . - Il bucket di log
_Requireddel progettoBarchivia solo le voci di log provenienti dal progettoB. Questo bucket di log non archivia voci di log provenienti da altre risorse, incluse quelle provenienti dal progettoA. - Se il progetto
Ae il progettoBhanno gerarchie di risorse diverse, una voce di log che un sink di log nel progettoAindirizza al progettoBnon viene inviata ai sink aggregati nella gerarchia di risorse del progettoB. - Se il progetto
Ae il progettoBhanno la stessa gerarchia delle risorse, le voci di log vengono inviate ai sink aggregati in quella gerarchia. Se una voce di log non viene intercettata da un sink aggregato, il router dei log invia la voce ai sink nel progettoA.
Prima di iniziare
Le istruzioni riportate in questo documento descrivono la creazione e la gestione dei sink a livello di progettoGoogle Cloud . Puoi utilizzare la stessa procedura per creare un sink che instrada le voci di log provenienti da un'organizzazione, una cartella o un account di fatturazione.
Per iniziare:
-
Abilita l'API Cloud Logging, se non è già abilitata.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli. Assicurati che il tuo progetto Google Cloud contenga voci di log che puoi visualizzare in Esplora log.
-
Per ottenere le autorizzazioni necessarie per creare, modificare o eliminare un sink, chiedi all'amministratore di concederti il ruolo IAM Logs Configuration Writer (
roles/logging.configWriter) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per informazioni sulla concessione dei ruoli IAM, consulta la guida al controllo degli accessi di Logging.
Assicurati di avere una risorsa in una destinazione supportata o di poterla creare.
Per indirizzare le voci di log a una destinazione, quest'ultima deve esistere prima di creare il sink. Puoi creare la destinazione in qualsiasi progettoGoogle Cloud di qualsiasi organizzazione.
Prima di creare un sink, esamina le limitazioni che si applicano alla destinazione del sink. Per saperne di più, consulta la sezione Limitazioni delle destinazioni di questo documento.
Seleziona l'interfaccia che intendi utilizzare:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API Google Cloud , non devi configurare l'autenticazione.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Creazione di un sink
Questa sezione descrive come creare un sink in un progetto Google Cloud .
Puoi creare fino a 200 sink per progetto Google Cloud .
Per visualizzare il numero e il volume delle voci di log instradate, visualizza le
metriche logging.googleapis.com/exports/.
Utilizza il linguaggio di query di Logging per creare un'espressione di filtro che corrisponda alle voci di log che vuoi includere. Non inserire informazioni sensibili nei filtri dei sink. I filtri dei sink vengono trattati come dati di servizio.
Quando una query contiene più istruzioni, puoi specificare come vengono unite o fare in modo che Cloud Logging aggiunga implicitamente la restrizione congiuntiva AND tra le istruzioni. Ad esempio, supponiamo che una finestra di dialogo di query o filtro contenga due istruzioni, resource.type = "gce_instance" e severity >= "ERROR".
La query effettiva è resource.type = "gce_instance" AND severity >= "ERROR".
Cloud Logging supporta sia le limitazioni disgiuntive, OR, sia le limitazioni congiuntive, AND. Quando utilizzi le istruzioni OR, ti consigliamo di raggruppare le clausole con le parentesi.
Per creare un sink:
Console
-
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Seleziona il progetto Google Cloud da cui provengono le voci di log che vuoi instradare.
Ad esempio, se vuoi instradare le voci di log di accesso ai dati dal progetto denominato
Project-Aa un bucket di log nel progetto denominatoProject-B, selezionaProject-A.Seleziona Crea sink.
Nel riquadro Dettagli sink, inserisci i seguenti dettagli:
Nome sink: inserisci un identificatore per il sink. Dopo aver creato il sink, non puoi rinominarlo, ma puoi eliminarlo e crearne uno nuovo.
(Facoltativo) Descrizione sink: descrivi lo scopo o il caso d'uso del sink.
Nel riquadro Destinazione sink, seleziona il servizio sink e la destinazione utilizzando il menu Seleziona il servizio sink. Procedi in uno dei seguenti modi:
Per instradare le voci di log a un servizio che si trova nello stesso progettoGoogle Cloud , seleziona una delle seguenti opzioni:
- Bucket Cloud Logging: seleziona o crea un bucket di Logging.
- Set di dati BigQuery: seleziona o crea il set di dati abilitato alla scrittura per ricevere le voci di log indirizzate. Hai anche la possibilità di utilizzare tabelle partizionate.
- Bucket Cloud Storage: seleziona o crea il bucket Cloud Storage per ricevere le voci di log indirizzate.
- Argomento Pub/Sub: seleziona o crea l'argomento per ricevere le voci di log indirizzate.
- Splunk: seleziona l'argomento Pub/Sub per il tuo servizio Splunk.
Per instradare le voci di log a un progetto Google Cloud diverso, seleziona progettoGoogle Cloud , quindi inserisci il nome completo della destinazione:
logging.googleapis.com/projects/DESTINATION_PROJECT_IDPer instradare le voci di log a un servizio che si trova in un progettoGoogle Cloud diverso, segui questi passaggi:
- Seleziona Altra risorsa.
- Inserisci il nome completo della destinazione. Per informazioni sulla sintassi, consulta Formati dei percorsi di destinazione.
Specifica le voci di log da includere:
Vai al riquadro Scegli i log da includere nel sink.
Nel campo Crea filtro di inclusione, inserisci un'espressione di filtro che corrisponda alle voci di log che vuoi includere. Per informazioni sulla sintassi, consulta Linguaggio di query di Logging.
Se non imposti un filtro, tutte le voci di log della risorsa selezionata vengono indirizzate alla destinazione.
Ad esempio, per instradare tutte le voci dei log di accesso ai dati a un bucket di Logging, puoi utilizzare il seguente filtro:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")La lunghezza di un filtro non può superare i 20.000 caratteri.
Per verificare di aver inserito il filtro corretto, seleziona Anteprima dei log. Esplora log si apre in una nuova scheda con il filtro precompilato.
(Facoltativo) Configura un filtro di esclusione per eliminare alcune delle voci di log incluse:
Vai al riquadro Scegli i log da escludere dal sink.
Nel campo Nome filtro di esclusione, inserisci un nome.
Nel campo Crea un filtro di esclusione, inserisci un'espressione di filtro che corrisponda alle voci di log che vuoi escludere. Puoi anche utilizzare la funzione
sampleper selezionare una parte delle voci di log da escludere.
Puoi creare fino a 50 filtri di esclusione per sink. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.
Seleziona Crea sink.
Concedi al account di servizio del sink l'autorizzazione per scrivere voci di log nella destinazione del sink. Per saperne di più, consulta Imposta le autorizzazioni della destinazione.
gcloud
Per creare un sink:
Esegui il comando
gcloud logging sinks create:gcloud logging sinks create SINK_NAME SINK_DESTINATION
Prima di eseguire il comando, effettua le seguenti sostituzioni:
- SINK_NAME: il nome del sink di log. Non puoi modificare il nome di un sink dopo averlo creato.
SINK_DESTINATION: il servizio o il progetto a cui vuoi indirizzare le voci di log. Imposta SINK_DESTINATION sul percorso appropriato, come descritto in Formati dei percorsi di destinazione.
Ad esempio, se la destinazione del sink è un argomento Pub/Sub, SINK_DESTINATION sarà simile al seguente:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Puoi anche fornire le seguenti opzioni:
--log-filter: utilizza questa opzione per impostare un filtro che corrisponda alle voci di log che vuoi includere nel sink. Se non fornisci un valore per il filtro di inclusione, questo filtro corrisponde a tutte le voci di log.--exclusion: utilizza questa opzione per impostare un filtro di esclusione per le voci di log che non vuoi che vengano indirizzate dal sink. Puoi anche utilizzare la funzionesampleper selezionare una parte delle voci di log da escludere. Questa opzione può essere ripetuta. Puoi creare fino a 50 filtri di esclusione per sink.--description: Utilizzare questa opzione per descrivere lo scopo o il caso d'uso del sink.
Ad esempio, per creare un sink in un bucket di Logging, il comando potrebbe essere simile al seguente:
gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \ --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
Per saperne di più sulla creazione di sink utilizzando Google Cloud CLI, consulta il riferimento
gcloud logging sinks.Se la risposta al comando contiene una chiave JSON con l'etichetta
"writerIdentity", concedi al account di servizio del sink l'autorizzazione per scrivere nella destinazione del sink. Per saperne di più, consulta Imposta le autorizzazioni della destinazione.Non è necessario impostare le autorizzazioni di destinazione quando la risposta non contiene una chiave JSON con etichetta
"writerIdentity".
REST
Per creare un sink di logging nel tuo progetto Google Cloud , utilizza
projects.sinks.createnell'API Logging. Nell'oggettoLogSink, fornisci i valori richiesti appropriati nel corpo della richiesta del metodo:name: Un identificatore per il sink. Dopo aver creato il sink, non puoi rinominarlo, ma puoi eliminarlo e crearne uno nuovo.destination: il servizio e la destinazione a cui vuoi indirizzare le voci di log. Per instradare le voci di log a un progetto diverso o a una destinazione che si trova in un altro progetto, imposta il campodestinationsul percorso appropriato, come descritto in Formati dei percorsi di destinazione.Ad esempio, se la destinazione del sink è un argomento Pub/Sub,
destinationsarà simile al seguente:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Nell'oggetto
LogSink, fornisci le informazioni facoltative appropriate:filter: imposta il campofilterin modo che corrisponda alle voci di log che vuoi includere nel sink. Se non imposti un filtro, tutte le voci di log del tuo progettoGoogle Cloud vengono indirizzate alla destinazione. Tieni presente che la lunghezza di un filtro non può superare i 20.000 caratteri.exclusions: imposta questo campo in modo che corrisponda alle voci di log che vuoi escludere dal sink. Puoi anche utilizzare la funzionesampleper selezionare una parte delle voci di log da escludere. Puoi creare fino a 50 filtri di esclusione per sink.description: imposta questo campo per descrivere lo scopo o il caso d'uso del sink.
Chiama
projects.sinks.createper creare il sink.Se la risposta dell'API contiene una chiave JSON con l'etichetta
"writerIdentity", concedi al account di servizio del sink l'autorizzazione per scrivere nella destinazione del sink. Per saperne di più, consulta Imposta le autorizzazioni della destinazione.Non è necessario impostare le autorizzazioni di destinazione quando la risposta dell'API non contiene una chiave JSON con l'etichetta
"writerIdentity".
Per saperne di più sulla creazione di sink utilizzando l'API Logging, consulta il riferimento LogSink.
Se ricevi notifiche di errore, consulta Risolvi i problemi relativi a routing e sink.
Formati dei percorsi di destinazione
Quando configuri una destinazione del sink, fornisci il percorso completo e utilizza l'endpoint globale del servizio.
Gli endpoint di servizio regionali (REP), come pubsub.LOCATION.rep.googleapis.com, non sono supportati.
Nei seguenti formati di percorso, DESTINATION_PROJECT_ID si riferisce all'ID o al numero del progetto di destinazione:
Bucket di log di Cloud Logging:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Un altro progetto Google Cloud :
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Set di dati BigQuery:
bigquery.googleapis.com/projects/DESTINATION_PROJECT_ID/datasets/DATASET_ID
Bucket Cloud Storage:
storage.googleapis.com/BUCKET_NAME
Argomento Pub/Sub:
pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
Imposta le autorizzazioni di destinazione
Questa sezione descrive come concedere a Logging le autorizzazioni Identity and Access Management per scrivere voci di log nella destinazione del sink. Per l'elenco completo dei ruoli e delle autorizzazioni di Logging, consulta Controllo dell'accesso.
Cloud Logging crea un account di servizio condiviso per una risorsa quando viene creato un sink, a meno che il account di servizio richiesto non esista già. Il account di servizio potrebbe esistere perché lo stesso account di servizio viene utilizzato per tutti i sink nella risorsa sottostante. Una risorsa può essere un progetto Google Cloud , un'organizzazione, una cartella o un account di fatturazione.
L'identità writer di un sink è l'identificatore del service account associato al sink. Tutti i sink hanno un'identità writer, ad eccezione dei sink che scrivono in un bucket di log nello stesso progetto Google Cloud in cui hanno origine le voci di log. Per quest'ultima configurazione, non è richiesto un account di servizio, pertanto il campo writer identity del sink è elencato come None nella console. I comandi dell'API e di Google Cloud CLI non segnalano un'identità writer.
Le seguenti istruzioni si applicano a progetti, cartelle, organizzazioni e account di fatturazione:
Console
Assicurati di disporre dell'accesso Owner al progettoGoogle Cloud che contiene la destinazione. Se non disponi dell'accesso come Proprietario alla destinazione del sink, chiedi a un Project Owner di aggiungere l'identità writer come entità.
Per ottenere l'identità writer del sink, ovvero un indirizzo email, dal nuovo sink, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- Nella barra degli strumenti, seleziona il progetto che contiene il sink.
- Seleziona more_vert Menu e poi Visualizza dettagli sink. L'identità writer viene visualizzata nel riquadro Dettagli sink.
-
Se il valore del campo
writerIdentitycontiene un indirizzo email, vai al passaggio successivo. Quando il valore èNone, non è necessario configurare le autorizzazioni di destinazione per il sink.Copia l'identità writer del sink negli appunti.
L'indirizzo email identifica l'entità. Il prefisso
serviceAccount:specifica il tipo di account.Concedi all'entità specificata nell'identità writer del sink l'autorizzazione per scrivere i dati di log nella destinazione:
-
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 barra degli strumenti, assicurati che il progetto selezionato sia quello che archivia la destinazione o che sia la destinazione del sink. Ad esempio, se la destinazione è un bucket di log, assicurati che la barra degli strumenti mostri il progetto in cui è archiviato il bucket di log.
Seleziona Concedi l'accesso.
Concedi all'entità specificata nell'identità writer del sink un ruolo IAM in base alla destinazione del sink di log:
- Per tutte le destinazioni, concedi il ruolo Writer log (
roles/logging.logWriter). In particolare, un'entità deve disporre dell'autorizzazionelogging.logEntries.route. - Concedi uno dei seguenti ruoli in base alla destinazione:
- Bucket di log: concedi il ruolo Writer bucket di log (
roles/logging.bucketWriter). - Bucket Cloud Storage: concedi il
ruolo Storage Object Creator
(
roles/storage.objectCreator). - Set di dati BigQuery: concedi il ruolo BigQuery Data Editor (
roles/bigquery.dataEditor). - Argomento Pub/Sub, incluso Splunk: concedi il ruolo Pub/Sub Publisher (
roles/pubsub.publisher).
- Bucket di log: concedi il ruolo Writer bucket di log (
- Per tutte le destinazioni, concedi il ruolo Writer log (
-
gcloud
Assicurati di disporre dell'accesso Owner al progettoGoogle Cloud che contiene la destinazione. Se non disponi dell'accesso come Proprietario alla destinazione del sink, chiedi a un Project Owner di aggiungere l'identità writer come entità.
Recupera il account di servizio dal campo
writerIdentitynel sink:gcloud logging sinks describe SINK_NAME
Individua il sink di cui vuoi modificare le autorizzazioni e, se i dettagli del sink contengono una riga con
writerIdentity, vai al passaggio successivo. Se i dettagli non includono un campowriterIdentity, non è necessario configurare le autorizzazioni di destinazione per il sink.L'identità writer per il account di servizio è simile alla seguente:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Concedi all'identità writer del sink l'autorizzazione per scrivere i dati di log nella destinazione chiamando il comando
gcloud projects add-iam-policy-binding.Prima di utilizzare il comando seguente, apporta le seguenti sostituzioni:
- PROJECT_ID: l'identificatore del progetto. Specifica il progetto che archivia la destinazione del sink di log. Quando la destinazione è un progetto, specifica il progetto.
- PRINCIPAL: un identificatore dell'entità a cui vuoi concedere il ruolo. Gli identificatori entità di solito hanno il seguente formato:
PRINCIPAL-TYPE:ID. Ad esempio:user:my-user@example.com. Per un elenco completo dei formati chePRINCIPALpuò avere, consulta Identificatori delle entità. ROLE: un ruolo IAM. Concedi all'identità writer del sink un ruolo IAM in base alla destinazione del sink di log:
- Per tutte le destinazioni, concedi il ruolo Writer log (
roles/logging.logWriter). In particolare, un'entità deve disporre dell'autorizzazionelogging.logEntries.route. - Concedi uno dei seguenti ruoli in base alla destinazione:
- Bucket di log: concedi il ruolo Writer bucket di log (
roles/logging.bucketWriter). - Bucket Cloud Storage: concedi il
ruolo Storage Object Creator
(
roles/storage.objectCreator). - Set di dati BigQuery: concedi il ruolo BigQuery Data Editor (
roles/bigquery.dataEditor). - Argomento Pub/Sub, incluso Splunk: concedi il ruolo Pub/Sub Publisher (
roles/pubsub.publisher).
- Bucket di log: concedi il ruolo Writer bucket di log (
- Per tutte le destinazioni, concedi il ruolo Writer log (
Esegui il comando
gcloud projects add-iam-policy-binding:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Ti consigliamo di utilizzare la console Google Cloud o Google Cloud CLI per concedere un ruolo al account di servizio.
Gestisci sink
Ti consigliamo di rivedere la configurazione del sink di log quando apporti modifiche allo spazio di archiviazione dei log. Ad esempio, se elimini la destinazione di un sink di log, elimina il sink di log corrispondente.
Dopo aver creato i sink, puoi eseguire le seguenti azioni. L'applicazione delle modifiche apportate a un sink potrebbe richiedere alcuni minuti:
- Visualizza dettagli
- Aggiorna
Disattiva
- Non puoi disattivare il sink
_Required. Puoi disattivare il sink
_Defaultper interrompere il routing delle voci di log al bucket Logging_Default.Puoi disattivare il sink
_Defaultper tutti i nuovi progetti o cartelleGoogle Cloud che crei nella tua organizzazione o cartella configurando le impostazioni predefinite delle risorse per Cloud Logging.
- Non puoi disattivare il sink
Elimina
- Non puoi eliminare i sink
_Defaulto_Required. - Quando elimini un sink, questo non instrada più le voci di log.
- Se il sink ha un account di servizio dedicato, l'eliminazione del sink comporta anche l'eliminazione del account di servizio. I sink creati prima del 22 maggio 2023 hanno service account dedicati. I sink creati il 22 maggio 2023 o in una data successiva hanno un account di servizio condiviso. L'eliminazione del sink non comporta l'eliminazione del account di servizio condiviso.
- Non puoi eliminare i sink
Risolvi i problemi
- Visualizza volume di log e tassi di errore
Di seguito sono riportate le istruzioni per la gestione di un sink in un progettoGoogle Cloud . Anziché un progetto Google Cloud , puoi specificare un account di fatturazione, una cartella o un'organizzazione:
Console
-
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Nella barra degli strumenti, seleziona la risorsa che contiene il sink. La risorsa può essere un progetto, una cartella, un'organizzazione o un account di fatturazione.
La pagina Router dei log mostra i sink nella risorsa selezionata. Ogni riga della tabella contiene informazioni sulle proprietà di un sink:
- Abilitato: indica se lo stato del sink è abilitato o disabilitato.
- Tipo: il servizio di destinazione del sink, ad esempio
Cloud Logging bucket. - Nome: l'identificatore del sink, fornito al momento della creazione del sink, ad esempio
_Default. - Descrizione: la descrizione del sink, fornita al momento della creazione.
- Destinazione: nome completo della destinazione a cui vengono inviate le voci di log indirizzate.
- Data di creazione: la data e l'ora di creazione del sink.
- Ultimo aggiornamento: la data e l'ora dell'ultima modifica del sink.
- Volume: indica il volume totale di log indirizzati al sink di log. Il valore include il volume indirizzato ai bucket di log, ai progetti o ad altre destinazioni.
Per ogni riga della tabella, il menu more_vert Altre azioni offre le seguenti opzioni:
- Visualizza dettagli sink: mostra il nome, la descrizione, il servizio di destinazione, la destinazione e i filtri di inclusione ed esclusione del sink. Se selezioni Modifica, si apre il riquadro Modifica sink.
- Modifica sink: apre il riquadro Modifica sink, dove puoi aggiornare i parametri del sink.
- Disattiva sink: consente di disattivare il sink e interrompere il routing delle voci di log alla destinazione del sink. Per saperne di più sulla disattivazione dei sink, consulta Interrompi l'archiviazione dei log nei bucket di log.
- Attiva sink: consente di attivare un sink disattivato e riavviare il routing delle voci di log alla destinazione del sink.
- Elimina sink: consente di eliminare il sink e interrompere il routing delle voci di log alla destinazione del sink.
- Risolvi i problemi del sink: apre Esplora log, dove puoi risolvere gli errori del sink.
- Visualizza volume di log e tassi di errore del sink: apre Metrics Explorer, dove puoi visualizzare e analizzare i dati del sink.
Per ordinare la tabella in base a una colonna, seleziona il nome della colonna.
gcloud
Per visualizzare l'elenco dei sink per il tuo progetto Google Cloud , utilizza il comando
gcloud logging sinks list, che corrisponde al metodo dell'API Loggingprojects.sinks.list:gcloud logging sinks list
Per visualizzare l'elenco dei sink aggregati, utilizza l'opzione appropriata per specificare la risorsa che contiene il sink. Ad esempio, se hai creato il sink a livello di organizzazione, utilizza l'opzione
--organization=ORGANIZATION_IDper elencare i sink dell'organizzazione.Per descrivere un sink, utilizza il comando
gcloud logging sinks describe, che corrisponde al metodo dell'API Loggingprojects.sinks.get:gcloud logging sinks describe SINK_NAME
Per aggiornare un sink, utilizza il comando
gcloud logging sinks update, che corrisponde al metodo APIprojects.sinks.update.Puoi aggiornare un sink per modificare la destinazione, i filtri e la descrizione oppure per disabilitarlo o riabilitarlo:
gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER
Ometti NEW_DESTINATION o
--log-filterse queste parti non cambiano.Ad esempio, per aggiornare la destinazione del sink denominato
my-project-sinkin una nuova destinazione del bucket Cloud Storage denominatamy-second-gcs-bucket, il comando è il seguente:gcloud logging sinks update my-project-sink storage.googleapis.com/my-second-gcs-bucket
Per disattivare un sink, utilizza il comando
gcloud logging sinks update, che corrisponde al metodo APIprojects.sinks.update, e includi l'opzione--disabled:gcloud logging sinks update SINK_NAME --disabled
Per riattivare il sink, utilizza il comando
gcloud logging sinks update, rimuovi l'opzione--disablede includi l'opzione--no-disabled:gcloud logging sinks update SINK_NAME --no-disabled
Per eliminare un sink, utilizza il comando
gcloud logging sinks delete, che corrisponde al metodo APIprojects.sinks.delete:gcloud logging sinks delete SINK_NAME
Per saperne di più sulla gestione dei sink utilizzando Google Cloud CLI, consulta il riferimento
gcloud logging sinks.
REST
Per visualizzare i sink per il tuo progetto Google Cloud , chiama
projects.sinks.list.Per visualizzare i dettagli di un sink, chiama
projects.sinks.get.Per aggiornare un sink, chiama
projects.sinks.update.Puoi aggiornare la destinazione, i filtri e la descrizione di un sink. Puoi anche disattivare o riattivare il sink.
Per disattivare un sink, imposta il campo
disablednell'oggettoLogSinksutrue, quindi chiamaprojects.sinks.update.Per riattivare il sink, imposta il campo
disablednell'oggettoLogSinksufalse, quindi chiamaprojects.sinks.update.Per eliminare un sink, chiama
projects.sinks.delete.Per ulteriori informazioni sulla gestione dei sink utilizzando l'API Logging, consulta il riferimento
LogSink.
Interrompi l'archiviazione delle voci di log nei bucket di log
Puoi disattivare il sink _Default e qualsiasi sink definito dall'utente. Quando disattivi un sink, questo interrompe il routing delle nuove voci di log alla destinazione.
Ad esempio, se disattivi il sink _Default, non vengono indirizzate voci di log al bucket _Default. Il bucket _Default si svuota quando tutte le voci di log archiviate in precedenza hanno raggiunto la fine del periodo di conservazione del bucket.
Le seguenti istruzioni illustrano come disabilitare il sink _Default di un progetto Google Cloud in modo che non instradi le voci di log al bucket di log _Default:
Console
-
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- Per trovare tutti i sink che instradano le voci di log al bucket di log
_Default, filtra i sink per destinazione, quindi inserisci_Default. Per ogni sink, seleziona more_vert Menu, quindi Disattiva sink.
I sink sono ora disattivati e non eseguono più il routing delle voci di log al bucket
_Default.
Per riattivare un sink disattivato e riavviare il routing delle voci di log verso la destinazione del sink, segui questi passaggi:
-
Nella console Google Cloud , vai alla pagina Router dei log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
- Per trovare tutti i sink che instradano le voci di log al bucket di log
_Default, filtra i sink per destinazione, quindi inserisci_Default. - Per ogni sink, seleziona more_vert Menu e poi Abilita sink.
gcloud
Per visualizzare l'elenco dei sink per il tuo progetto Google Cloud , utilizza il comando
gcloud logging sinks list, che corrisponde al metodo dell'API Loggingprojects.sinks.list:gcloud logging sinks list
Identifica i sink che eseguono il routing al bucket di log
_Default. Per descrivere un sink, incluso il nome della destinazione, utilizza il comandogcloud logging sinks describe, che corrisponde al metodo dell'API Loggingprojects.sinks.get:gcloud logging sinks describe SINK_NAME
Esegui il comando
gcloud logging sinks updatee includi l'opzione--disabled. Ad esempio, per disattivare il sink_Default, utilizza il seguente comando:gcloud logging sinks update _Default --disabled
Il sink
_Defaultè ora disabilitato e non instrada più le voci di log al bucket di log_Default.
Per disabilitare gli altri sink nel tuo progetto Google Cloud che eseguono il routing al bucket _Default, ripeti i passaggi precedenti.
Per riattivare un sink, utilizza il comando gcloud logging sinks update, rimuovi l'opzione --disabled e includi l'opzione --no-disabled:
gcloud logging sinks update _Default --no-disabled
REST
Per visualizzare i sink per il tuo progetto Google Cloud , chiama il metodo dell'API Logging
projects.sinks.list.Identifica i sink che eseguono il routing al bucket
_Default.Ad esempio, per disattivare il sink
_Default, imposta il campodisablednell'oggettoLogSinksutrue, quindi chiamaprojects.sinks.update.Il sink
_Defaultè ora disattivato e non instrada più le voci di log al bucket_Default.
Per disabilitare gli altri sink nel tuo progetto Google Cloud che eseguono il routing al bucket _Default, ripeti i passaggi precedenti.
Per riattivare un sink, imposta il campo disabled nell'oggetto LogSink su false, quindi chiama projects.sinks.update.
Esempi di codice
Per utilizzare il codice della libreria client per configurare i sink nei linguaggi scelti, consulta Esempi di codice.
Esempi di filtro
Di seguito sono riportati alcuni esempi di filtri particolarmente utili per la creazione di sink. Per altri esempi che potrebbero essere utili per la creazione dei filtri di inclusione e di esclusione, consulta Query di esempio.
Ripristina il filtro del sink _Default
Se hai modificato il filtro per il sink _Default, potresti voler ripristinare la configurazione originale di questo sink. Al momento della creazione, il sink _Default viene configurato con il seguente filtro di inclusione e un filtro di esclusione vuoto:
NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
log_id("externalaudit.googleapis.com/activity") AND NOT \
log_id("cloudaudit.googleapis.com/system_event") AND NOT \
log_id("externalaudit.googleapis.com/system_event") AND NOT \
log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
log_id("externalaudit.googleapis.com/access_transparency")
Escludi i log dei container e dei pod Google Kubernetes Engine
Per escludere le voci di log dei container e dei pod di Google Kubernetes Engine per il sistema GKE namespaces, utilizza il seguente filtro:
resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")
Per escludere le voci di log dei nodi di Google Kubernetes Engine per i valori log_id del sistema GKE, utilizza il seguente filtro:
resource.type = "k8s_node"
(log_id("container-runtime") OR
log_id("docker") OR
log_id("kube-container-runtime-monitor") OR
log_id("kube-logrotate") OR
log_id("kube-node-configuration") OR
log_id("kube-node-installation") OR
log_id("kubelet") OR
log_id("kubelet-monitor") OR
log_id("node-journal") OR
log_id("node-problem-detector"))
Per visualizzare il volume delle voci di log di nodi, pod e container di Google Kubernetes Engine archiviate nei bucket di log, utilizza Metrics Explorer:
- Visualizza voce di log dei nodi
- Visualizza voce di log dei pod
- Visualizza il volume delle voce di log dei container
Escludi i log di Dataflow non necessari per la supportabilità
Per escludere le voci di log di Dataflow non necessarie per la supportabilità, utilizza il seguente filtro:
resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Per visualizzare il volume dei log di Dataflow archiviati nei bucket di log, utilizza Metrics Explorer. Per saperne di più, consulta Visualizza il volume delle voci di log di Dataflow.
Escludi le voci di log di Storage Transfer Service che registrano azioni riuscite
Per escludere le voci di log di Storage Transfer Service che registrano azioni riuscite, utilizza il seguente filtro di esclusione:
resource.type="storage_transfer_job" AND
jsonPayload.status.statusCode="OK"
Un'alternativa è modificare i dati di log scritti da un job di Storage Transfer Service. Per saperne di più, consulta Abilita il logging per Storage Transfer Service.
Supportabilità
Sebbene Cloud Logging ti consenta di escludere le voci di log e di impedirne l'archiviazione in un bucket di log, ti consigliamo di conservare le voci di log che contribuiscono alla supportabilità. L'utilizzo di queste voci di log può aiutarti a risolvere e identificare i problemi con le tue applicazioni.
Ad esempio, le voci dei log di sistema di GKE sono utili per la risoluzione dei problemi delle applicazioni e dei cluster GKE perché vengono generate per gli eventi che si verificano nel cluster. Queste voci di log possono aiutarti a determinare se l'errore dell'applicazione è causato dal codice dell'applicazione o dal cluster GKE sottostante. I log di sistema di GKE includono anche l'audit logging di Kubernetes generato dal componente server API Kubernetes, che include le modifiche apportate utilizzando il comando kubectl ed eventi Kubernetes.
Per Dataflow, ti consigliamo di scrivere almeno i log di sistema (labels."dataflow.googleapis.com/log_type"="system") e i log di supportabilità (labels."dataflow.googleapis.com/log_type"="supportability") nei bucket di log. Questi log sono essenziali per consentire agli sviluppatori di osservare e risolvere i problemi delle pipeline Dataflow. Senza questi log, gli utenti potrebbero non essere in grado di utilizzare la pagina Dettagli job di Dataflow per visualizzare i log dei job.