É possível copiar entradas de registro armazenadas dos buckets de registro do Cloud Logging para os buckets do Cloud Storage para oferecer suporte a auditorias de segurança, realizar análises de dados personalizadas ou arquivar entradas de registro históricas. A operação de cópia é não destrutiva. As entradas de registro permanecem no bucket de registros de origem, e é possível copiar entre diferentes Google Cloud projetos.
As operações de cópia roteiam as entradas de registro atuais de forma retroativa usando a CLI gcloud. Por outro lado, os coletores roteiam as entradas de registro correspondentes automaticamente em tempo real à medida que chegam, mas não podem rotear entradas de registro armazenadas antes da criação do coletor.
Limitações
As seguintes limitações são aplicadas ao copiar entradas de registro:
Só é possível copiar entradas de registro para buckets do Cloud Storage. Outros destinos não estão disponíveis.
Não é possível copiar entradas de registro de buckets de registro que tenham chaves de criptografia gerenciadas pelo cliente (CMEK) configuradas.
Antes de começar
Antes de começar a copiar entradas de registro, faça o seguinte:
- Verifique se você está usando a versão mais recente da CLI gcloud. Para instruções sobre como instalar ou atualizar a CLI gcloud, consulte Como gerenciar componentes da CLI do Google Cloud.
-
Para receber as permissões necessárias para copiar entradas de registro, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto que contém o bucket de registros do qual você está copiando:
-
Para executar uma operação de cópia:
administrador do Logging (
roles/logging.admin) -
Para visualizar e gerenciar o status de uma operação de cópia:
gravador de configuração de registros (
roles/logging.configWriter)
-
Para executar uma operação de cópia:
administrador do Logging (
-
Para receber as permissões necessárias para gravar entradas de registro no Cloud Storage, peça ao administrador para conceder a você o papel do IAM de criador de objetos do Storage (
roles/storage.objectCreator) no projeto que contém o bucket do Cloud Storage.
Copiar entradas de registro
O Logging só copia entradas de registro armazenadas no bucket de registros quando a operação de cópia é iniciada. As entradas de registro armazenadas em buckets de registro após o início da operação de cópia não são copiadas para o Cloud Storage.
Para copiar entradas de registro para o Cloud Storage, é preciso saber as seguintes informações:
- O ID e o local do bucket de registros do qual você está copiando.
Para recuperar o ID e o local do bucket de registros, use o
comando da CLI gcloud
gcloud logging buckets list. - O nome do bucket do Cloud Storage para o qual você está copiando. Para informações sobre como recuperar o nome do bucket do Cloud Storage, consulte Como receber informações do bucket do Cloud Storage.
- Um filtro para as entradas de registro que você quer copiar.
Para copiar entradas de registro, execute o
gcloud logging copy comando:
gcloud logging copy LOG_BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID
Antes de executar o comando anterior, faça o seguinte:
- Substitua LOG_BUCKET_ID pelo nome do bucket de registros.
- Substitua CLOUD_STORAGE_BUCKET_NAME pelo nome do bucket do Cloud Storage.
- Substitua LOCATION pelo local do bucket de registros.
(Opcional): substitua FILTER pelo filtro que define quais entradas de registro são copiadas.
Se você omitir a flag
--log-filter, todas as entradas de registro no bucket de registros serão copiadas para o bucket do Cloud Storage.Substitua PROJECT_ID pelo Google Cloud ID do projeto. É possível omitir essa flag quando a configuração ativa da CLI gcloud estiver definida para o projeto correto Google Cloud .
Exemplo de 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
Este comando cria uma operação de longa duração para ser executada em segundo plano e retorna o nome da operação de cópia e o local do bucket de registros:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
O local da operação de cópia é o mesmo que o local do bucket de registro do qual você está copiando.
Ver e gerenciar operações de cópia
É possível visualizar e gerenciar suas operações de cópia usando os
gcloud logging operations
comandos, que permitem listar, visualizar e cancelar operações.
Os comandos a seguir exigem que você especifique o local da operação. Use o local do bucket de registros. Para informações sobre como encontrar o local do bucket de registros, consulte Visualizar os detalhes de um bucket.
Listar operações de cópia
É possível listar operações de cópia recentes, incluindo operações programadas, em execução, concluídas, com falha e canceladas. Operações de cópia recentes aparecem nos resultados por até 30 dias após o horário de término.
Para listar operações de cópia, execute o seguinte comando:
gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
Antes de executar o comando anterior, faça o seguinte:
- Substitua LOCATION pelo local do bucket de registros do qual você está copiando de.
- Substitua PROJECT_ID pelo Google Cloud ID do projeto.
O comando retorna informações sobre a operação de longa duração, incluindo o ID da operação:
projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Ver o status de uma operação de cópia
É possível recuperar o status e outros metadados sobre operações de cópia, incluindo o seguinte:
startTime: o carimbo de data/hora que indica a criação da operação.endTime: o carimbo de data/hora que indica a conclusão da operação.state: o status da operação (programada, em execução, cancelada, com falha ou bem-sucedida).cancellation: se o usuário solicitou o cancelamento da operaçãoprogress: progresso estimado da operação (0-100%).destination: o nome do bucket do Cloud Storage para o qual a operação está copiando as entradas de registro.filter: o filtro que especifica quais entradas de registro serão copiadas.name: o nome do bucket de registros do qual a operação está copiando as entradas de registro.logEntriesCopiedCount: o número de entradas de registro copiadas com sucesso para o bucket do Cloud Storage pela operação.
Observe que nem todos os campos de metadados listados se aplicam a todas as operações de cópia.
Por exemplo, se uma operação de cópia ainda estiver em execução, os metadados endTime não serão aplicados à operação. Outro exemplo: se a
--log-filter=FILTER flag não tiver sido usada ao executar o
gcloud logging copy comando, os filter metadados não serão aplicados
à operação.
Para recuperar informações sobre uma operação de cópia, execute o seguinte comando:
gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Antes de executar o comando anterior, faça o seguinte:
- Substitua OPERATION_ID pelo ID da operação.
- Substitua LOCATION pelo local do bucket de registros do qual você está copiando de.
- Substitua PROJECT_ID pelo Google Cloud ID do projeto.
O comando retorna metadados sobre a operação de cópia. Por exemplo, veja um resultado para uma operação em andamento:
done: false
metadata:
`@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
progress: 75
destination: storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME
source: projects/PROJECT_ID/locations/LOCATION/buckets/LOG_BUCKET_ID
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Cancelar uma operação de cópia
Você pode cancelar uma operação de cópia em andamento. Se você cancelar uma operação de cópia, todas as entradas de registro que foram copiadas antes da operação ser cancelada permanecerão no bucket do Cloud Storage.
Depois de cancelar uma operação de cópia, o Logging conclui todos os processos em andamento antes de concluir o cancelamento. Isso pode resultar em algumas entradas de registro ainda sendo copiadas para o Cloud Storage depois que você cancelar a operação.
Para cancelar uma operação de cópia, execute o seguinte comando:
gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Antes de executar o comando anterior, faça o seguinte:
- Substitua OPERATION_ID pelo ID da operação.
- Substitua LOCATION pelo local do bucket de registros do qual você está copiando de.
- Substitua PROJECT_ID pelo Google Cloud ID do projeto.
Visualizar entradas de registro no Cloud Storage
Para informações sobre como visualizar e entender as entradas de registro que você copiou para o Cloud Storage, consulte Visualizar entradas de registro roteadas para o Cloud Storage.
Cotas e limites
Todas as operações de cópia levam pelo menos uma hora para serem concluídas, independentemente da quantidade de dados que está sendo copiada.
Para copiar um volume grande, por exemplo, petabytes, divida a cópia em várias operações de cópia usando o campo timestamp na flag --log-filter.
O comando de cópia não pode copiar entradas de registro cuja retenção expirou.
Solução de problemas
Esta seção descreve como solucionar erros ao copiar entradas de registro.
Falha ao gravar dados de exportação
Ao visualizar o status de uma operação de cópia usando gcloud logging operations describe, a operação poderá mostrar o seguinte erro:
done: true
error:
code: 7
message: Failed to write export data to the destination Cloud Storage bucket.
Esse erro ocorre quando o Logging não consegue gravar ou finalizar arquivos de registro no bucket de destino do Cloud Storage. A gravação de arquivos exportados durante a operação pode falhar por vários motivos:
- Um perímetro de serviço do VPC Service Controls bloqueia solicitações para o bucket de destino do Cloud Storage.
- As permissões do IAM da conta que iniciou a operação de cópia foram modificadas ou revogadas enquanto a operação estava em execução.
- A operação de cópia foi executada por tempo suficiente para que as credenciais de autorização expirassem.
- O bucket de destino do Cloud Storage usa CMEK, e a chave do Cloud Key Management Service está desativada ou o agente de serviço do Cloud Storage não tem permissões de criptografia.
- Uma nova tentativa de gravação tenta substituir um arquivo existente que não pode ser substituído. Por exemplo, se um lote de exportação for repetido após um atraso temporário ou se uma operação de cópia for reiniciada, a nova tentativa poderá tentar substituir um arquivo que já foi criado. Se esse arquivo estiver protegido por uma retenção de objeto ativa ou uma política de retenção bloqueada, o Cloud Storage rejeitará a substituição.
- O bucket de destino foi excluído, entrou em um estado bloqueado ou o projeto excedeu a cota de recursos.
Para resolver esse problema, faça o seguinte:
Analisar o VPC Service Controls:se a organização usa o VPC Service Controls, analise os Registros de auditoria do Cloud para negações de perímetro (
cloudaudit.googleapis.com/data_access). O perímetro do bucket do Cloud Storage de destino precisa permitir o acesso do projeto que executa a operação de cópia ou configurar uma regra de entrada e saída.Verificar os papéis do IAM do bucket de destino: A conta que iniciou a operação de cópia precisa ter o papel de criador de objetos do Storage (
roles/storage.objectCreator) no bucket de destino.Verificar as chaves de criptografia gerenciadas pelo cliente (CMEK): se o bucket de destino usa CMEK para criptografia padrão, verifique se a chave do Cloud KMS está ativada e se o agente de serviço do Cloud Storage tem o papel de criptografador/descriptografador do CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave.Dividir operações de cópia grandes em intervalos de tempo mais curtos:para evitar tempos limite ou expiração de credenciais ao copiar grandes volumes de entradas de registro, divida a operação em lotes menores. Para dividir as entradas de registro em lotes, use o campo
timestampna flag--log-filter.Verificar se não há retenções de objetos ou conflitos de retenção: verifique se o bucket de destino não contém objetos no caminho de destino que estão protegidos por uma retenção de objeto ativa ou uma política de retenção bloqueada.
Preços
Para informações sobre preços, consulte a página de preços do Google Cloud Observability. Se você rotear dados de registro para outros Google Cloud serviços, consulte os seguintes documentos: