Por lotes y enruta registros de forma retroactiva

En esta página, se describe cómo copiar de forma manual las entradas de registro que ya están almacenadas en buckets de registros de Cloud Logging a buckets de Cloud Storage. Es posible que quieras copiar las entradas de registro de los buckets de registros a los buckets de Cloud Storage por los siguientes motivos:

  • En caso de que hayas olvidado enrutar las entradas de registro a Cloud Storage antes de su almacenamiento en Logging.
  • Compartir entradas de registro con auditores fuera de Logging
  • Analizar entradas de registro con secuencias de comandos en Cloud Storage

Cuando copias entradas de registro en Cloud Storage, las entradas de registro también permanecen en el bucket de registros del que se copiaron.

Las operaciones de copia no reemplazan los receptores, que envían automáticamente todas las entradas de registro entrantes a un destino de almacenamiento compatible preseleccionado, incluidos los buckets de Cloud Storage. Usa receptores cuando sepas que quieres almacenar entradas de registro en un bucket de Cloud Storage.

Para copiar registros y, luego, administrar y supervisar la operación, debes usar Google Cloud CLI.

Limitaciones

Las siguientes limitaciones se aplican cuando se copian entradas de registro:

  • Solo puedes copiar registros en buckets de Cloud Storage. No hay otros destinos disponibles.

  • No puedes copiar registros de buckets de registros que tengan CMEK configuradas.

Antes de comenzar

Antes de comenzar a copiar registros, haz lo siguiente:

  • Si quieres obtener los permisos que necesitas para copiar las entradas de registro de Logging y escribirlas en Cloud Storage, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

  • Si quieres obtener los permisos necesarios para ver y administrar el estado de una operación de copia, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en tu proyecto.

Copiar las entradas de registro

Logging solo copia las entradas de registro que se almacenan en el bucket de registros cuando comienza la operación de copia. Las entradas de registro que se almacenan en buckets de registros después de que comienza la operación de copia no se copian en Cloud Storage.

Para copiar entradas de registro en Cloud Storage, necesitas saber la siguiente información:

  • El ID y la ubicación del bucket de registros desde el que realizas la copia. Para recuperar el ID de bucket de registros y su ubicación, usa el comando gcloud logging buckets list de gcloud CLI.
  • El nombre del bucket de Cloud Storage al que quieres copiar. Si quieres obtener más información para recuperar el nombre del bucket de Cloud Storage, consulta Obtén información del bucket de Cloud Storage.
  • Un filtro para las entradas de registro que deseas copiar.

Para copiar entradas de registro, ejecuta el 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 ejecutar el comando anterior, haz lo siguiente:

  • Reemplaza BUCKET_ID por el nombre de tu bucket de registros.
  • Reemplaza CLOUD_STORAGE_BUCKET_NAME por el nombre de tu depósito de Cloud Storage.
  • Reemplaza LOCATION por la ubicación del bucket de registros.
  • Reemplaza FILTER por el filtro que define qué registros se copian (opcional).

  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Puedes omitir esta marca cuando la configuración activa de gcloud CLI se establezca en el proyecto de Google Cloud correcto.

Comando de ejemplo:

gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2021-03-18T10:00:00.0Z"' \
--project=my-project

Este comando crea una operación de larga duración para ejecutarse en segundo plano y muestra el nombre de la operación de copia y la ubicación del bucket de registros:

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

La ubicación de la operación de copia es la misma que la ubicación del bucket de registros desde el que copias los registros.

Consulta y administra operaciones de copia

Puedes ver y administrar tus operaciones de copia con los comandos gcloud logging operations, que te permiten enumerar, ver y cancelar operaciones.

Los siguientes comandos requieren que especifiques la ubicación de la operación. Usa la ubicación de tu bucket de registros. Para obtener información sobre cómo encontrar la ubicación de tu bucket de registros, consulta Visualiza los detalles de un bucket.

Enumerar operaciones de copia

