Enruta y agrupa registros de forma retroactiva

En esta página, se describe cómo copiar manualmente las entradas de registro que ya se almacenan en los buckets de registro de Cloud Logging a los buckets de Cloud Storage. Una operación de copia no requiere que el bucket de registros y el bucket de Cloud Storage estén en el mismo proyecto de Google Cloud.

Te recomendamos que copies las entradas de registro de los buckets de registro 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.
  • Para compartir entradas de registro con auditores fuera de Logging.
  • Para analizar entradas de registro con secuencias de comandos en Cloud Storage.

Cuando copias entradas de registro a Cloud Storage, estas 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 que coinciden con los filtros de inclusión y exclusión a un destino de almacenamiento compatible preseleccionado, incluidos los buckets de Cloud Storage. Usa sinks 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

Cuando se copian entradas de registro, se aplican las siguientes limitaciones:

  • Solo puedes copiar registros en buckets de Cloud Storage. No están disponibles otros destinos.

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

Antes de comenzar

Antes de comenzar a copiar registros, haz lo siguiente:

  • Para obtener los permisos que necesitas para copiar entradas de registro, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto que contiene el bucket de registros del que copias:

  • Para obtener los permisos que necesitas para escribir entradas de registro en Cloud Storage, pídele a tu administrador que te otorgue el rol de IAM de Creador de objetos de almacenamiento (roles/storage.objectCreator) en el proyecto que contiene el bucket de Cloud Storage.

Copiar las entradas de registro

El registro 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 registro después de que se inicia la operación de copia no se copian en Cloud Storage.

Para copiar entradas de registro a Cloud Storage, debes conocer la siguiente información:

  • El ID y la ubicación del bucket de registros del que copias. Para recuperar el ID de bucket de registros y su ubicación, usa el comando gcloud logging buckets list de gcloud CLI.
  • Es el nombre del bucket de Cloud Storage al que copias los datos. Para obtener información sobre cómo recuperar el nombre del bucket de Cloud Storage, consulta Cómo obtener información del bucket de Cloud Storage.
  • Un filtro para las entradas de registro que quieres 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.
  • Opcional: Reemplaza FILTER por el filtro que define qué registros se copian.

    Si omites la marca --log-filter, todas las entradas de registro del bucket de registros se copian en el bucket de Cloud Storage.

  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud. Puedes omitir esta marca cuando la configuración activa de gcloud CLI se establece 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 > "2024-07-18T10:00:00.0Z"' \
--project=my-project

Este comando crea una operación de larga duración para ejecutar 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 del bucket de registros del que copias.

Cómo ver y administrar 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 Cómo ver los detalles de un bucket.

Cómo enumerar operaciones de copia

Puedes generar una lista de las operaciones de copia recientes, incluidas las operaciones programadas, en ejecución, completadas, fallidas y canceladas. Las operaciones de copia recientes aparecen en los resultados durante un máximo de 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 del que copias.
  • 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, como los siguientes:

  • startTime: La marca de tiempo que indica la creación de la operación.
  • endTime: La marca de tiempo que indica que se completó la operación.
  • state: Es el estado de la operación (programada, en ejecución, cancelada, fallida o correcta).
  • cancellation: Indica si el usuario solicitó cancelar la operación.
  • progress: Es el progreso estimado de la operación (del 0 al 100%).
  • destination: Es el nombre del bucket de Cloud Storage al que la operación copia los registros.
  • filter: Es el filtro que especifica qué entradas de registro se deben copiar.
  • name: Es el nombre del bucket de registros desde el que la operación copia los registros.
  • logEntriesCopiedCount: Es la cantidad de entradas de registro que la operación copió correctamente al bucket de Cloud Storage.

Ten en cuenta que no todos los campos de metadatos enumerados se aplican a cada operación de copia. Por ejemplo, si una operación de copia aún se está ejecutando, los metadatos de endtime no se aplicarán a la operación. Como otro ejemplo, si no se usó la marca --log-filter=FILTER cuando se ejecutó 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 del que copias.
  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

El comando muestra metadatos sobre la operación de copia. Por ejemplo, este es un resultado de una operación 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: `2024-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, el registro completa todos los procesos en curso antes de completar la cancelación. Esto puede provocar que algunas entradas de registro se sigan copiando en Cloud Storage después de que canceles 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 del que copias.
  • Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Cómo ver registros en Cloud Storage

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

Cuotas y límites

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

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

El comando copy no puede copiar entradas de registro cuya retención venció.

Precios

Cloud Logging no cobra por enrutar registros a un destino compatible. Sin embargo, es posible que el destino aplique cargos. Con la excepción del bucket de registros _Required, Cloud Logging cobra por transmitir registros a buckets de registros y almacenarlos durante más tiempo que el período de retención predeterminado del bucket de registros.

Cloud Logging no cobra por copiar registros, definir alcances de registros ni ejecutar consultas a través de las páginas Explorador de registros o Análisis de registros.

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