Questa pagina descrive come copiare manualmente le voci di log già archiviate nei bucket di log di Cloud Logging nei bucket di Cloud Storage. Un'operazione di copia non richiede che il bucket di log e il bucket Cloud Storage si trovino nello stesso Google Cloud progetto.
Potresti voler copiare le voci di log dai bucket di log ai bucket di Cloud Storage per i seguenti motivi:
- Nel caso in cui ti fossi dimenticato di instradare le voci di log a Cloud Storage prima di archiviarle in Logging.
- Per condividere le voci di log con gli revisori esterni a Logging.
- Per analizzare le voci di log con gli script in Cloud Storage.
Quando copi le voci di log in Cloud Storage, le voci di log rimangono anche nel bucket di log da cui sono state copiate.
Le operazioni di copia non sostituiscono sink, che inviano automaticamente tutte le voci di log in entrata che corrispondono ai filtri di inclusione ed esclusione a una destinazione di archiviazione supportata preselezionata, inclusi i bucket di Cloud Storage. Non puoi utilizzare i sink per instradare i log in modo retroattivo. Utilizza i sink quando sai in anticipo che vuoi archiviare le voci di log in un bucket Cloud Storage.
Per copiare i log e poi gestire e monitorare l'operazione, devi utilizzare il Google Cloud CLI.
Limitazioni
Quando copi le voci di log, si applicano le seguenti limitazioni:
Puoi copiare i log solo nei bucket di Cloud Storage; altre destinazioni non sono disponibili.
Non puoi copiare i log dai bucket di log in cui è configurata la CMEK.
Prima di iniziare
Prima di iniziare a copiare i log:
- Verifica di utilizzare l'ultima versione di gcloud CLI. Per istruzioni su come installare o aggiornare gcloud CLI, consulta Gestire i componenti di Google Cloud CLI.
-
Per ottenere le autorizzazioni che ti servono per copiare le voci di log, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto che contiene il bucket di log da cui stai copiando:
-
Per eseguire un'operazione di copia:
Logging Admin (
roles/logging.admin) -
Per visualizzare e gestire lo stato di un'operazione di copia:
Writer configurazione log (
roles/logging.configWriter)
-
Per eseguire un'operazione di copia:
Logging Admin (
-
Per ottenere le autorizzazioni necessarie per scrivere le voci di log in Cloud Storage, chiedi all'amministratore di concederti il ruolo IAM Storage Object Creator (
roles/storage.objectCreator) sul progetto che contiene il bucket Cloud Storage.
Copia delle voci di log
Logging copia solo le voci di log archiviate nel bucket di log all'avvio dell'operazione di copia. Le voci di log archiviate nei bucket di log dopo l'avvio dell'operazione di copia non vengono copiate in Cloud Storage.
Per copiare le voci di log in Cloud Storage, devi conoscere le seguenti informazioni:
- L'ID e la località del bucket di log da cui stai copiando.
Per recuperare l'ID bucket di log e la sua località, utilizza il
comando gcloud CLI
gcloud logging buckets list. - Il nome del bucket Cloud Storage in cui stai copiando. Per informazioni su come recuperare il nome del bucket Cloud Storage, consulta Recuperare le informazioni sul bucket Cloud Storage.
- Un filtro per le voci di log che vuoi copiare.
Per copiare le voci di log, esegui il
gcloud logging copy comando:
gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID
Prima di eseguire il comando precedente:
- Sostituisci BUCKET_ID con il nome del bucket di log.
- Sostituisci CLOUD_STORAGE_BUCKET_NAME con il nome del tuo bucket Cloud Storage.
- Sostituisci LOCATION con la località del bucket di log.
(Facoltativo) Sostituisci FILTER con il filtro che definisce i log da copiare.
Se ometti il flag
--log-filter, tutte le voci di log nel bucket di log vengono copiate nel bucket Cloud Storage.Sostituisci PROJECT_ID con l' Google Cloud ID progetto. Puoi omettere questo flag quando la configurazione gcloud CLI attiva è impostata sul progetto corretto Google Cloud .
Esempio di comando:
gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project
Questo comando crea un' operazione a lunga esecuzione da eseguire in background e restituisce il nome dell'operazione di copia e la località del bucket di log:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
La località dell'operazione di copia è la stessa del bucket di log da cui stai copiando.
Visualizzare e gestire le operazioni di copia
Puoi visualizzare e gestire le operazioni di copia utilizzando i
gcloud logging operations
comandi, che ti consentono di elencare, visualizzare e annullare le operazioni.
I seguenti comandi richiedono di specificare la località dell'operazione. Utilizza la località del bucket di log. Per informazioni su come trovare la località del bucket di log, consulta Visualizzare i dettagli di un bucket.
Elencare le operazioni di copia
Puoi elencare le operazioni di copia recenti, incluse quelle pianificate, in esecuzione, completate, non riuscite e annullate. Le operazioni di copia recenti vengono visualizzate nei risultati per un massimo di 30 giorni dopo l'ora di fine.
Per elencare le operazioni di copia, esegui il comando seguente:
gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
Prima di eseguire il comando precedente:
- Sostituisci LOCATION con la località del bucket di log da cui stai copiando da.
- Sostituisci PROJECT_ID con l' Google Cloud ID progetto.
Il comando restituisce informazioni sull'operazione a lunga esecuzione, incluso l'ID operazione:
projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Visualizzare lo stato di un'operazione di copia
Puoi recuperare lo stato e altri metadati sulle operazioni di copia, tra cui:
startTime: il timestamp che indica la creazione dell'operazione.endTime: il timestamp che indica il completamento dell'operazione.state: lo stato dell'operazione (pianificata, in esecuzione, annullata, non riuscita o riuscita).cancellation: indica se l'utente ha richiesto di annullare l'operazione.progress: l'avanzamento stimato dell'operazione (0-100%).destination: il nome del bucket Cloud Storage in cui l'operazione sta copiando i log.filter: il filtro che specifica le voci di log da copiare.name: il nome del bucket di log da cui l'operazione sta copiando i log.logEntriesCopiedCount: il numero di voci di log copiate correttamente nel bucket Cloud Storage dall'operazione.
Tieni presente che non tutti i campi dei metadati elencati si applicano a ogni operazione di copia.
Ad esempio, se un'operazione di copia è ancora in esecuzione, i metadati endtime non si applicherebbero all'operazione. Un altro esempio: se il
--log-filter=FILTER flag non è stato utilizzato durante l'esecuzione del
gcloud logging copy comando, i met2/} metadati non si applicherebbero
all'operazione.filter
Per recuperare informazioni su un'operazione di copia, esegui il comando seguente:
gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Prima di eseguire il comando precedente:
- Sostituisci OPERATION_ID con l'ID dell'operazione.
- Sostituisci LOCATION con la località del bucket di log da cui stai copiando da.
- Sostituisci PROJECT_ID con l' Google Cloud ID progetto.
Il comando restituisce i metadati sull'operazione di copia. Di seguito è riportato un output per un'operazione in corso:
done: false
metadata:
`@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
progress: 75
destination: storage.googleapis.com/my-storage-bucket-1
source: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
</pre>
Annullare un'operazione di copia
Puoi annullare un'operazione di copia in corso. Se annulli un'operazione di copia, tutte le voci di log copiate prima dell'annullamento rimangono nel bucket Cloud Storage.
Dopo aver annullato un'operazione di copia, Logging completa tutti i processi in corso prima di completare l'annullamento. Di conseguenza, alcune voci di log potrebbero essere ancora copiate in Cloud Storage dopo l'annullamento dell'operazione.
Per annullare un'operazione di copia, esegui il comando seguente:
gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Prima di eseguire il comando precedente:
- Sostituisci OPERATION_ID con l'ID dell'operazione.
- Sostituisci LOCATION con la località del bucket di log da cui stai copiando da.
- Sostituisci PROJECT_ID con l' Google Cloud ID progetto.
Visualizzare i log in Cloud Storage
Per visualizzare e comprendere i log copiati in Cloud Storage, consulta Visualizzare i log instradati a Cloud Storage.
Quote e limiti
Tutte le operazioni di copia richiedono almeno un'ora per essere completate, indipendentemente dalla quantità di dati copiati.
Per copiare un volume elevato, ad esempio petabyte, suddividi la copia in più operazioni di copia utilizzando il campo timestamp nel flag --filter.
Il comando di copia non può copiare le voci di log la cui conservazione è scaduta.
Prezzi
Per informazioni sui prezzi, consulta la pagina dei prezzi di Google Cloud Observability. Se instradi i dati di log ad altri Google Cloud servizi, consulta i seguenti documenti: