logoImagina
iconCurso
Te recomendamos nuestro curso de ELK
Descubre el curso de ELK
Ir al curso

Tutorial de ELK (Elasticsearch, Logstash y Kibana)

iconImage
Escrito por Equipo de Imagina
Actualizado el 03-07-2024
Duración: 30 min

¡Bienvenido al emocionante mundo de Elk! Si estás interesado en aprender cómo aprovechar al máximo esta poderosa plataforma de análisis de registros y búsqueda en tiempo real, has llegado al lugar correcto. En este tutorial de primeros pasos de Elk, te guiaremos a través de los fundamentos de la configuración y el uso de Elk para gestionar y analizar tus registros de manera eficiente.

Hombre usando ELK Stack

¿Qué es ELK?

ELK es un acrónimo que se refiere al conjunto de tres herramientas de código abierto: Elasticsearch, Logstash y Kibana. Juntas, estas herramientas proporcionan una solución integrada para la búsqueda, el análisis y la visualización de datos en tiempo real. A continuación, veremos cada componente del stack ELK:

Elasticsearch

Elasticsearch es un motor de búsqueda y análisis distribuido, diseñado para facilitar consultas complejas en grandes volúmenes de datos en tiempo real. Su arquitectura distribuida permite una escalabilidad excepcional, haciendo posible trabajar con petabytes de información. A través de Elasticsearch, podemos indexar cualquier tipo de dato heterogéneo y buscar en ellos con una latencia mínima. Está construido en Java lo que permite que se utilice en diferentes plataformas. Entre sus características destacan:

  • Escalabilidad horizontal: Elasticsearch puede manejar petabytes de datos distribuidos a través de muchos nodos sin comprometer la velocidad de operación.
  • Búsqueda en tiempo real: Proporciona resultados de búsqueda en milisegundos, lo que es esencial para aplicaciones que dependen de datos en tiempo real.
  • Diversidad de datos: Soporta diversos tipos de datos, incluyendo texto, numéricos, geoespaciales, estructurados y no estructurados.
  • Alta disponibilidad: Su arquitectura tolerante a fallos garantiza que el sistema se mantenga operativo incluso si algunos nodos fallan.

Elaticsearch se puede descargar desde la página oficial de Elasticsearch y ejecutar en diferentes sistemas operativos.

Logstash

Logstash es un procesador de datos capaz de recoger, transformar y enviar datos a un "stash" como Elasticsearch. Es extremadamente útil en la ingesta de datos, especialmente cuando provienen de múltiples fuentes y formatos, proporcionando una amplia variedad de input plugins para facilitar este proceso. Logstash permite transformar los datos antes de almacenarlos, lo cual es crucial para asegurar que el formato de los datos sea el adecuado para su análisis posterior.

Entre sus características principales destacan:

  • Flexibilidad en la recolección de datos: Logstash puede recibir datos de múltiples fuentes simultáneamente, adaptándose a casi cualquier tipo de entrada de datos.
  • Filtrado y transformación poderosos: A través de su variedad de filtros, Logstash permite modificar y transformar los datos antes de enviarlos a su destino final, lo que facilita la adaptación de los datos a las necesidades específicas de almacenamiento y análisis.
  • Pluriformidad en la salida de datos: Logstash no sólo se limita a enviar datos a Elasticsearch, sino que también puede exportarlos a otros destinos, ofreciendo una gran versatilidad en la gestión de salidas.

La instalación de Logstash es sencilla y directa, similar al de Elasticsearch, solo debes descargarlo desde la página oficial de Logstash.

Kibana

Kibana actúa como la ventana visual a los datos almacenados en Elasticsearch. Ofrece capacidades de visualización de datos avanzadas y la habilidad de crear dashboards personalizados que facilitan la interpretación de los datos. Kibana permite a los usuarios explorar, analizar y visualizar datos utilizando gráficos, mapas y tablas. Entre sus características más destacadas se incluyen:

  • Visualización de datos en tiempo real: Kibana permite crear gráficos y mapas en tiempo real, lo que facilita el seguimiento de eventos y tendencias a medida que ocurren.
  • Dashboards personalizables: Los usuarios pueden crear y compartir dashboards que contienen diversas visualizaciones, adaptados a sus necesidades específicas.
  • Integración con Elasticsearch: Kibana se integra perfectamente con Elasticsearch, permitiendo realizar consultas complejas y recibir respuestas en tiempo real.
  • Gestión avanzada de datos: Incluye herramientas para realizar ajustes detallados, como la manipulación de la fecha y hora, filtros y consultas avanzadas.

Instalar Kibana es un proceso directo que usualmente sólo requiere descargar el paquete adecuado para tu sistema operativo y ejecutarlo.

¿Cómo instalar ELK?

Antes de nada debemos tener el JDK de Java, una vez lo hayamos instalado comprobamos que todo haya ido bien en la instalación, utilizaremos el comando:

1java -version

Que nos devolverá algo como esto:

1java version "1.8.0_201" 2 3Java(TM) SE Runtime Environment (build 1.8.0_201-b09) 4 5Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Ahora ya podemos descargamos los archivos Elasticsearch, Kibana y Logstash. Luego los descomprimimos donde queramos.

También nos vamos a descargar un servidor apache del cual recibir los logs, en nuestro caso será Xampp. Esto es tan fácil como descargarlo y utilizar el instalador.

Para iniciar Elasticsearch tenemos que iniciar la consola en el directorio en el que lo hayamos descomprimido y utilizar el comando:

1binelasticsearch

Y para iniciar Kibana hay que realizar el mismo procedimiento, abrir otra consola en el directorio en el que fue descomprimido y ejecutar el comando:

1binkibana

Ahora podemos acceder a http// localhost:5601/ para ver Kibana, pero nos dirá que no tiene ningún dato, así que ahora es turno de configurar Logstash.

Configurar Logstash

Logstash necesita que configuremos que tipo de datos, así como las direcciones de entrada y salida.

Para esto crearemos un archivo llamado logstash.conf dentro del directorio descomprimido de Logstash.

En este archivo añadimos el siguiente código:

1input { 2 3file { 4 path => "/xampp/apache/logs/access.log" 5 type => "apache_access" 6 start_position => "beginning" 7 } 8 9file { 10 path => "/xampp/apache/logs/error.log" 11 type => "apache_error" 12 start_position => "beginning" 13 } 14} 15 16filter { 17 if [type] in [ "apache" , "apache_access" , "apache-access" ] { 18 grok { 19 match => [ 20 "message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}", 21 "message" , "%{COMMONAPACHELOG}+%{GREEDYDATA:extra_fields" 22 ] 23 overwrite => [ "message" ] 24 } 25 26 mutate { 27 convert => ["response", "integer"] 28 convert => ["bytes", "integer"] 29 convert => ["responsetime", "float"] 30 } 31 32 geoip { 33 source => "clientip" 34 target => "geoip" 35 add_tag => [ "apache-geoip" ] 36 } 37 38 date { 39 match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ] 40 remove_field => [ "timestamp" ] 41 } 42 43 useragent { 44 source => "agent" 45 } 46 } 47 48 if [type] in ["apache_error","apache-error"] { 49 grok { 50 match => ["message", 51 "[%{WORD:dayname} %{WORD:month} %{DATA:day} %{DATA:hour}:%{DATA:minute}:%{DATA:second} %{YEAR:year}] [%{NOTSPACE:loglevel}] 52 (?:[client %{IPORHOST:clientip}] ){0,1}%{GREEDYDATA:message}" 53 ] 54 overwrite => [ "message" ] 55 } 56 57 mutate 58 { 59 add_field => 60 { 61 "time_stamp" => "%{day}/%{month}/%{year}:%{hour}:%{minute}:%{second}" 62 } 63 } 64 65 date { 66 match => ["time_stamp", "dd/MMM/YYYY:HH:mm:ss"] 67 remove_field => [ "time_stamp","day","dayname","month","hour","minute","second","year"] 68 } 69 } 70} 71 72output { 73 74 elasticsearch { 75 hosts => "localhost:9200" 76 index => "apache" 77 } 78 79 stdout{codec => rubydebug} 80}

