Skip to main content

Arranque, Actualización, y cosas de Elastic con Docker

Introducción

De vez en cuando hay que actualizar las herramientas del paquete Elasticsearch. Una de ellas es la actualización de Elasticsearch cuando usamos Docker

Como ya no uso Sail, esto lo hago con docker, y para que no se me pase, dejo escrito algunos tips.

Discos shared

Editado el 23/07/24 Version 8.14.3

He dejado de usar el dat shared debido a que la actualziacion 8.14.X no pasa con el data. No tengo tiempo.

Estaba usando la configuración en modo shraed, y esto en la útima actualziación me trajo lios. /usr/share/kibana/config por un problema con lso certificados.

Para no perder el tiempo opte por eliminar el disco de la configuración desde mi Docker Desktop

Lo único es que hay que hacer de nuevo el enrollement de Kibana con Elastic, pero es super sencillo y solo es seguir las instrucciones del navegador, y ejecutar los dos comandos uno en el shell de Elasticsearch y otro en el de Kibana.

Error en la actualizacion

[2024-02-09T15:45:45.275+00:00][INFO ][http.server.Preboot] http server running at http://0.0.0.0:5601
[2024-02-09T15:45:45.579+00:00][INFO ][root] Kibana is shutting down
[2024-02-09T15:45:45.598+00:00][FATAL][root] Reason: ENOENT: no such file or directory, open '/usr/share/kibana/data/ca_1702197563664.crt'
Error: ENOENT: no such file or directory, open '/usr/share/kibana/data/ca_1702197563664.crt'
    at Object.openSync (node:fs:603:3)
    at readFileSync (node:fs:471:35)
    at readFile (/usr/share/kibana/node_modules/@kbn/core-elasticsearch-server-internal/src/elasticsearch_config.js:524:31)

Como veis el proceso no actualiza el fichero de configuración y el cambio en esta version va de los certificados. Seguramente se prodra solventar de otra manera pero he preferiod ir a lo rápido.

Lo primero es eliminar el volumen de configuracion que no es apropiado.

Arranque para actualizar

Aconsejable leeer:

Pero aconsejable leer mejor el enlace a la documentación oficial, pues hay una gracia en el ejemplo -p 9200:9200 -p 9300:9300. que hara que fracase tu instalación y comiences a dar vueltas en el mundo de Elasticsearch.

Editado el 23/07/24 Version 8.14.3

He eliminado el volumen data, pues eso hace fallar la instalacion.No tengo tiempo de revisarlo.

tag="8.14.3" // Tag de la versión que queremos actualziar
docker rm es01 // NO queremos el container
docker volume rm es01-config // NO queremos el volumen de la config
docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:$tag
docker run --name kib01 --net elastic -p 5601:5601  docker.elastic.co/kibana/kibana:$tag

En kibana tendremos un mensaje final

[2024-05-11T06:07:59.739+00:00][INFO ][preboot] "interactiveSetup" plugin is holding setup: Validating Elasticsearch connection configuration…
[2024-05-11T06:07:59.781+00:00][INFO ][root] Holding setup until preboot stage is completed.


i Kibana has not been configured.

Go to http://0.0.0.0:5601/?code=811436 to get started.

Esto nos obliga a obtener el enrollment en la instancia de Elasticsearch

sh-5.0$ bin/elasticsearch-create-enrollment-token --scope kibana
eyJ2ZXIiOiI4LjEzLjQiLCJhZHIiOlsiMTcyLjI3LjAuMjo5MjAwIl0sImZnciI6IjQ2NDIyNGI1YmM1NDJmMTZiMzdkODZkOTAzODYzM2JFKEFAKEFAKEFAKLEFAKErZXkiOiIyVFpJWm84QnlVV1BJX0FsYTdPRDowTVJ3WGR3RFQzaTI2ZXVzWllCNllBIn0=

Si por alguna razon, falla es debido a que arrancaste ambas instancias de manera deistinta y no se pueden comunicar. Arrancalas al unisiono o primero elastic y luego kibana, en un mismo comando, y recuerda que deberas cambiar la url del erollment, porque cambia en cada arranque.

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.