Logotipo de Zephyrnet

Entregar registros de Amazon CloudWatch descomprimidos a Amazon S3 y Splunk mediante Amazon Data Firehose | Servicios web de Amazon

Fecha:

Puedes usar Manguera de datos de Amazon para agregar y entregar eventos de registro de sus aplicaciones y servicios capturados en Registros de Amazon CloudWatch para usted Servicio de almacenamiento simple de Amazon (Amazon S3) y destinos de Splunk, para casos de uso como análisis de datos, análisis de seguridad, resolución de problemas de aplicaciones, etc. De forma predeterminada, los CloudWatch Logs se entregan como objetos comprimidos con gzip. Es posible que desee que los datos se descompriman o que los registros se entreguen a Splunk, lo que requiere la entrada de datos descomprimidos, para la supervisión y auditoría de las aplicaciones.

AWS lanzó una función para admitir la descompresión de CloudWatch Logs en Firehose. Con esta nueva característica, puede especificar una opción en Firehose para descomprimir CloudWatch Logs. Ya no es necesario realizar procesamiento adicional utilizando AWS Lambda o posprocesamiento para obtener registros descomprimidos y puede entregar datos descomprimidos a Splunk. Además, puede utilizar funciones opcionales de Firehose, como la conversión de formato de registro para convertir CloudWatch Logs a Parquet u ORC, y la partición dinámica para agrupar automáticamente registros de transmisión según las claves de los datos (por ejemplo, por mes) y entregar los registros agrupados a los correspondientes. Prefijos de Amazon S3.

En esta publicación, analizamos cómo habilitar la función de descompresión para destinos de Splunk y Amazon S3. Comenzamos con Splunk y luego Amazon S3 para nuevas transmisiones, luego abordamos los pasos de migración para aprovechar esta característica y simplificar su canalización existente.

Descomprimir los registros de CloudWatch para Splunk

Puede utilizar el filtro de suscripción en los grupos de registros de CloudWatch para ingerir datos directamente en Firehose o mediante Secuencias de datos de Amazon Kinesis.

Nota: Para la función de descompresión de CloudWatch Logs, necesita un Recopilador de eventos HTTP (HEC) entrada de datos creada en Splunk, con el reconocimiento del indexador habilitado y el tipo de fuente. Esto es necesario para asignar el tipo de fuente correcto para los registros descomprimidos. Al crear la entrada HEC, incluya la asignación del tipo de fuente (por ejemplo, aws:cloudtrail).

Para crear un flujo de entrega de Firehose para la función de descompresión, complete los siguientes pasos:

  1. Proporcione su configuración de destino y seleccione Punto final sin procesar como tipo de punto final.

Puede utilizar un punto final sin formato para que la función de descompresión ingiera datos de eventos sin formato y con formato JSON en Splunk. Por ejemplo, los datos de los registros de flujo de VPC son datos sin procesar y Seguimiento de la nube de AWS Los datos están en formato JSON.

  1. Introduzca el token HEC para token de autenticación.
  2. Para habilitar la función de descompresión, anule la selección Transforme los registros de origen con AWS Lambda bajo Transformar registros.
  3. Seleccione Activar la descompresión y Activar la extracción de mensajes para Descomprimir registros de origen de Amazon CloudWatch Logs.
  4. Seleccione Activar la extracción de mensajes para el destino Splunk.

Función de extracción de mensajes

Después de la descompresión, los CloudWatch Logs están en formato JSON, como se muestra en la siguiente figura. Puede ver que los datos descomprimidos tienen información de metadatos como logGroup, logStreamy subscriptionFilters, y los datos reales se incluyen dentro del message campo bajo logEvents (el siguiente ejemplo muestra un ejemplo de eventos de CloudTrail en CloudWatch Logs).

Cuando habilita la extracción de mensajes, Firehose extraerá solo el contenido de los campos del mensaje y concatenará el contenido con una nueva línea entre ellos, como se muestra en la siguiente figura. Con los metadatos de CloudWatch Logs filtrados con esta función, Splunk analizará con éxito los datos de registro reales y los asignará al tipo de fuente configurado en el token HEC.

Además, si desea entregar estos eventos de CloudWatch a su destino de Splunk en tiempo real, puede usar almacenamiento en búfer cero, una nueva característica que se lanzó recientemente en Firehose. Puede utilizar esta función para configurar 0 segundos como intervalo de búfer o cualquier intervalo de tiempo entre 0 y 60 segundos para entregar datos al destino de Splunk en tiempo real en cuestión de segundos.

Con esta configuración, ahora puede ingerir sin problemas datos de registro de CloudWatch descomprimidos en Splunk usando Firehose.

Descomprima los registros de CloudWatch para Amazon S3

La función de descompresión de CloudWatch Logs para un destino de Amazon S3 funciona de manera similar a Splunk, donde puede desactivar la transformación de datos mediante Lambda y activar las opciones de descompresión y extracción de mensajes. Puede utilizar la función de descompresión para escribir los datos de registro como un archivo de texto en el destino de Amazon S3 o utilizarla con otras funciones de destino de Amazon S3, como la conversión de formato de registro mediante Parquet u ORC, o la partición dinámica para particionar los datos.

Partición dinámica con descompresión.

Para el destino de Amazon S3, Firehose admite la partición dinámica, que le permite particionar continuamente los datos de transmisión mediante el uso de claves dentro de los datos y luego entregar los datos agrupados por estas claves en los prefijos correspondientes de Amazon S3. Esto le permite ejecutar análisis rentables y de alto rendimiento sobre la transmisión de datos en Amazon S3 utilizando servicios como Atenea amazónica, EMR de Amazon, Espectro de Redshift de Amazony Amazon QuickSight. La partición de sus datos minimiza la cantidad de datos escaneados, optimiza el rendimiento y reduce los costos de sus consultas de análisis en Amazon S3.

Con la nueva función de descompresión, puede realizar particiones dinámicas sin ninguna función Lambda para asignar las claves de partición en CloudWatch Logs. Puedes habilitar el Análisis en línea para JSON , escanee los datos de registro descomprimidos y seleccione las claves de partición. La siguiente captura de pantalla muestra un ejemplo en el que el análisis en línea está habilitado para los datos de registro de CloudTrail con un esquema de partición seleccionado para el ID de cuenta y la región de AWS en el registro de CloudTrail.

Conversión de formato de registro con descompresión.

Para los datos de CloudWatch Logs, puede utilizar la función de conversión de formato de registro en datos descomprimidos para el destino de Amazon S3. Firehose puede convertir el formato de datos de entrada de JSON a Parquet Apache or Apache ORCO antes de almacenar los datos en Amazon S3. Parquet y ORC son formatos de datos en columnas que ahorran espacio y permiten consultas más rápidas en comparación con formatos orientados a filas como JSON. Puede utilizar las funciones para la conversión de formato de registro en el Transformar y convertir registros configuración para convertir los datos de registro de CloudWatch al formato Parquet u ORC. La siguiente captura de pantalla muestra un ejemplo de configuración de conversión de formato de registro para el formato Parquet usando un Pegamento AWS esquema y tabla para los datos de registro de CloudTrail. Cuando se configuran los ajustes de partición dinámica, la conversión de formato de registro funciona junto con la partición dinámica para crear los archivos en el formato de salida con una estructura de carpetas de partición en el depósito S3 de destino.

Migrar flujos de entrega existentes para descompresión

Si desea migrar una transmisión de Firehose existente que usa Lambda para descompresión a esta nueva función de descompresión de Firehose, consulte los pasos descritos en Activar y desactivar la descompresión.

Precios

La función de descompresión de Firehose descomprime los datos y cobra por GB de datos descomprimidos. Para comprender los precios de descompresión, consulte Precios de Amazon Data Firehose.

Limpiar

Para evitar incurrir en cargos futuros, elimine los recursos que creó en el siguiente orden:

  1. Elimine el filtro de suscripción de CloudWatch Logs.
  2. Elimine el flujo de entrega de Firehose.
  3. Elimine los cubos de S3.

Conclusión

La función de descompresión y extracción de mensajes de Firehose simplifica la entrega de CloudWatch Logs a destinos de Amazon S3 y Splunk sin requerir ningún desarrollo de código ni procesamiento adicional. Para un destino de Amazon S3, puede utilizar las capacidades de partición dinámica y conversión de Parquet u ORC en datos descomprimidos.

Para obtener más información, consulte los siguientes recursos:


Acerca de los autores

Ranjit Kalidasan es un arquitecto de soluciones senior de Amazon Web Services con sede en Boston, Massachusetts. Es un arquitecto de soluciones de socios que ayuda a los socios ISV de seguridad a crear y comercializar conjuntamente soluciones con AWS. Aporta más de 25 años de experiencia en tecnología de la información ayudando a clientes globales a implementar soluciones complejas de seguridad y análisis. Puedes conectarte con Ranjit en Etiqueta LinkedIn.

Phaneendra Vuliyaragoli es líder de gestión de productos para Amazon Data Firehose en AWS. En este puesto, Phaneendra lidera el producto y la estrategia de comercialización de Amazon Data Firehose.

punto_img

Información más reciente

punto_img