2017-08-31 13 views
0

ドッキングウィンドウでelasticsearchの生産のセットアップは次のようになり、公式websiteDocker:2つのelasticsearchコンテナはどのように連携して動作していますか?

version: '2' 
services: 
    elasticsearch1: 
    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2 
    container_name: elasticsearch1 
    environment: 
     - cluster.name=docker-cluster 
     - bootstrap.memory_lock=true 
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
    ulimits: 
     memlock: 
     soft: -1 
     hard: -1 
    mem_limit: 1g 
    volumes: 
     - esdata1:/usr/share/elasticsearch/data 
    ports: 
     - 9200:9200 
    networks: 
     - esnet 
    elasticsearch2: 
    image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2 
    environment: 
     - cluster.name=docker-cluster 
     - bootstrap.memory_lock=true 
     - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
     - "discovery.zen.ping.unicast.hosts=elasticsearch1" 
    ulimits: 
     memlock: 
     soft: -1 
     hard: -1 
    mem_limit: 1g 
    volumes: 
     - esdata2:/usr/share/elasticsearch/data 
    networks: 
     - esnet 

volumes: 
    esdata1: 
    driver: local 
    esdata2: 
    driver: local 

networks: 
    esnet: 

応じElasticsearch1が露出され、それはまた、ドッキングウィンドウネットワークによってElasticsearch2に接続されているが、彼らは自分のストレージを持っています。 今は私の質問です。この設定はどのように機能していますか? ES2(elasticsearch2)はES1(elasticsearch1)がダウンするまで何もしませんか、それともすべてを複製していますか?

私はいつも私はlocalhost:9200と接続しますので、私はいつもES1にアクセスします。私は、ES2がES2に関してこの情報を使って何をしているのか分かりません。私は(logstashがelasticsearch1とリンクされている)ドッカネットワーク上で内部にそれを維持

output { 
    elasticsearch { hosts => ["elasticsearch1:9200"] } 
    xxx 
} 

が、私は知らない。

別のケースでは、私は私の出力先を定義する必要が私のlogstash.confの内側にあります私がelasticsearch2を定義しなければならない場合は?または今起こっていること。

elasticsearch1とelasticsearch2はどのように連携して動作していますか?

答えて

0

2つのインスタンスはクラスタとして機能します。 1つのノードにクエリを実行しても、内部でデータが共有されるため、クエリは内部的にクラスタのすべてのノード(ケースでは2つ)に転送されます。詳細はこの公式ページをご覧ください:https://www.elastic.co/guide/en/elasticsearch/reference/5.5/_basic_concepts.html

+0

ありがとう、私はそれを読んだ。だから私が理解すれば、ESの「クラスタ」内にある2つのノードのうちの1つで、すべてのコマンドを実行しても問題ありません。私はまだデータの取り扱いについての非常に明確な説明が表示されませんが、私はレプリカという言葉を見ましたか? ES1にログを送信すると、ES2のデータボリューム内にもログが保存されますか? – DenCowboy

+0

これはボンネットの下にあります。事実、単一の大きなインスタンスであるため、インスタンスのいずれかに到達することができます。データがどのように拡散されるかは、設定​​によって異なりますが、クライアントにとっては何とか透過的です。 – whites11

+0

理想的な状況では、ESの上にロードバランサのようなものがあるので、私の設定で1つのURLに触れることができ、ロードバランサはそれを私のESの1つにルーティングします。 1つがダウンしている場合は、もう1つを使用します – DenCowboy

関連する問題