Montar un laboratorio de pruebas on-premise (en local) con Elastic Search y Kibana, para tratamiento de datos de todo tipo (geoespaciales, log, syslog, eventos, …). Realizaremos el despliegue usando Docker. Realizamos el despliegue tanto en Linux como en Windows con Docker Desktop. Cargamos algunos datos de prueba para hacer filtros.

Requisitos para desplegar laboratorio de pruebas on-premise de Elastick Search y Kibana con Docker

En primer lugar necesitaremos disponer de un equipo con Docker instalado, en el siguiente artículo explicamos cómo instalar Docker en Linux Ubuntu:

Necesitaremos Docker Compose, que podremos instalar con:

Desplegaremos el laboratorio Elastic Workshop en una máquina con Linux Ubuntu, sin modo gráfico. Por supuesto, puede desplegarse en casi cualquier distribución de Linux y de Windows.

Descargar repositorio GitHub de elastic-workshop e iniciar docker

El repositorio de Elastic Workshop se encuentra en:

Desde la consola de Linux, descargaremos el repositorio de Elastic Workshop de GitHub, primero accederemos a la carpeta /opt:

Y descargaremos (clonaremos) el repositorio de GitHub, con el comando:

Si no tenemos el comando git lo instalaremos con: apt install git

Descargar repositorio GitHub de elastic-workshop e iniciar docker

Accederemos a la carpeta de elastic-workshop:

Y entraremos en la subcarpeta lab:

Ejecutaremos el siguiente comando para desplegar el Docker:

Descargar repositorio GitHub de elastic-workshop e iniciar docker

Lanzaremos los servicios con el comando:

Descargar repositorio GitHub de elastic-workshop e iniciar docker

Establecemos los logs de Kibana con:

Descargar repositorio GitHub de elastic-workshop e iniciar docker

Lamentablemente, tanto en equipo Linux como en equipo Windows con Docker Desktop, nos devuelve un error con los certificados y no inicia Elastic Search ni Kibana, por lo que este repositorio no es funcional:

Starting lab_setup_1 … error
ERROR: for lab_setup_1 Cannot start service setup: error while creating mount source path ‘/opt/elastic-workshop/lab/certs’: mkdir /opt/elastic-workshop: read-only file system
ERROR: for setup Cannot start service setup: error while creating mount source path ‘/opt/elastic-workshop/lab/certs’: mkdir /opt/elastic-workshop: read-only file system
ERROR: Encountered errors while bringing up the project.

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Tras el fracaso con el intento de despliegue del docker de Elastic Search + Kibana + BD de aeropuertos del repositorio anterior, desplegamos el docker oficial de Elastic Search desde Docker Desktop de Windows:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

En este caso se despliega perfectamente, nos indicará la URL y puerto de despliegue, en nuestro caso en:

http://localhost:49153

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Si accedemos desde el navegador a la URL indicada, nos mostrará un fichero JSON de Elastic Search, con información del docker desplegado:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

En el estado del contenedor, en «Containers» de Docker Desktop, nos indica también el comando para desplegar Kibana:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Con este comando, desafortunadamente, tampoco se ha podido iniciar Kibana, nos devuelve el error:

Finalmente, hemos podido desplegar el docker de Elastic Search y Kibana, con estos comandos, ejecutados desde una ventana de PowerShell de Windows, con Docker Desktop iniciado:

Con los comandos anteriores se despliega e inicia el docker de Elastic Search (versión 8.2.2):

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

En este caso, se inicia y se detiene, dando un error:

bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Que se soluciona ejecutando desde PowerShell los siguientes comandos:

Y reiniciando Docker Desktop para que se aplique el cambio de configuración.

Ahora volveremos a iniciar el docker Elasticsearch, desde PowerShell, con el comando:

Se iniciará y permanecerá a la escucha. También nos mostrará el token y contraseña de acceso para Kibana (que anotaremos porque la necesitaremos más adelante):

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Mostrándonos el texto:

Y con estos otros dos comandos, desplegamos e iniciamos el docker de Kibana:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Como muestra en la línea de comandos, Kibana queda iniciado y a la escucha en el puerto 5601. Si abrimos un navegador y accedemos a la URL:

http://localhost:5601

Nos mostrará la ventana de primer inicio, que nos solicitará el token de acceso. Copiaremos el token generado en la ventana de PowerShell al iniciar Elasticsearch y pulsaremos en «Configure Elastic»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Ahora nos solicitará un código de verificación, que obtendremos abriendo una consola de terminal en el docker de kibana:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Dentro de la ventana de terminal, accederemos a la carpeta /usr/share/kibana/bin:

Y ejecutaremos el fichero kibana-verification-code:

Nos generará un código de verificación de 6 números:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Volveremos a la ventana del navegador e introdcuiremos el código de verificación generado. Pulsaremos en «Verify»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Se iniciará el configurador de Elastic para el primer inicio:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Nos solicitará usuario y contraseña (el usuario es «elastic», la contraseña se generó al iniciar el docker de Elasticsearch en la ventana de PowerShell, en el mismo sitio donde se generó el token):

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Introduciremos usuario y contraseña y pulsaremos «Log in»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Y ahora sí, por fin, accedemos a Elasticsearch y Kibana. Pulsaremos en «Explore on my own»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Podremos, por ejemplo, cargar datos de prueba de ejemplo, pulsando o bien en «Try sample data» o bien si tenemos ficheros CSV/JSON en el equipo local pulsando en «Upload a file»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Por ejemplo, para cargar los aeropuertos del repositorio con el que intentamos trabajar inicialmente:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Seleccionaremos el fichero json, ldjson o bien CSV que contiene los datos y que estará en nuestro equipo local:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Iniciará la validación del fichero seleccionado. Si tiene la estructura correcta nos dejará importarlo con «Import»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Introduciremos un nombre para «index» y pulsaremos «Import»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Y así tendremos disponibles los datos del fichero importado en Kibana:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Pulsando en el menú y en «Discover»:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Eligiendo «Vuelos» o el nombre del index subido:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows

Nos mostrará los datos cargados y podremos trabajar con ellos: hacer búsquedas, filtros y un sin fin de opciones para análisis:

Iniciando Elasticksearch y Kibana desde Docker Desktop de Windows