on-the-fly etl con efk: elasticsearch, flume, kibana
TRANSCRIPT
![Page 1: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/1.jpg)
Patrocinado por
ElasticSearch, Flume y Kibana
On-the-fly
ETL con EFK:
En Telefónica Flagship Store_
![Page 2: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/2.jpg)
¿Quiénes somos?
Gaspar Muñoz@[email protected]
www.stratio.com@StratioBD
Santiago Mola@[email protected]
![Page 3: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/3.jpg)
¿De qué vamos a hablar?
1 Visión general del stack EFK
¿Por qué Apache Flume?
On-the-fly ETL con Apache Flume
Diseño de un workflow
Casos de uso
EFK in Action
2
3
4
5
6
![Page 4: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/4.jpg)
Patrocinado por
1. Visión general del stack tecnológico1. VISIÓN GENERAL DEL
STACK TECNOLÓGICO EFK
![Page 5: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/5.jpg)
1.1 Visión general del stack tecnológico
E
F
K
Flume permite diseñar y ejecutar workflows ETL con un gran rendimiento, confiabilidad y una puesta en marcha rápida (sin necesidad de programación)
ElasticSearch indexa cualquier documento que le envíes y escala horizontalmente con mucha facilidad.
Kibana permite sacar provecho de los datos indexados, diseñando dashboards en cuestión de minutos.
![Page 6: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/6.jpg)
1.2 Una solución end To end
Plataforma endToEnd para el tratamiento y monitorización en tiempo real de datos estructurados y no estructurados.
Confiable, escalable, flexible y… ¡open source!
E F K
![Page 7: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/7.jpg)
1.3 Componentes
ElasticSearch es un servidor de indexación y búsqueda schema-lesscon grandes capacidades de escalabilidad horizontal.
Schema-less significa que el esquema se puede actualizar sobre la marcha, en función de los documentos indexados.
ElasticSearch puede indexar cada campo de los documentos (full-textsearch) y genera agregaciones y agrupaciones automáticamente.
Registrar un nodo nuevo en el cluster es muy sencillo, con una gestión automática del reparto de los datos y peticiones.
Apache Flume es un sistema para la recolección agregación y transporte de cantidades masivas de información. Distribuido, confiable y flexible.
Su capacidad de adaptación permite trabajar con fuentes de datos heterogéneas y con destinos variados.
Los datos se pueden transformar, parsear, enriquecer o normalizar al vuelo.
También pueden crearse topologías de despliegue sofisticadas, para resolver casos de uso más complejos.
Kibana es el motor de visualización y análisis de ElasticSearch, que permite una interacción nativa con los datos indexados.
Los dashboards de Kibana son fáciles de crear y permiten una exploración de los datos en tiempo real, pero también de históricos.
Su interfaz es muy flexible y potente, con capacidades de análisis que abarcan desde la visualización de widgets hasta el raw data, con drill-down y estadísticas al vuelo de cada dato indexado.
![Page 8: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/8.jpg)
1.4 Logstash, Flume…
¿No es ELK el tridente promovido por ElasticSearch?
![Page 9: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/9.jpg)
Patrocinado por
1. Visión general del stack tecnológico2. EFK, ELK… por qué Flume?
![Page 10: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/10.jpg)
2.1 Alternativas
LogStash y Flume son las dos principales soluciones open source para ETL on-the-fly
Fuente: SemaText: http://blog.sematext.com/2014/10/06/top-5-most-popular-log-shippers/
![Page 11: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/11.jpg)
2.2 ¿Por qué Apache Flume?
Desarrollado en Java
Confiable (garantía de entrega de eventos)
Tolerante a fallos y escalable
Extensible (todos los componentes son pluggables)
Comunidad madura (liberado por Cloudera, ahora en la ASF)
Big data ready
![Page 12: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/12.jpg)
Patrocinado por
1. Visión general del stack tecnológico3. On-the-fly ETL con
![Page 13: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/13.jpg)
3.1 Aproximación a ETL
![Page 14: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/14.jpg)
APACHE FLUME
3.2 Terminología básica de Flume
SOURCE
INTERCEPTOR
SINK
AGENT
![Page 15: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/15.jpg)
3.3 Workflows
El algoritmo que debe ejecutar un agente de Flume recibe el nombre de workflow.
El workflow se define mediante configuración, sin necesidad de programar.
Esta “receta” incluye el uso de sources, interceptors y sinks, combinados para ejecutar una misión.
![Page 16: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/16.jpg)
3.4 Agentes
La unidad mínima de despliegue en Flume son los agentes.
Un agente es, en esencia, un proceso java.
Cada agente es responsable de ejecutar su workflow en el que, como veremos más adelante, se puede conectar un agente con otros agentes para formar topologías.
Un agente también puede recibir datos de uno o más agentes.
Agent 1 Agent 2
![Page 17: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/17.jpg)
3.5 Sources
Los componentes responsables de recibir datos en Flume se denominan “sources”.
Los datos pueden llegar bien desde un productor externo (snmp, log4j, jms, rest, syslog...), o bien desde otro agente (avro, rpc, jms, kafka...).
La misión principal de un source es la de recibir los datos y escribir en el “channel” definido.
Cada dato recibido en el source se emitecomo un evento en Flume (compuesto de body y headers)
exec
spooling
SNMP
![Page 18: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/18.jpg)
3.6 Sinks
Los sinks son los components encargadosde drenar los channels y escribir esosdatos a un destino.
Los sinks hacen un poll contínuo a los channel y extrae eventos en batches.
Los sinks son totalmente transaccionales.
![Page 19: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/19.jpg)
3.7 Channels
Los channels sirven como buffer intermedio entre los sinks y los sources.
Permiten desacoplar el productor del consumidor, ajustando lasvelocidades de procesamientomediante absorción de lasdiferencias.
Pueden ser volátiles (memoria) o persistentes (disco)
![Page 20: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/20.jpg)
3.8 Interceptors
Los interceptores se sitúan entre un source y un channel.
Permiten transformar o eliminarlos eventos que pasen entre esosdos componentes.
Los interceptors puedenencadenarse para apilaroperaciones sobre los eventos.
Se pueden programar tambiéncustom interceptors.
![Page 21: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/21.jpg)
3.9 KiteSDK: Morhplines
Como parte del KiteSDK liberado por Cloudera, los morphlines son un framework extensible de
transformaciones.
![Page 22: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/22.jpg)
3.10 Full Flume workflow
![Page 23: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/23.jpg)
3.11 Principales herramientas
![Page 24: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/24.jpg)
3.12 Topologías de despliegue
![Page 25: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/25.jpg)
Patrocinado por
1. Visión general del stack tecnológico4. Diseño de un workflow
![Page 26: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/26.jpg)
4.1 Visión general
![Page 27: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/27.jpg)
4.2 Flume workflow
#Define components
a.sources=src
a.sinks=snk
a.channels=chan
# Define a channel
a.channels.chan.type=file
a.channels.chan.checkpointDir=data/chan/check/
a.channels.chan.dataDirs=data/chan/data/
a.channels.chan.capacity=1000000
a.channels.chan.transactionCapacity=10000
a.channels.chan.checkpointInterval=300000
![Page 28: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/28.jpg)
4.3 Flume workflow
# Define a source
a.sources.src.type=spoolDir
a.sources.src.spoolDir=data/spooldir
a.sources.src.fileHeader=true
a.sources.src.batchSize=100
a.sources.src.deserializer=LINE
a.sources.src.deserializer.decodeErrorPolicy=REPLACE
# Define an interceptor (optional)
a.sources.src.interceptors=morphline => link
a.sources.src.interceptors.morphline.type=org.apache.flume.sink.solr.morphline.Mor
phlineInterceptor$Builder
a.sources.src.interceptors.morphline.morphlineFile=conf/morphline-
elasticsearch.conf
a.sources.src.interceptors.morphline.morphlineId=morphline1
![Page 29: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/29.jpg)
4.4 Flume workflow
# Define a sink
a.sinks.snk.type=org.apache.flume.sink.elasticsearch.ElasticSearchSink
a.sinks.snk.batchSize=1000
a.sinks.snk.indexName=flume_wikipedia_demo
a.sinks.snk.hostNames=127.0.0.1:9300
a.sinks.snk.clusterName=elasticsearch
a.sinks.snk.serializer=com.stratio.ingestion.serializer.elasticsearch.ElasticSearc
hSerializerWithMapping
a.sinks.snk.serializer.mappingFile=conf/elasticsearch_mapping.json
# Bind channel with components
a.sources.src.channels=chan
a.sinks.snk.channel=chan
![Page 30: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/30.jpg)
4.5 Integración Flume _ES
Flume provee un sink de ElasticSearch.
Características:● Rolling Index. Índice cada día. ● Parametrización de ttl, batch.● Serializador custom.
https://flume.apache.org/FlumeUserGuide.html#elasticsearchsink
![Page 31: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/31.jpg)
4.6 Integración Flume -ES
¿Problema? Cuando se crean nuevos índices cada día se utiliza un mapping por defecto.
Solución: Serializador custom, con mapping de tipos.
agent.sinks.essink.serializer=com.stratio.ingestion.serializer.elasticsearch.ElasticSearchSerializerWithMapping
{
"properties" : {
"@timestamp": { "type": "date", "store": true },
"proj_lang": { "type": "string", "index": "not_analyzed" },
"title": { "type": "string", "index": "not_analyzed", "store": true },
"reqs": { "type": "integer", "store": true },
"size": { "type": "integer", "store": false, "index": "no" },
"timestamp": { "type": "date" }
},
"_source": { "enabled": true },
"_all": { "enabled": false }
}
![Page 32: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/32.jpg)
4.7 Flume workflow
# Define a sink
a.sinks.snk.type=org.apache.flume.sink.elasticsearch.ElasticSearchSink
a.sinks.snk.batchSize=1000
a.sinks.snk.indexName=flume_wikipedia_demo
a.sinks.snk.hostNames=127.0.0.1:9300
a.sinks.snk.clusterName=elasticsearch
a.sinks.snk.serializer=com.stratio.ingestion.serializer.elasticsearch.ElasticSearc
hSerializerWithMapping
a.sinks.snk.serializer.mappingFile=conf/elasticsearch_mapping.json
# Bind channel with components
a.sources.src.channels=chan
a.sinks.snk.channel=chan
![Page 33: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/33.jpg)
Patrocinado por
1. Visión general del stack tecnológico5. Casos de uso
![Page 34: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/34.jpg)
5.1 Casos de uso: SIEM
![Page 35: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/35.jpg)
5.2 Casos de uso: SIEM (ii)
![Page 36: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/36.jpg)
5.3 Casos de uso: SIEM (iii)
![Page 37: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/37.jpg)
5.4 Caso de uso: Complex Event Processing
Stratio Streaming es el fruto de la conjunciónentre la potencia de Spark Streaming comoframework de computación continua y Siddhi CEP como motor de procesado de eventoscomplejos.
![Page 38: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/38.jpg)
5.5 Caso de uso: Complex Event Processing
![Page 39: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/39.jpg)
Patrocinado por
1. Visión general del stack tecnológico6. EFK in action
![Page 40: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/40.jpg)
6.1 Stratio Ingestion
● https://github.com/Stratio/flume-ingestion
● Ejemplos en el directorio “examples”, con instrucciones incluidas.
![Page 41: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/41.jpg)
Patrocinado por
1. Visión general del stack tecnológico
![Page 42: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/42.jpg)
Patrocinado por
1. Visión general del stack tecnológicoSiguientes Meetups
![Page 43: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/43.jpg)
● Temas sugeridos
o ElasticSearch Avanzado:
Agregaciones, GeoSearch,
Backups
o Optimización y
monitorización
o ¿Otros?
● Próxima fecha: 2015
Próximos meetups de ElasticSearch
![Page 44: On-the-fly ETL con EFK: ElasticSearch, Flume, Kibana](https://reader034.vdocuments.us/reader034/viewer/2022042514/55a200d91a28ab911b8b4654/html5/thumbnails/44.jpg)
Patrocinado por
We’re hiring!
http://bit.ly/1I3hDVM
Encuesta
Gracias ☺