Puedes enumerar las operaciones de copia recientes, incluidas las operaciones programadas, en ejecución, completadas, con errores y canceladas. Las operaciones de copia recientes aparecen en los resultados hasta 30 días después de la hora de finalización.

Para enumerar las operaciones de copia, ejecuta el siguiente comando:

gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID

Antes de ejecutar el comando anterior, haz lo siguiente:

  • Reemplaza LOCATION por la ubicación del bucket de registros desde el que copias los registros.
  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

El comando muestra información sobre la operación de larga duración, incluido el ID de la operación:

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Consulta el estado de una operación de copia

Puedes recuperar el estado y otros metadatos sobre las operaciones de copia, incluidos los siguientes:

  • startTime: Es la marca de tiempo que indica la creación de la operación.
  • endTime: Es la marca de tiempo que indica la finalización de la operación.
  • state: El estado de la operación (programada, en ejecución, cancelada, con errores o con éxito).
  • cancellation: Indica si el usuario solicitó cancelar la operación.
  • progress: Progreso estimado de la operación (0-100%).
  • destination: Es el nombre del bucket de Cloud Storage en el que la operación copia los registros.
  • filter: Es el filtro que especifica qué entradas de registro se copiarán.
  • name: Es el nombre del bucket de registros desde el que la operación copia registros.
  • logEntriesCopiedCount: Es la cantidad de entradas de registro que la operación copió de forma correcta en el bucket de Cloud Storage.

Ten en cuenta que no todos los campos de metadatos enumerados se aplican a todas las operaciones de copia. Por ejemplo, si una operación de copia aún está en ejecución, los metadatos endtime no se aplicarán a la operación. Como otro ejemplo, si no se usara la marca --log-filter=FILTER cuando se ejecutaba el comando gcloud logging copy, los metadatos filter no se aplicarían a la operación.

Para recuperar información sobre una operación de copia, ejecuta el siguiente comando:

gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Antes de ejecutar el comando anterior, haz lo siguiente:

  • Reemplaza OPERATION_ID por el ID de la operación.
  • Reemplaza LOCATION por la ubicación del bucket de registros desde el que copias los registros.
  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

El comando devuelve metadatos sobre la operación de copia. Por ejemplo, el siguiente es el resultado de una operación que está en curso:

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: `2023-05-23T10:52:40.039751Z`
  state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
   </pre>

Cancela una operación de copia

Puedes cancelar una operación de copia en curso. Si cancelas una operación de copia, todas las entradas de registro que se copiaron antes de que se cancelara la operación permanecen en el bucket de Cloud Storage.

Después de cancelar una operación de copia, Logging completa todos los procesos en curso antes de finalizar la cancelación. Esto puede hacer que algunas entradas de registro se copien en Cloud Storage después de cancelar la operación.

Para cancelar una operación de copia, ejecuta el siguiente comando:

gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Antes de ejecutar el comando anterior, haz lo siguiente:

  • Reemplaza OPERATION_ID por el ID de la operación.
  • Reemplaza LOCATION por la ubicación del bucket de registros desde el que copias los registros.
  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Ver registros en Cloud Storage

Para ver y comprender los registros que copiaste en Cloud Storage, consulta Visualiza los registros enrutados a Cloud Storage.

Cuotas y límites

Todas las operaciones de copia tardan al menos una hora en completarse, sin importar la cantidad de datos que se copien.

Para copiar un volumen grande, por ejemplo, petabytes, divide la copia en varias operaciones de copia mediante el campo timestamp en la marca --filter.

Precios

Cloud Logging no cobra por enrutar los registros a un destino compatible. Sin embargo, el destino puede aplicar cargos. A excepción del bucket de registros _Required, Cloud Logging cobra por transmitir registros a buckets de registros y por el almacenamiento más largo que el período de retención predeterminado del bucket de registros.

Cloud Logging no cobra por la copia de registros ni por las consultas emitidas a través de la página Explorador de registros o la página de Análisis de registros.

Para obtener más información, consulta los siguientes documentos: