docker - Kibana 和 Docker-Compose : Automatically load in saved object

标签 docker elasticsearch docker-compose kibana-5

Goal: Load in Kibana saved object when starting Elastic Stack from Docker-Compose.

我有一个来自 Kibana 的“export.json”对象,其中包含我的默认索引、10 多个可视化和仪表板设置。我能够从 Docker-Compose 成功启动 Elastic Stack 并手动加载对象,但它不会在容器启动时自动加载它。

我需要找到一种方法来以编程方式加载此对象,因为我将有多个对象可以根据运行的容器进行部署。换句话说(使用伪配置):

test1
    container a           # code to run
    container b           # code send metrics
    test1_export.json     # display metrics
test2
    container c           # code to run
    container d           # code send metrics
    test2_export.json     # display metrics

使用这些定义:

 > run test1

将执行两个 Docker-Compose 文件,一个用于运行代码,另一个用于运行 Elastic Stack。后者还需要加载 export.json 对象。

到目前为止我尝试了什么

此方法被躲避到 this config file :

Kibana uses an index in Elasticsearch to store saved searches, visualizations and dashboards. Kibana creates a new index if the index doesn't already exist.

同样来自 here :

Kibana keeps all its state in Elasticsearch, specifically in the .kibana index. There should be no need to preserve any state on the local file system of the Kibana containers.

但是,每当我重新启动容器时,Kibana 都会从头开始。

直接取自此 Kibana 用户指南,我尝试将 kibana.yml 配置文件存储在容器中。但是,此语法在启动时会破坏 Kibana。这是两个文件:

kibana.yml

kibana.index: ".kibana"

docker-compose.yml

version: '2'
services:
    elasticsearch: 
        container_name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:5.5.1
        ports:
            - "9200:9200"
        expose:
            - 9200
        restart: unless-stopped
        environment:
            - "transport.host=127.0.0.1"
            - "xpack.security.enabled=false"
        volumes:
            - "./elasticsearch/data/:/usr/share/elasticsearch/data"

    logstash:
        container_name: logstash
        build: ../../modules/logstash
        image: logstash:5.5.1

    kibana: 
        container_name: kibana
        image: docker.elastic.co/kibana/kibana:5.5.1
        restart: unless-stopped
        ports:
            - "5601:5601" 
        depends_on:
            - elasticsearch
        environment:
            - "ELASTICSEARCH_URL: http://elasticsearch:9200"
        expose:
            - 5601
        volumes:
            - "./kibana.yml:/usr/share/kibana/config/kibana.yml"

我的问题:

  • 我现在在做什么是不正确的(只是为了保留 Kibana)?
  • 如何使用 Docker-Compose 加载“export.json”文件?理想情况下,我希望能够在 Docker-Compose 中为 Kibana 查找对象的路径定义一个卷。

我的环境是Linux/Centos7。

最佳答案

--> https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04

我建议将 ELK 带到这个站点作为指南。我已经安装了这个网站,我非常满意。

关于docker - Kibana 和 Docker-Compose : Automatically load in saved object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47024399/

相关文章:

node.js - 未见特使

json - 分片大小的 Elasticsearch GET API

docker - 可以将Docker机器与持续集成工具一起使用吗?

docker - 使用 openshift origin Web 控制台时 https 重定向到 127.0.0.1

java - Elasticsearch 结果与我的映射字段查询不太准确

c# - ASP.NET Core docker 构建错误

postgresql - 如何在构建时在 Docker 镜像之间建立网络?

Docker 组合部署

node.js - 在docker镜像构建中运行yarn install时如何解决网络连接问题?

elasticsearch - 在DateRangeQuery中进行比较的方式是哪种?