Kibana shows older version despite new docker image

Hey guys. I've got an Elasticsearch cluster (not in docker) that is currently running at version 8.18.2. I've upgraded that through apt, and the standard curl check confirms the version is above. However, my Kibana is running on docker and the version shows in the about tab as 8.12.0 - seemingly regardless of which docker image I supposedly have downloaded. I mistakenly downloaded the 9.0.2 image first, as I didn't realise that ES and Kibana should have matching version numbers. Although no matter what image I download, Kibana launches and the version is always 8.12.0. Do I need to do something more to make sure Kibana is running the newer version?

Thanks all.
Gareth

This is basic docker 101.

If you are running Docker compose project, you first pull image, as noted in the docs for 8.18 : Install Kibana with Docker | Kibana Guide [8.18] | Elastic

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.18.2

you then edit your docker-compose.yml file to set the correct image:

cd /your/path/to/kibana
nano docker-compose.yml

find the image: key in the file... i.e:

kibana01:
    image: elasticsearch/elasticsearch:8.12

swap out elasticsearch/elasticsearch:8.12 with the new image tag :
elasticsearch/elasticsearch:8.18.2

after this edit, bring up the project: docker compose up -d

you are not running a docker compose project, inspect the current container, find the parameters used, then spin up a new container with the same parameters using the new image elasticsearch/elasticsearch:8.18

I urge you to start reading up on Docker:

Docker general: Get started | Docker Docs
Docker compose: Quickstart | Docker Docs

wild idea, but is it possible the browser is caching something - try same with different browser ?

And in whatever kibana is running you can check in its (Kibana's) Dev Tools with:

GET kbn:/api/status

Thanks for your reply dot-mike, I'm sure you're attempting to be helpful with your message. However, as I mentioned in my original post I'm running Elasticsearch on a separate cluster not in docker, hence my being able to upgrade the Elasticsearch cluster with apt to version 8.18.2

The docker command you're referencing there is for downloading the Elasticsearch image. In that article you've helpfully posted though, it does reference also downloading the Kibana image, which I've also explained in my original post, is what I was trying to do; I've tried pulling the 9.0.2 image and the 8.18.2 image, using the docker command

docker pull docker.elastic.co/kibana/kibana:8.18.2

But seemingly regardless of which image I pull, Kibana seems to think it's running on version 8.12.0. In case docker might have been getting confused with there being multiple images downloaded, I purged all the Kibana images from all three nodes in my docker swarm with this command

docker image rm [image id]

after which I've tried manually pre-downloading the Kibana image, and also getting the docker compose process to do the image download as part of provisioning the service.

I am using the docker compose project, and I have used the kibana/kibana:8.18.2 image reference in the compose yaml, as it's Kibana that I want to run, not Elasticsearch.

I think I can say that I have a fair bit of experience with docker now, and this is why it's confusing. Despite that new image entry being in my compose file, and a seemingly new Kibana image being downloaded, the version in Kibana when it is available again after loading, seems to always be 8.12.0

Any ideas relating to that issue would be very gratefully received.

Hi there RainTown,

I'll give that GET command a shot, thanks. I thought it might have been something like caching, but I've since tried it in incognito mode and in Edge (I normally use Chrome) and the version number says 8.12.0 on all. Also, I tail the docker logs while Kibana is starting up and it mentions 8.12.0 in the start up which again is very strange because the image I'm using definitely is tagged 8.18.2.

interesting puzzle. Aside from the curiosity, does it make any practical problems for you? i.e. does stuff work the way you expect ?

I wonder if:

is playing a role somehow.

But, sorry, I'm with Mike, this smells more like a local docker issue to me.

While the Kibana image is running under docker, you can get a shell inside and poke around ... (e.g. look at package.json in the root of the kibana tree)

I agree, it's got to be something with docker doing something it's not supposed to, I don't doubt that - the kibana GET command you suggested basically backs up what I've been saying though, that Kibana is insisting that it is running version 8.12.0, and my Elasticsearch's version is not matching the Kibana version (it goes on to output a json with each node and it's version at 8.18.2.)

So it must be docker saying it's downloaded the 8.18.2 version, but actually downloading the 8.12.0 version. But why?!?!

This is a snippet from one of my docker swarm:
image

Looks like 8.18.2, smells like 8.18.2, but when you launch docker, it's 8.12.0. Getting a tiny bit frustrating now, I have to admit.

So, the initial reason for trying to upgrade from 8.12.0 is that there's some newer integrations I want to use that according to the docs aren't compatible with 8.12.0. The customer log integration is showing as depricated in 8.12.0 and I was hoping to get the upgraded Kibana to start using the integration that is supposedly taking its place in later versions.

So nothing is broken if I use 8.12.0, but I'm not sure about putting in the effort to bring the log files I need to bring in on an integration that is going to be dropped in the next versions.

When I launch 8.18.2 I get 8.18.2 :slight_smile:

I get the frustration, but the question you are left with is more a question for a docker forum than here, that was my point.

Often this turns out to be a "doh!" moment.

Ah - I see your point. Okay I'll see what the docker forums say!

Thanks
G

<not to say I'm not curious as to what it turns out to be, and obviously others might here "spot it">

Well considering it was a "doh!" moment, I thought I should share it here - I was being somewhat "over-enthusiastic" shall we say, with my volume mapping on the docker image. I'd somehow managed to map the entire Kibana directory - binaries, and all - in the docker compose file. So when I downloaded and updated my docker image with a newer version of Kibana, the compose file just over-wrote the entire kibana folder with my 8.12.0 folder. So now I'm just mapping the config and data folders, and it's working fine.

3 Likes

Glad you found it. Those kind of things can be very hard to debug.