Este código está dividido en tres partes, la ruta de entrada de los archivos, que es el apartado input, con las rutas de los logs de petición y error de Apache en Xampp.

La segunda parte consiste en el filtrado por tipo de archivo y el formateo de datos para poderlos leer fácilmente.

Y la última corresponde a la salida de los datos, que en este caso es Elasticsearch, pasandole el puerto en el que se ejecuta y el nombre de los datos que le pasamos.

Una vez hecho esto ya podemos abrir otra consola en la carpeta en la que descomprimimos Logstash y utilizamos el comando:

1binlogstash -f logstash.conf -t

Con este comando comprobamos que la configuración que hemos realizado no contenga ningún fallo sintáctico, si es así nos devolverá un mensaje como este indicando que todo está bien:

1[2019-05-02T13:18:31,637][INFO ][logstash.runner          ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

Ahora que hemos comprobado que la configuración no tiene ningún fallo ya solo nos queda iniciar Logstash con el comando:

1binlogstash -f logstash.conf
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *

Interfaz Kibana

A continuación, con todo preparado ya volvemos a la url de Kibana, http//localhost:5601/, y nos preguntara qué datos queremos filtrar, dándole como valor el index que le pasamos en la configuración de Logstash, en nuestro caso apache:

Interfaz de Kibana, con la configuración de Apache

Después elegimos el filtro de tiempo por el que queremos que se ordenen y ya tendríamos acceso a nuestros logs en Kibana:

Filtro de tiempo @timestamp en kibana

Ahora nos aparecerán todos los datos a los que podríamos acceder en nuestros logs. Así que le daremos al botón Discover para ver el aspecto de nuestros logs:

Botón Discover en la barra lateral izquierda de Kibana

Ahora intentaremos realizar una gráfica según si son error o petición, por lo que le daremos al botón Visualice:

Botón Visualice en la barra lateral izquierda de Kibana

Aquí, elegimos que tipo de visualización queremos que sea, eligiendo una de Barras Verticales:

Tipo de visualización de barra vertical en Kibana

Después  le indicamos que el eje X tiene que ser type.keyword y añadimos una separación por tiempo:

Diferentes opciones de visualización en Kibana

Ahora tenemos que hacer que los cambios se trasladen al gráfico y después guardarlo con Save:

Guardar cambios Kibana

Ya tenemos nuestro primer gráfico realizado utilizando Elasticsearch, Logstash y Kibana. Para acabar lo importamos a una herramienta para poder todos nuestros gráficos en conjunto. Para esto utilizamos Dashboard:

Botón Dashboard en la barra lateral izquierda de Kibana

Le indicamos Create a new Dashboard y luego pulsamos add para indicarle el gráfico que hemos creado. Después de configurarlo tenemos que guardas el nuevo Dashboard.

Con esto hemos conseguido crear nuestra primera interacción con ELK, Elasticsearch, Logstash y Kibana.

¿Para qué sirve ELK Stack?

ELK Stack es una plataforma de análisis de datos y visualización que se utiliza en una variedad de aplicaciones en diversas industrias. Aquí exploramos algunos de los principales usos de ELK:

Monitoreo de logs y análisis de eventos

ELK es ampliamente utilizado para el monitoreo de logs y análisis de eventos en tiempo real. Logstash recolecta y transforma logs de diferentes fuentes, Elasticsearch los indexa para búsquedas rápidas, y Kibana los visualiza. Esta capacidad es crucial para la administración de sistemas, aplicaciones y redes.

Análisis de seguridad

La capacidad de ELK para analizar grandes volúmenes de datos en tiempo real lo hace ideal para la detección de amenazas y la respuesta a incidentes de seguridad. Las organizaciones utilizan ELK para monitorear patrones inusuales y señales de alerta que podrían indicar una brecha de seguridad.

Inteligencia de negocio (BI)

ELK se utiliza para obtener insights de negocio mediante la recopilación, el procesamiento y la visualización de datos de ventas, clientes y operaciones. Kibana, en particular, ayuda a crear dashboards que proporcionan vistas comprensibles y accionables de los datos empresariales.

Análisis de rendimiento de aplicaciones (APM)

Empresas de tecnología utilizan ELK para monitorear y analizar el rendimiento de sus aplicaciones. Esto incluye el seguimiento de tiempos de respuesta, errores de solicitudes y la salud general del sistema para garantizar una experiencia óptima para el usuario final.

Investigación y desarrollo

Investigadores y científicos de datos usan ELK para manejar grandes sets de datos experimentales y observacionales. La flexibilidad para adaptar los esquemas de datos y la capacidad de manejar consultas complejas hacen de ELK una herramienta poderosa para la exploración de datos científicos y académicos.

Cada uno de estos usos demuestra la versatilidad de ELK Stack, haciéndolo una solución robusta para el manejo de datos y análisis en múltiples contextos.

Beneficios de usar ELK

El uso del ELK Stack trae consigo numerosos beneficios para las organizaciones y equipos técnicos que manejan grandes volúmenes de datos y necesitan realizar análisis en tiempo real. Aquí destacamos los principales beneficios:

  1. Integración y flexibilidad: ELK ofrece una integración perfecta entre sus componentes (Elasticsearch, Logstash y Kibana), lo que permite una gestión eficiente de los datos desde la recogida hasta la visualización. La flexibilidad de Logstash, en particular, permite que se integre con una gran variedad de fuentes de datos, mientras que Elasticsearch puede manejar tipos de datos muy diversos.

  2. Escalabilidad: Dada su arquitectura distribuida, Elasticsearch es altamente escalable, lo que permite a las empresas ajustar los recursos según sus necesidades sin degradar el rendimiento. Esta capacidad es esencial para manejar picos de datos o el crecimiento del volumen de datos sin problemas.

  3. Capacidad de búsqueda en tiempo real: Elasticsearch ofrece capacidades de búsqueda en tiempo real que son críticas para las aplicaciones que dependen de la actualización instantánea de los datos. Esto es invaluable para los análisis de datos en tiempo real y para las decisiones basadas en datos actualizados.

  4. Visualización de datos: Kibana proporciona herramientas potentes para visualizar datos en formas que son comprensibles y accesibles para los usuarios finales. Esto incluye dashboards personalizables que pueden mostrar datos en tiempo real, facilitando la toma de decisiones y el seguimiento de métricas clave.

  5. Mejora del análisis de datos: Con ELK, los usuarios pueden realizar análisis complejos, lo que les permite descubrir tendencias, patrones y anomalías. La capacidad de realizar búsquedas complejas y agregar datos en tiempo real permite a los usuarios profundizar en los datos de manera que sería difícil o imposible con sistemas menos capaces.

  6. Coste-efectividad: Al ser una solución basada en código abierto, ELK reduce los costos asociados con el software de análisis de datos propietario. Las organizaciones pueden utilizar ELK sin grandes inversiones iniciales en licencias de software, lo que permite una democratización más amplia del análisis de datos avanzados.

Estos beneficios hacen que ELK Stack sea una solución atractiva para empresas de todos los tamaños que buscan mejorar su infraestructura de análisis y gestión de datos.

¿Cómo integrar el ELK Satck?

Integrar Elasticsearch, Logstash y Kibana para formar ELK Stack permite una gestión eficiente de datos y visualizaciones avanzadas. La integración comienza con Logstash enviando datos a Elasticsearch. Por ejemplo, la configuración de Logstash podría especificar Elasticsearch como salida:

1output { 2 elasticsearch { 3 hosts => ["http://localhost:9200"] 4 manage_template => false 5 index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 6 document_type => "%{[@metadata][type]}" 7 } 8}

Después de que Elasticsearch almacene los datos, Kibana puede ser usada para visualizarlos. Kibana se conecta a Elasticsearch como se especifica en su archivo de configuración kibana.yml:

1elasticsearch.hosts: ["http://localhost:9200"]

Casos de uso

El stack ELK puede ser utilizado en diversos escenarios. A continuación, se presentan algunos ejemplos prácticos:

  • Monitoreo de logs de servidores: Configura Logstash para recoger y procesar logs de servidores, envía estos datos a Elasticsearch y utiliza Kibana para visualizar y monitorear estos logs en tiempo real.
  • Análisis de tráfico web: Usa Logstash para procesar datos de tráfico web, almacénalos en Elasticsearch, y configura dashboards en Kibana para analizar patrones de tráfico, picos de visitas, y comportamiento de usuarios.

Gestión y mantenimiento del stack ELK

Mantener el stack ELK requiere atención regular para asegurar su eficiencia y estabilidad. Algunas prácticas recomendadas incluyen:

  • Monitoreo del rendimiento: Utiliza herramientas como Elastic Stack Monitoring para supervisar la salud y el rendimiento de Elasticsearch, Logstash y Kibana.
  • Actualizaciones regulares: Mantén todos los componentes del stack ELK actualizados para aprovechar las mejoras de rendimiento y seguridad.
  • Gestión de la configuración: Usa herramientas como Ansible, Chef o Puppet para manejar las configuraciones de manera consistente y reproducible a lo largo de todos los entornos de despliegue.

Implementando estas integraciones y prácticas, puedes maximizar la efectividad y eficiencia del stack ELK en tu organización.

¿Cómo Aprender Todo sobre ELK?

A lo largo de este tutorial, hemos explorado las capacidades y características fundamentales de Elasticsearch, Logstash y Kibana, componentes esenciales del ELK Stack. Hemos visto cómo la integración de estos elementos puede facilitar la recopilación, análisis y visualización de grandes volúmenes de datos en tiempo real, lo que resulta esencial para la toma de decisiones informadas y la mejora continua en un entorno empresarial.

Si deseas profundizar aún más en ELK y convertirte en un experto en la implementación y manejo de esta poderosa herramienta, te recomendamos inscribirte en nuestro curso de Elk. Este curso está diseñado para proporcionarte conocimientos prácticos y técnicas avanzadas que te ayudarán a maximizar el potencial del ELK Stack en tus proyectos y carrera profesional.

¡Apúntate y conviértete en un experto de Elk!

Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *
Tutoriales relacionados
Elasticsearch vs MongoDB: ¿Cuál es Mejor?
Guía Comparativa entre Elasticsearch y MongoDB: Guía Completa para entender qué Tecnología de Base de Datos es la más Adecuada para ti
¿Qué es Elasticsearch?: Funciones y Características
Aprende el poder de Elasticsearch: la solución definitiva para la búsqueda y análisis de datos en tiempo real. ¡Optimiza tu rendimiento ahora!
¿Qué es y Cómo Funciona Qlik Sense Cloud?
Aprende cómo Qlik Sense Cloud transforma ventas, inventarios y finanzas con análisis avanzados y visualización de datos en tiempo real.
QlikView vs Qlik Sense ¿Cuál es Mejor?
Descubre las diferencias entre QlikView y Qlik Sense y descubre cual es la mejor opción para tus para tus necesidades de análisis de datos..
Tabla de contenido
¿Qué es ELK?
Elasticsearch
Logstash
Kibana
¿Cómo instalar ELK?
Configurar Logstash
Interfaz Kibana
¿Para qué sirve ELK Stack?
Monitoreo de logs y análisis de eventos
Análisis de seguridad
Inteligencia de negocio (BI)
Análisis de rendimiento de aplicaciones (APM)
Investigación y desarrollo
Beneficios de usar ELK
¿Cómo integrar el ELK Satck?
Casos de uso
Gestión y mantenimiento del stack ELK
¿Cómo Aprender Todo sobre ELK?
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *