Ingesta datos directamente de Google Cloud Storage en Elastic con Google Dataflow

blog-thumb-cloud-gcp.png

Hoy nos complace anunciar el soporte para la ingesta de datos directa de Google Cloud Storage (GCS) en el Elastic Stack con Google Dataflow. Ahora, los desarrolladores, ingenieros de confiabilidad del sitio (SRE) y analistas de seguridad pueden ingestar datos de GCS en el Elastic Stack con solo unos clics en Google Cloud Console.

Muchos desarrolladores, SRE y analistas de seguridad usan GCS para almacenar logs y eventos generados en las aplicaciones e infraestructura de Google Cloud y usan el Elastic Stack para solucionar problemas, monitorear o buscar anomalías de seguridad en dichas aplicaciones e infraestructura. Para mejorar la experiencia de ambas soluciones, Google y Elastic trabajaron juntos con el objetivo de proporcionar una forma fácil de usar y de baja fricción para ingestar en el Elastic Stack logs y eventos almacenados en GCS. Esto te permite simplificar tu arquitectura de pipeline de datos, eliminar gastos operativos y disminuir el tiempo requerido para solucionar problemas; todo con solo unos pocos clics en Google Cloud Console y sin crear un procesador de datos personalizado.

En este blog, veremos cómo dar los primeros pasos con la ingesta de datos sin agente de GCS en el Elastic Stack mediante Google Dataflow.

Optimiza la ingesta de datos de GCS

Google Cloud Storage es una solución de almacenamiento de objetos que suele compararse con Amazon S3 o Azure Blob Storage. GCS habitualmente se usa para backup y archivo de datos, analíticas de datos sin requisitos de transmisión o incluso alojamiento de páginas web y aplicaciones simples a niveles de precios atractivos. Un desarrollador, SRE o analista de seguridad puede decidir almacenar logs y eventos de aplicaciones o infraestructura en GCS a modo de backup o archivo. Un usuario de Google Cloud también puede tener un pipeline de datos en el que no todos los datos se ingestan en el Elastic Stack, sino que algunos se almacenan en GCS para su posterior análisis, de ser necesario.

Una vez que los logs y eventos están en GCS, debes decidir el método de ingesta para las soluciones de analíticas de terceros como Elastic. Sería ideal poder ingestar datos directamente de GCS en el Elastic Stack con solo unos clics en Google Cloud Console. Ahora, esto es posible mediante un menú desplegable en Google Dataflow, un producto de procesamiento de datos sin servidor popular basado en Apache Beam. Dataflow envía de forma efectiva los logs y eventos de GCS al Elastic Stack. Actualmente, se admite el formato de archivo CSV, y pronto agregaremos soporte para JSON.

Este es el resumen del flujo de ingesta de datos. La integración funciona para todos los usuarios, sea que uses el Elastic Stack en Elastic Cloud, Elastic Cloud en Google Cloud Marketplace o un entorno autogestionado.

Dataflow
 

Primeros pasos

La mejor manera de demostrar la funcionalidad de ingesta de GCS es con un ejemplo. En el ejemplo siguiente, analizaremos datos de terremotos de USGS, que cataloga un set de datos públicos que brinda información sobre terremotos en tiempo real y estadísticas sísmicas. Usaremos los terremotos de magnitud USGS 2.5+ del mes anterior como un CSV. Aquí mostramos solo las primeras cinco líneas del archivo para que tengas una idea de cómo se ven los datos:

archivo de datos
 

En la página de Dataflow en Google Cloud Console, selecciona GCS to Elasticsearch template (Plantilla de GCS a Elasticsearch). La plantilla crea el esquema del documento JSON con uno de los siguientes:

  1. UDF de Javascript (si se proporciona)
  2. Esquema de JSON (si se proporciona)
  3. Encabezados de CSV* (predeterminado)

Si se proporciona un esquema de JSON o UDF, se usará en lugar de los encabezados de CSV.

organización del cloud
 
En el primer campo del formulario, escribe los parámetros que indican la ubicación de los archivos en GCS. Puedes encontrar la ID del cloud en la UI de Elastic Cloud, como se muestra a continuación. La clave de API se puede crear usando la API de creación de clave de API.
Clave de API
 

En el campo Elasticsearch index (Índice de Elasticsearch), elije un nombre de índice en el que se cargarán tus datos. Por ejemplo, usamos el índice quakes (terremotos).

organización del cloud
 

Haz clic en Run Job (Ejecutar trabajos) para comenzar a ingestar estos datos de terremotos de GCS en Elasticsearch, todo sin salir de Google Cloud Console.

Después, puedes navegar a Kibana, crear un patrón de índice y comenzar a visualizar en minutos:

Kibana
 

Dashboard de ejemplo que muestra la presentación de los datos de terremotos:

mapa de terremotos
 

Resumen

Elastic hace que cada vez sea más fácil para los clientes ejecutar donde desean y usar lo que desean; y esta integración optimizada con Google Cloud es el ejemplo más reciente. Elastic Cloud amplía el valor del Elastic Stack, lo que permite a los clientes hacer más, más rápido, y esto lo convierte en la mejor forma de experimentar nuestra plataforma. Para dar los primeros pasos con Elastic en Google Cloud, visita Google Cloud Marketplace o elastic.co.