Я рассмотрел некоторые другие вопросы здесь, но почему-то я не смог решить мою проблему с ними.У меня есть кластер Elasticsearch в частной сети (на самом деле это сеть Docker).В той же сети есть приложение, которое взаимодействует с ES, которое работает нормально.
Теперь я хотел бы получить доступ и использовать кластер ES извне.Все мои машины имеют пару IP-адресов - частный и публичный, на публичной стороне открыт только порт 9200.В принципе, это работает, я могу запрашивать узлы.
Однако я бы хотел использовать сниффинг, и тут все становится сложнее.Узлы настроены на
network.bind_host=0.0.0.0
publish_host=internal.name[1,2,...]
Так что, когда я включаю сниффинг (сластиком поиска по py), я получаю Cannot connect to host internal_ip[1,2,...]:9200 ssl:None [No route to host])
.Я понимаю, что клиент получает список publish_host
s.
Так что я мог бы изменить publish_host
, чтобы указать на внешнее имя хоста / IP, однако тогда мне пришлось бы открыть «внутренние» порты 9300на внешнем IP.
Есть ли способ настроить ES на публикацию внутренних имен или IP-адресов только для других узлов в кластере, но внешних для отслеживания клиентов?