Importa registros desde Cloud Storage a Cloud Logging

Last reviewed 2024-01-02 UTC

En esta arquitectura de referencia, se describe cómo importar a Cloud Logging los registros que se exportaron a Cloud Storage.

Esta arquitectura de referencia está dirigida a ingenieros y desarrolladores, incluidos DevOps, ingenieros de confiabilidad de sitios (SRE) y, también, investigadores de seguridad, que desean configurar y ejecutar el trabajo de importación de registros. En este documento, se supone que estás familiarizado con la ejecución de trabajos de Cloud Run y cómo usar Cloud Storage y Cloud Logging.

Arquitectura

En el siguiente diagrama, se muestra cómo se usan los servicios de Google Cloud en esta arquitectura de referencia:

Diagrama de flujo de trabajo de importación de registros de Cloud Storage a Cloud Logging

Este flujo de trabajo incluye los siguientes componentes:

  • Bucket de Cloud Storage: Contiene los registros exportados con anterioridad que deseas volver a importar a Cloud Logging. Debido a que estos registros se exportaron con anterioridad, se organizan en el formato de exportación esperado.
  • Trabajo de Cloud Run: ejecuta el proceso de importación de registros:
    • Lee los objetos que almacenan entradas de registro de Cloud Storage.
    • Busca los registros exportados para el ID de registro especificado, en el intervalo de tiempo solicitado, según la organización de los registros exportados en el bucket de Cloud Storage.
    • Convierte los objetos en estructuras LogEntry de la API de Cloud Logging. Se agregan varias estructuras LogEntry en lotes para reducir el consumo de cuota de la API de Cloud Logging. La arquitectura maneja los errores de cuota cuando es necesario.
    • Escribe las entradas de registro convertidas en Cloud Logging. Si vuelves a ejecutar el mismo trabajo varias veces, se pueden generar entradas duplicadas. Para obtener más información, consulta Ejecuta el trabajo de importación.
  • Cloud Logging: Transfiere y almacena las entradas de registro convertidas. Las entradas de registro se procesan como se describe en la Descripción general del enrutamiento y el almacenamiento.
    • Se aplican las cuotas y los límites de Logging, incluidos los límites y las cuotas de la API de Cloud Logging, y un período de retención de 30 días. Esta arquitectura de referencia está diseñada para funcionar con las cuotas de escritura predeterminadas, con un mecanismo de reintento básico. Si la cuota de escritura es inferior a la predeterminada, la implementación puede fallar.
    • Los registros importados no se incluyen en las métricas basadas en registros, porque sus marcas de tiempo son anteriores. Sin embargo, si eliges usar una etiqueta, la marca de tiempo registra el tiempo de importación y los registros se incluyen en los datos de la métrica.
  • BigQuery: Usa SQL para ejecutar consultas analíticas en registros importados (opcional). Para importar registros de auditoría desde Cloud Storage, esta arquitectura modifica los IDs de registro; debes tener en cuenta este cambio de nombre cuando consultes los registros importados.

Caso de uso

Puedes elegir implementar esta arquitectura si tu organización requiere un análisis de registro adicional para las investigaciones de incidentes o cualquier otra auditoría de eventos pasados. Por ejemplo, es posible que desees analizar las conexiones a las bases de datos durante el primer trimestre del último año, como parte de una auditoría de acceso a la base de datos.

Alternativas de diseño

En esta sección, se describen alternativas al diseño predeterminado que se muestra en este documento de arquitectura de referencia.

Período de retención y registros importados

Cloud Logging requiere que las entradas de registro entrantes tengan marcas de tiempo que no excedan un período de retención de 30 días. No se almacenan las entradas de registro importadas con marcas de tiempo de más de 30 días a partir de la hora de importación.

Esta arquitectura valida el período establecido en el trabajo de Cloud Run para evitar importar registros de más de 29 días, lo que deja un margen de seguridad de un día.

Para importar registros con más de 29 días, debes realizar los siguientes cambios en el código de implementación y, luego, compilar una nueva imagen de contenedor para usarla en el trabajo de configuración de Cloud Run.

  • Quite la validación de 30 días del período
  • Agrega la marca de tiempo original como una etiqueta de usuario a la entrada de registro
  • Restablece la etiqueta de marca de tiempo de la entrada de registro para permitir que se transfiera con la marca de tiempo actual

