0
votes

We are using Elasticsearch and Kibana to store and visualize some application information. I created docker-compose that starts Kibana and Elasticsearch. This compose is supposed to be used only for deploy on developer's local machines. But of course each time when some developer will start this stack he will see the empty kibana dashboards. I would like to externalize kibana data. The best situation would be if we had some kibana-data.json file and the data about kibana objects would appear in there when It is creating And when container is starting It would initialize kibana by data contained in this file.

I know that:

  1. Kibana is storing It's data in elasticsearch in .kibana index. But I can't understand how to externalize this index data.
  2. There is https://github.com/elastic/kibana/pull/11632 that can help me. But in this case I will have to ping kibana periodically and store new data in file. And when container starts I will have to load this objects in kibana. Sounds like I will have to write a new application for this purpose.

What can you suggest? How do you solve similar questions?

1

1 Answers

0
votes

I had a similar problem where each of our customers has their own dashboard and we had to version control it. We have developed this tool that can be used to solve your problem https://github.com/vectranetworks/kibana-vc

just run kibana-vc fetch > kibana_state.json to externalize Kibana data. Every time you are starting Kibana container, run kibana-vc deploy ./kibana_state.json to deploy the dashboards