[英]How to import Kibana dashboard using docker-compose file?
我使用 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鏡像是這樣做的,它涉及啟動服務,等待它真正出現,進行初始化,然后在最后exec "$@"
之前再次停止它。
你不能通過 Docker Compose 做所有事情,如果你的第一次設置依賴於主機本地文件和實際運行的服務,那么不嘗試硬塞進去可能更容易。
正在執行的 curl 命令在容器的工作目錄中找不到my-dashboards.json
。 您可以通過在撰寫文件中設置working_dir
屬性來轉到路徑/usr/share/kibana/config
,如下所示:
...
kibana:
image: docker.elastic.co/kibana/kibana:5.6.3
container_name: test.kibana
working_dir: /usr/share/kibana/config
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.