Cuando uses esta modificación, debes usar el campo labels en lugar del campo timestamp en tus consultas de registros de estadísticas. Para obtener más información sobre las consultas y los ejemplos de estadísticas de registros, visita Consultas de SQL de muestra.

Consideraciones del diseño

Los siguientes lineamientos pueden ayudarte a desarrollar una arquitectura que cumpla con los requisitos de tu organización.

Optimización de costos

El costo de la importación de registros mediante esta arquitectura de referencia tiene varios factores que contribuyen.

Usa los siguientes componentes facturables de Google Cloud:

Considera los siguientes factores que podrían aumentar los costos:

  • Duplicación de registro: Para evitar costos de almacenamiento de registros adicionales, no ejecutes el trabajo de importación con la misma configuración varias veces.
  • Almacenamiento en destinos adicionales: Para evitar costos de almacenamiento de registros adicionales, inhabilita las políticas de enrutamiento en el proyecto de destino para evitar el almacenamiento de registros en ubicaciones adicionales o reenviar registros a otros destinos, como Pub/Sub o BigQuery
  • CPU y memoria adicionales: Si se agota el tiempo de espera de tu trabajo de importación, es posible que debas aumentar la CPU y la memoria del trabajo de importación en la configuración del trabajo de importación. Aumenta estos valores puede aumentar los costos de Cloud Run.
  • Tareas adicionales: Si la cantidad esperada de registros que se importarán por día dentro del intervalo de tiempo es alto, es posible que debas aumentar la cantidad de tareas en el configuración de trabajo de importación. El trabajo dividirá el intervalo de forma equitativa entre las tareas, por lo que cada tarea procesará una cantidad similar de días de forma simultánea del rango. El aumento de la cantidad de tareas puede aumentar los costos generados de Cloud Run.
  • Clase de almacenamiento: Si la clase de almacenamiento de tu bucket de Cloud Storage no es estándar, como Nearline, Durable Reduced Availability (DRA) o Coldline, es posible que se generen cargos adicionales.
  • Tráfico de datos entre diferentes ubicaciones: Configura el trabajo de importación para que se ejecute en la misma ubicación que el bucket de Cloud Storage desde el que importas los registros. De lo contrario, se podrían generar costos de salida de red.

Para generar una estimación de costos en función del uso previsto, incluidos los trabajos de Cloud Run, usa la calculadora de precios.

Eficiencia operativa

En esta sección, se describen las consideraciones para administrar consultas analíticas después de implementar la solución.

Nombres de registros y consultas

Los registros se almacenan en el proyecto que se define en el campo logName de la entrada de registro. Para importar los registros al proyecto seleccionado, esta arquitectura modifica el campo logName de cada registro importado. Los registros de importación se almacenan en el bucket de registro predeterminado del proyecto seleccionado que tiene el ID de registro imported_logs (a menos que el proyecto tenga una política de enrutamiento de registros que cambie el destino de almacenamiento). El valor original del campo logName se conserva en el campo labels con la clave original_logName.

Debes tener en cuenta la ubicación del valor logName original cuando consultes los registros importados. Para obtener más información sobre las consultas y los ejemplos de estadísticas de registros, visita Ejemplos de consultas de SQL.

Optimización del rendimiento

Si el volumen de registros que importas excede los límites de capacidad de Cloud Run, es posible que se agote el tiempo de espera del trabajo antes de que se complete la importación. Para evitar una importación de datos incompleta, considera aumentar el valor tasks en el trabajo de importación. Aumentar los recursos de CPU y memoria también puede ayudar a mejorar el rendimiento de las tareas cuando aumentas la cantidad de tareas.

Deployment

Para implementar esta arquitectura, consulta Implementa un trabajo para importar registros de Cloud Storage a Cloud Logging.

Pasos siguientes

Colaboradores

Autor: Leonid Yankulin | Ingeniero de Relaciones con Desarrolladores

Otros colaboradores: