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á destinada a ingenieros y desarrolladores, incluidos DevOps, ingenieros de confiabilidad de sitios (SRE) y los investigadores de seguridad, que desean configurar y ejecutar la tarea 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 anteriormente, están organizados 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 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, pueden generarse 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 tu cuota de escritura es más baja que la predeterminada, es posible que la implementación falle.
    • Los registros importados no se incluyen en las métricas basadas en registros, ya que sus marcas de tiempo pertenecen al pasado. Sin embargo, si eliges usar una etiqueta, la marca de tiempo registra la hora 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 registros adicional para investigaciones de incidentes u otras auditorías de eventos pasados. Por ejemplo, te recomendamos analizar las conexiones a tus bases de datos del primer trimestre del año pasado 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 Log Analytics. 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 satisfaga los requisitos de tu organización.

Optimización de costos

El costo de importar registros mediante esta arquitectura de referencia tiene varios factores de contribución.

Usarás los siguientes componentes facturables de Google Cloud:

Ten en cuenta los siguientes factores que podrían aumentar los costos:

  • Duplicación de registros: Para evitar costos adicionales de almacenamiento de registros, no ejecutes el trabajo de importación con la misma configuración varias veces.
  • Almacenamiento en destinos adicionales: Para evitar costos adicionales de almacenamiento de registros, inhabilita las políticas de enrutamiento en el proyecto de destino para evitar el almacenamiento de registros en ubicaciones adicionales o el reenvío de 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 cada día dentro del período es alta, es posible que debas aumentar la cantidad de tareas en la configuración del trabajo de importación. La tarea dividirá el intervalo de tiempo de manera equitativa entre las tareas, por lo que cada tarea procesará una cantidad similar de días del intervalo de forma simultánea. Aumentar la cantidad de tareas puede aumentar los costos de Cloud Run.
  • Clase de almacenamiento: Si la clase de almacenamiento de tu bucket de Cloud Storage no es Standard, como Nearline, Durable Reduced Availability (DRA) o Coldline, es posible que se apliquen 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 las consultas analíticas después de que se implementa 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 registros 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 Consultas de SQL de muestra.

Optimización del rendimiento

Si el volumen de registros que importas supera los límites de capacidad de Cloud Run, es posible que el trabajo agote el tiempo de espera 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.

Implementación

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: