私の目的は、Dockerを使用してローカルで動作するDockerHubからelasticsearchおよびkibanaイメージを取得することです。
これはトリックを行い、完全に機能します...
docker network create mynetwork --driver=bridge
docker run -p 5601:5601 --name kibana -d --network mynetwork kibana
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -d --network mynetwork elasticsearch
今日、鳥が耳元でささやき、ドッカー作曲を学ぶべきだと言った。だから私は上記のすべてをdocker-compose.yml内で実行しようとしました。
これが私の試みです。
version: "2.0"
services:
elasticsearch:
image: elasticsearch:latest
ports:
- "9200:9200"
- "9300:9300"
networks:
- docker_elk
kibana:
image: kibana:latest
ports:
- "5601:5601"
networks:
- docker_elk
networks:
docker_elk:
driver: bridge
残念ながら、これは機能しません。 docker-compse upを実行すると、以下のように常にECONNREFUSEDエラーが発生する理由について頭を悩ませています。
$ docker-compose up
Starting training_elasticsearch_1
Recreating training_kibana_1
Attaching to training_elasticsearch_1, training_kibana_1
elasticsearch_1 | [2016-11-02 22:39:55,798][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | [2016-11-02 22:39:56,036][INFO ][node ] [Caliban] version[2.4.1], pid[1], build[c67dc32/2016-09-27T18:57:55Z]
elasticsearch_1 | [2016-11-02 22:39:56,036][INFO ][node ] [Caliban] initializing ...
elasticsearch_1 | [2016-11-02 22:39:56,713][INFO ][plugins ] [Caliban] modules [reindex, lang-expression, lang-groovy], plugins [], sites []
elasticsearch_1 | [2016-11-02 22:39:56,749][INFO ][env ] [Caliban] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/vda2)]], net usable_space [54.8gb], net total_space [59gb], spins? [possibly], types [ext4]
elasticsearch_1 | [2016-11-02 22:39:56,749][INFO ][env ] [Caliban] heap size [990.7mb], compressed ordinary object pointers [true]
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"yellow","message":"Status changed from uninitialized to yellow - Waiting for Elasticsearch","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["error","elasticsearch"],"pid":11,"message":"Request error, retrying -- connect ECONNREFUSED 172.20.0.2:9200"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["warning","elasticsearch"],"pid":11,"message":"Unable to revive connection: http://elasticsearch:9200/"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["warning","elasticsearch"],"pid":11,"message":"No living connections"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","error"],"pid":11,"state":"red","message":"Status changed from yellow to red - Unable to connect to Elasticsearch at http://elasticsearch:9200.","prevState":"yellow","prevMsg":"Waiting for Elasticsearch"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from uninitialized to green - Ready","prevState":"uninitialized","prevMsg":"uninitialized"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:39:58Z","tags":["listening","info"],"pid":11,"message":"Server running at http://0.0.0.0:5601"}
elasticsearch_1 | [2016-11-02 22:39:58,515][INFO ][node ] [Caliban] initialized
elasticsearch_1 | [2016-11-02 22:39:58,515][INFO ][node ] [Caliban] starting ...
elasticsearch_1 | [2016-11-02 22:39:58,587][INFO ][transport ] [Caliban] publish_address {172.20.0.2:9300}, bound_addresses {[::]:9300}
elasticsearch_1 | [2016-11-02 22:39:58,594][INFO ][discovery ] [Caliban] elasticsearch/1Cf9qz7CSCqHBEEuwG7PQw
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:40:00Z","tags":["warning","elasticsearch"],"pid":11,"message":"Unable to revive connection: http://elasticsearch:9200/"}
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:40:00Z","tags":["warning","elasticsearch"],"pid":11,"message":"No living connections"}
elasticsearch_1 | [2016-11-02 22:40:01,650][INFO ][cluster.service ] [Caliban] new_master {Caliban}{1Cf9qz7CSCqHBEEuwG7PQw}{172.20.0.2}{172.20.0.2:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
elasticsearch_1 | [2016-11-02 22:40:01,661][INFO ][http ] [Caliban] publish_address {172.20.0.2:9200}, bound_addresses {[::]:9200}
elasticsearch_1 | [2016-11-02 22:40:01,661][INFO ][node ] [Caliban] started
elasticsearch_1 | [2016-11-02 22:40:01,798][INFO ][gateway ] [Caliban] recovered [1] indices into cluster_state
elasticsearch_1 | [2016-11-02 22:40:02,149][INFO ][cluster.routing.allocation] [Caliban] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[.kibana][0]] ...]).
kibana_1 | {"type":"log","@timestamp":"2016-11-02T22:40:03Z","tags":["status","plugin:[email protected]","info"],"pid":11,"state":"green","message":"Status changed from red to green - Kibana index ready","prevState":"red","prevMsg":"Unable to connect to Elasticsearch at http://elasticsearch:9200."}
^CGracefully stopping... (press Ctrl+C again to force)
Stopping training_kibana_1 ... done
Stopping training_elasticsearch_1 ... done
誰かがなぜ私を助けてくれますか?
ありがとう
Kibanaのelasticsearchへの強い依存関係を追加するには、depends_on変数を以下のように設定する必要があります。また、@ Phil McMillanの回答に追加するには、kibanaでelasticsearch_url変数を設定できますなし静的アドレス指定 Dockerの組み込みDNSメカニズム を使用します。
version: '2.1'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
container_name: elasticsearch
networks:
docker-elk:
kibana:
image: docker.elastic.co/kibana/kibana:5.4.3
container_name: kibana
environment:
- "ELASTICSEARCH_URL=http://elasticsearch:9200"
networks:
- docker-elk
depends_on:
- elasticsearch
networks:
docker-elk:
driver: bridge
環境変数ELASTICSEARCH_URL = http:// elasticsearch:92 は、Docker DNSサーバーが解決できるコンテナー名(elasticsearch)を使用していることに注意してください。
links
を含める必要があります。
version: "2.0"
services:
elasticsearch:
image: elasticsearch:latest
ports:
- "9200:9200"
- "9300:9300"
networks:
- docker_elk
kibana:
image: kibana:latest
ports:
- "5601:5601"
links:
- elasticsearch
networks:
- docker_elk
networks:
docker_elk:
driver: bridge
[〜#〜]更新[〜#〜]
イメージelasticsearch:latest
を使用する場合、それはElasticsearch 5.0
であり、Docker Host仮想メモリを増やす必要があります。
docker-compose
を実行する前に、Dockerホストでこのコマンドを必ず実行してください。
Linux:
su root
sysctl -w vm.max_map_count=262144
Windows(boot2docker)
docker-machine ssh default
Sudo sysctl -w vm.max_map_count=262144
Dockerホストを変更したくない場合は、Elasticsearch 2.x
画像elasticsearch:2
を使用してください。
私はこれを働いています。リンクは必要なく、kibanaの前に始まるelasticsearchとは何の関係もありません。問題は、コンポーズで実行すると、新しいブリッジネットワークが独自のIPセットで定義されることです。 Kibanaは、このブリッジネットワークを介してクラスターと通信する必要があります。「localhost」は接続に使用できなくなりました。
あなたはいくつかのことをする必要があります:
a。 kibana.ymlのelasticsearch.url(または環境下のELASTICSEARCH_URL:構成ファイルのkibanaのセクション)は、クラスターとポート9200の特定のIPに設定する必要があります-構成の外部で実行すると、localhostは機能しません。
elasticsearch.url: "http://172.16.238.10:9200"
b。また、server.Host(SERVER_Host)をKibanaコンテナーのブリッジIPに設定する必要があります。
server.Host: "172.16.238.12"
注: http://127.0.0.1:5601 を使用してキバナUIにアクセスしても、「ports」コマンドが必要です。
このようなもので十分です:
elasticsearch:
networks:
esnet:
ipv4_address: 172.16.238.10
kibana:
networks:
esnet:
ipv4_address: 172.16.238.12
networks:
esnet:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.238.0/24
文書化された方法のいずれかを使用してKibana構成を設定することを忘れないでください-ELASTICSEARCH_URLを設定する必要があります!
2つのelasticsearchノードとkibanaインスタンスを作成するdocker composeファイルがあり、すべて同じブリッジネットワークで実行されています。可能です。
これは私にとってうまくいきますdocker-composer.yml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
environment:
- discovery.type=single-node
ports:
- 9200:9200
kibana:
image: docker.elastic.co/kibana/kibana:7.6.2
ports:
- 5601:5601