Как привязать Elasticsearch 2.0 к интерфейсам Loopback и Non-Loopback?

Начиная с версии 2.0 Elasticsearch по умолчанию привязывается только к петлевому интерфейсу (_local_ с точки зрения конфигурации).

В документации говорится, что есть способ переключиться на другую сеть, например, _non_loopback_ привязывается к первому интерфейсу без обратной связи. Это работает нормально.

Но я не могу понять, как мне совместить эти настройки, чтобы Elasticsearch выполнял привязку к оба петлевым и непетлевым интерфейсам одновременно?

PS. Моя причина в том, что я использую Logstash на каждом экземпляре Elasticsearch, который подключается к нему через локальный хост, но я также хочу, чтобы другие экземпляры Elasticsearch видели друг друга для формирования кластера...


person Funbit    schedule 29.10.2015    source источник
comment
Это можно сделать с помощью транспортных профилей но я еще не пробовал.   -  person Val    schedule 29.10.2015
comment
@Val, спасибо за предложение, но, согласно справке, транспортные профили предназначены только для связи между узлами ... Конечно, я все еще могу использовать нелокальный IP-адрес для конфигурации Logstash, но это сделало бы обслуживание конфигурации гораздо хуже, чем было в 1.x.   -  person Funbit    schedule 30.10.2015
comment
@Funbit как подключить LS к ES?   -  person Andrei Stefan    schedule 30.10.2015
comment
@AndreiStefan Используя это: hosts =› [127.0.0.1:9200] . Как я уже сказал, я мог бы включить здесь IP-адрес Ethernet, но мне пришлось бы делать это для каждого экземпляра отдельно, поскольку Logstash не поддерживает переменные среды/динамические переменные в своей конфигурации.   -  person Funbit    schedule 30.10.2015
comment
@Funbit, какой протокол вы используете с LS? Предполагая http (начиная с порта 9200)   -  person Andrei Stefan    schedule 30.10.2015
comment
@AndreiStefan Не уверен, как это связано с проблемой, но: я использую ввод tcp и вывод elasticsearch. LS 2.0 (который я пытаюсь использовать с ES 2.0) поддерживает только протокол http.   -  person Funbit    schedule 30.10.2015
comment
В порядке. Затем попробуйте в своей ES что-то вроде следующего. Удалите все настройки network.bind* и network.publish* из файла elasticsearch.yml и добавьте transport.host: _non_loopback_ и http.host: _local_.   -  person Andrei Stefan    schedule 30.10.2015
comment
@AndreiStefan Таким образом, я потеряю возможность подключаться к экземплярам ES из Kibana или браузеров ... Я не хочу устанавливать обратный прокси только для этого ..   -  person Funbit    schedule 30.10.2015
comment
Попробуйте другую конфигурацию и посмотрите, что получится: network.bind_host: 0   -  person Andrei Stefan    schedule 30.10.2015
comment
@AndreiStefan Волшебство сработало! Благодарю вас! Пожалуйста, напишите ответ, я отмечу его как правильный.   -  person Funbit    schedule 30.10.2015


Ответы (3)


Для 2.0 вам нужно будет использовать

network.bind_host: 0
person Andrei Stefan    schedule 30.10.2015
comment
Это также решило мой вопрос: stackoverflow.com/questions/33691858/ - person Carlos Vega; 23.11.2015
comment
Каким будет решение для 2.3.2? Я сделал то же самое, что упоминалось выше, но проблема все еще сохраняется. - person som; 20.03.2017
comment
Работал на ES5! - person kgf3JfUtW; 06.04.2017
comment
На stackoverflow.com/a/31677628/154461 я думаю, что вы должны использовать network.host вместо network.bind_host для версии › = 2,3 - person harschware; 12.07.2017

Начиная с ElasticSearch 7.x эта конфигурация снова изменилась. для простого кластера с одним узлом, привязанного к петле, локальным и внешним IP-адресам, вы по существу делаете следующее:

network.host: [_local_, _site_, _global_]
cluster.initial_master_nodes: node-1

Настройка узла кластера объясняется здесь. в то время как настройка узла сети находится в документации здесь, хотя там не сказано, как можно присвоить несколько значений network.host.

person Dexter Legaspi    schedule 21.05.2019

Go to

'<path_to_elasticsearch>/elasticsearch-2.3.4/config'

Открыть elasticsearch.yml

Добавить network.host: 0.0.0.0

Теперь проверьте, какой порт использует elasticsearch (по умолчанию 9200), перейдите к входящим правилам брандмауэра и добавьте эти порты.

person ketankk    schedule 29.08.2016