Не работает автообнаружение эластичного поиска в стойке

Я пытаюсь использовать ElasticSearch для приложения, которое я создаю, и я размещаю его на Rackspace серверы. Однако функция auto-discovery не работает. Я думал, что это из-за того, что auto-discovery использует широковещательную и многоадресную рассылку для поиска других узлов с совпадающим именем кластера. Я нашел эту статью, в которой говорится, что Rackspace теперь поддерживают многоадресную и широковещательную рассылку с их новой функцией облачных сетей. Затем, следуя инструкциям статьи, я создал сеть и добавил эту сеть на оба сервера, на которых работали узлы. Затем я попытался перезапустить ElasticSearch на обоих узлах, но они не нашли друг друга, и каждый объявил себя «хозяином» (вот вывод из логов):

[2013-04-03 22:14:03,516][INFO ][node                     ] [Nemesis] {0.20.6}[2752]: initializing ...
[2013-04-03 22:14:03,530][INFO ][plugins                  ] [Nemesis] loaded [], sites []
[2013-04-03 22:14:07,873][INFO ][node                     ] [Nemesis] {0.20.6}[2752]: initialized
[2013-04-03 22:14:07,873][INFO ][node                     ] [Nemesis] {0.20.6}[2752]: starting ...
[2013-04-03 22:14:08,052][INFO ][transport                ] [Nemesis] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/166.78.177.149:9300]}
[2013-04-03 22:14:11,117][INFO ][cluster.service          ] [Nemesis] new_master [Nemesis][3ih_VZsNQem5W4csDk-Ntg][inet[/166.78.177.149:9300]], reason: zen-disco-join (elected_as_master)
[2013-04-03 22:14:11,168][INFO ][discovery                ] [Nemesis] elasticsearch/3ih_VZsNQem5W4csDk-Ntg
[2013-04-03 22:14:11,202][INFO ][http                     ] [Nemesis] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/166.78.177.149:9200]}
[2013-04-03 22:14:11,202][INFO ][node                     ] [Nemesis] {0.20.6}[2752]: started
[2013-04-03 22:14:11,275][INFO ][gateway                  ] [Nemesis] recovered [0] indices into cluster_state

Журнал другого узла:

[2013-04-03 22:13:54,538][INFO ][node                     ] [Jaguar] {0.20.6}[3364]: initializing ...
[2013-04-03 22:13:54,546][INFO ][plugins                  ] [Jaguar] loaded [], sites []
[2013-04-03 22:13:58,825][INFO ][node                     ] [Jaguar] {0.20.6}[3364]: initialized
[2013-04-03 22:13:58,826][INFO ][node                     ] [Jaguar] {0.20.6}[3364]: starting ...
[2013-04-03 22:13:58,977][INFO ][transport                ] [Jaguar] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/166.78.63.101:9300]}
[2013-04-03 22:14:02,041][INFO ][cluster.service          ] [Jaguar] new_master [Jaguar][WXAO9WOoQDuYQo7Z2GeAOw][inet[/166.78.63.101:9300]], reason: zen-disco-join (elected_as_master)
[2013-04-03 22:14:02,094][INFO ][discovery                ] [Jaguar] elasticsearch/WXAO9WOoQDuYQo7Z2GeAOw
[2013-04-03 22:14:02,129][INFO ][http                     ] [Jaguar] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/166.78.63.101:9200]}
[2013-04-03 22:14:02,129][INFO ][node                     ] [Jaguar] {0.20.6}[3364]: started
[2013-04-03 22:14:02,211][INFO ][gateway                  ] [Jaguar] recovered [0] indices into cluster_state

Добавления сети недостаточно (Rackspace также дал мне IP для этой сети)? Нужно ли как-то указать в файле conf, чтобы проверять эту сеть при использовании мультикаста для поиска других узлов?

Я также нашел эту статью, в которой предлагался другой подход. В соответствии с инструкциями статьи я поместил это в /config/elasticsearch.yml:

cloud:
    account: account #
    key: account key
    compute:
        type: rackspace
discovery:
    type: cloud

Однако затем, когда я попытался перезапустить ElasticSearch, я получил это:

Stopping ElasticSearch...
Stopped ElasticSearch.
Starting ElasticSearch...
Waiting for ElasticSearch.......
WARNING: ElasticSearch may have failed to start.

И запустить не получилось. Я проверил файл журнала на наличие ошибок, но это было все, что там было:

[2013-04-03 22:31:00,788][INFO ][node                     ] [Chamber] {0.20.6}[4354]: initializing ...
[2013-04-03 22:31:00,797][INFO ][plugins                  ] [Chamber] loaded [], sites []

И остановился там без ошибок и без продолжения.

Кому-нибудь уже удалось заставить ElasticSearch работать в облаке Rackspace? Я знаю, что опция одноадресной рассылки также доступна, но я бы предпочел не указывать каждый IP-адрес по отдельности, так как я хотел бы, чтобы позже было легко добавить другие узлы. Спасибо!

ОБНОВЛЕНИЕ

Я еще не решил проблему, но после некоторых поисков нашел этот сообщение в котором говорится, что "старый" облачный плагин был снят с производства и заменен просто плагином Ec2 для Облако Amazon, что объясняет, почему изменения, которые я внес в файл конфигурации, не работают.


person srchulo    schedule 03.04.2013    source источник
comment
глупый вопрос, но можете ли вы использовать более явное обнаружение одноадресной рассылки?   -  person mconlin    schedule 03.04.2014


Ответы (1)


Многоадресная рассылка отключена в общедоступном облаке по соображениям безопасности (можно проверить с помощью ifconfig). Вот статья, которая должна дать вам то, что вам нужно:

https://developer.rackspace.com/blog/elasticsearch-autodiscovery-on-the-rackspace-cloud/

person dman    schedule 21.01.2015