docker - 如何使用 docker-compose 文件导入 Kibana 仪表板?

标签 docker curl docker-compose kibana

我使用 cURL 命令导出了 Kibana 仪表板:

curl -XGET localhost:5601/api/kibana/dashboards/export?dashboard=[uuid] > my-dashboards.json

现在我想使用 docker-compose 导入此仪表板,但出现此错误:

test.kibana           | Warning: Couldn't read data from file "my-dashboards.json", this makes an 
test.kibana           | Warning: empty POST.
test.kibana           |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
test.kibana           |                                  Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed connect to 0.0.0.0:5601; Connection refused

这是 docker-compose 文件:

version: '2'
services:
  elasticsearch-docker:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
    container_name: test.elastic
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
  kibana:
    image: docker.elastic.co/kibana/kibana:5.6.3
    container_name: test.kibana
    command: curl -XPOST test.elastic:5601/api/kibana/dashboards/import -H 'kbn-xsrf:true' -H 'Content-type:application/json' -d @my-dashboards.json
    ports:
      - 5601:5601
    depends_on: 
      - elasticsearch-docker
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
      - ./my-dashboards.json:/usr/share/kibana/config/my-dashboards.json

最佳答案

一旦 Elasticsearch 和 Kibana 都启动了,从主机在包含 JSON 转储的目录中运行 curl 命令。

以编程方式告诉两者都已启动是非常棘手的。原则上,您可以通过编写一个 ENTRYPOINT 脚本来执行类似的操作,该脚本在启动实际服务之前进行首次设置,但如果配置在文件系统中(IIRC Kibana 实际上将此类数据存储在 ES 中),这会更容易。顺便看完了再说官方mysql image 执行此操作,它涉及启动服务、等待它实际启动、进行初始化,然后在最后 exec "$@" 之前再次停止它。

您无法通过 Docker Compose 完成所有,如果您的首次设置同时依赖于主机本地文件和实际运行的服务,那么不尝试尝试可能更容易-按喇叭。

关于docker - 如何使用 docker-compose 文件导入 Kibana 仪表板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52233689/

相关文章:

c# - 当原始请求为 HTTPS 时,AspNetCore.WsFederation 获取 signin-wsfed 重定向到 HTTP

php - socket.io 中的 app.post ('/posts' 带有 https

c - libcurl:分块编码中发现格式错误的编码

docker - docker-compose up是否破坏旧数据库?

elasticsearch - docker - 麋鹿 - vm.max_map_count

amazon-web-services - 使用 ALB 对 redis 容器进行健康检查

linux - 如何在谷歌计算引擎中使用 tar.gz 文件加载 docker 镜像?

node.js - Docker 镜像无法在 AWS EC2 linux 上构建,但在 Windows 和 Mac 上构建时可以正常工作

c++ - 在 C++ 中的 cURL 库请求中设置 Internet Explorer 代理 - Windows

docker - docker-compose部署确保容器已安装在特定服务器上