Agrupar e rotear registros retroativamente

Esta página descreve como copiar manualmente as entradas de registro que já estão armazenadas em buckets do Cloud Logging para buckets do Cloud Storage. Uma operação de cópia não exige que o bucket de registros e o bucket do Cloud Storage estejam no mesmo projeto do Google Cloud.

É recomendável copiar as entradas de registro dos buckets de registro para os buckets do Cloud Storage pelos seguintes motivos:

  • Caso tenha esquecido de rotear entradas de registro para o Cloud Storage antes do armazenamento no Logging.
  • Para compartilhar entradas de registro com auditores fora do Logging.
  • Para analisar entradas de registro com scripts no Cloud Storage.

Quando você copia as entradas de registro para o Cloud Storage, elas também permanecem no bucket de registro em que foram copiadas.

As operações de cópia não substituem os coletores, que enviam automaticamente todas as entradas de registro de entrada que correspondem aos filtros de inclusão e exclusão para um destino de armazenamento compatível pré-selecionado, incluindo buckets do Cloud Storage. Use coletores quando souber que quer armazenar entradas de registro em um bucket do Cloud Storage.

Para copiar os registros e gerenciar e monitorar a operação, use a Google Cloud CLI.

Limitações

As seguintes limitações são aplicadas ao copiar entradas de registro:

  • Só é possível copiar registros para buckets do Cloud Storage. Outros destinos não estão disponíveis.

  • Não é possível copiar registros de buckets de registro com a CMEK configurada.

Antes de começar

Antes de começar a copiar registros, faça o seguinte:

  • 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 de onde você está copiando:

  • 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 registro 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 que você está copiando. Para extrair o ID do bucket de registros e o local dele, use o comando gcloud logging buckets list da CLI gcloud.
  • O nome do bucket do Cloud Storage para o qual você está copiando. Para saber 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 comando gcloud logging copy:

gcloud logging copy 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 BUCKET_ID pelo nome do bucket de registros.
  • Substitua CLOUD_STORAGE_BUCKET_NAME pelo nome do bucket do seu Cloud Storage.
  • Substitua LOCATION pelo local do bucket de registros.
  • (Opcional) Substitua FILTER pelo filtro que define quais registros são copiados.

    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 ID do projeto do Google Cloud. É possível omitir essa flag quando a configuração ativa da CLI gcloud estiver definida para o projeto correto do 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 registro:

name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

O local da operação de cópia é o mesmo do bucket de registro de onde você está copiando.

Ver e gerenciar operações de cópia

É possível visualizar e gerenciar suas operações de cópia usando os comandos gcloud logging operations, 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 saber como encontrar o local do bucket de registros, consulte Conferir 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 que você está copiando.
  • Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

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ção
  • progress: progresso estimado da operação (0 a 100%).
  • destination: o nome do bucket do Cloud Storage para o qual a operação está copiando os registros.
  • 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 os registros.
  • 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 sinalização --log-filter=FILTER não tiver sido usada ao executar o comando gcloud logging copy, os metadados filter não se aplicarão à 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 que você está copiando.
  • Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

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/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>

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 que você está copiando.
  • Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

Ver registros no Cloud Storage

Para conferir e entender os registros copiados para o Cloud Storage, consulte Acessar registros roteados para o Cloud Storage.

Cotas e limites

Todas as operações de cópia levam pelo menos uma hora para serem concluídas, não importa a quantidade de dados que estão sendo copiados.

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 sinalização --filter.

O comando de cópia não pode copiar entradas de registro com retenção expirada.

Preços

O Cloud Logging não cobra pelo encaminhamento de registros para um destino compatível. No entanto, o destino pode aplicar cobranças. Com exceção do bucket de registros _Required, o Cloud Logging cobra para transmitir registros em buckets de registro e para armazenamento por mais tempo do que o período de armazenamento padrão do bucket de registros.

O Cloud Logging não cobra pela cópia de registros, pela definição de escopos de registro ou por consultas emitidas nas páginas Explorer de registros ou Análise de dados de registros.

Para mais informações, consulte estes documentos: