elasticsearch network.host
Настройки в elasticsearch.yml - установить адрес привязки для входящего HTTP-трафика и связи узла с узлом.
С точки зрения вашего кода, кажется, вы неправильно интерпретируете его с IP-адресом клиентов для фильтрации ip.
Здесь в elasticsearch.yml конфигурации вы можете сделать следующее -
1) порт трафика изменение HTTP (по умолчанию 9200) для входящего HTTP-трафика с помощью http.port: 9200
.
2) изменить порт tcp для транспортных клиентов для связи между узлами и узлами, используя transport.tcp.port: 9300
.
3) вы можете изменить адрес привязки elasticsearch для сервера elasticsearch, где прослушивать трафик, используя network.bind_host: 192.168.0.1
. Вы можете изменить это на «network.bind_host: localhost», чтобы ограничить доступ общественности.
Более подробную информацию о конфигурации см. this и official documentation.
Теперь, чтобы добиться того, что вы пытаетесь, я предлагаю вам использовать shield plugin, который теперь поставляется с X-Pack. Shield предлагает поддержку фильтрации IP-адресов, где вы можете определить IP-адрес, который может получить доступ к вашему поиску elastics.
Плагин Shield позволит вам блокировать, разрешать IP-адреса для доступа к вашему серверу elasticsearch, расширяя один и тот же файл elasticsearch.yml. После успешного установки защитного плагина вы сможете использовать модуль shield
в файле elasticsearch.yml.
shield.transport.filter.enabled: false
shield.http.filter.enabled: true
shield.transport.filter.allow: [ "192.168.0.1", "192.168.0.2", "192.168.0.3", "192.168.0.4" ]
shield.transport.filter.deny: _all
Теперь эти настройки в elasticsearch.yml будут жесткие настройки и после каждого изменения, возможно, придется перезагрузить сервер. Поскольку вы упомянули выбранные устройства и компьютеры и если IP-адрес для этих устройств изменяется динамически. Затем эластичная также выставить настройки/настройки/изменения IP-адреса для фильтрации IP-за их REST API следующим образом, где вы можете изменить IP-адреса на лету без перезагрузки
curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"shield.transport.filter.allow" : "172.16.0.0/24"
}
}'
curl -XPUT localhost:9200/_cluster/settings -d '{
"persistent" : {
"shield.transport.filter.enabled" : false
}
}'
Это хороший REST API для динамического изменения IP-адреса для эластичная наряду с другими функциями щита, такими как аутентификация, авторизация, роли уровня документа, могут помочь вам создать действительно причудливый консольный интерфейс/приложение для управления кластером elasticsearch.
Для получения дополнительной информации о конфигурации также обратитесь к экрану поиска elastics ip filtering documentation.
Надеюсь, это поможет.
В эластичной поисковой документации для 'network.bind_host' здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html#advanced-network-settings. В нем объясняется: «Это указывает, к каким сетевым интерфейсам (узлам) должен подключаться узел, чтобы прослушивать входящие запросы». Итак, почему я не могу настроить, что эластичный поиск прослушивает/связывается только с выбранными устройствами? В моем вопросе устройство будет 'computerA'. Пожалуйста, помогите мне понять это. – oblivion
@oblivion, я обновил ответ с ответом на ваш вопрос в комментариях, а также – Mysterion
благодарю вас за обновленный ответ. Итак, 'network.bind_host' в основном определяет адрес' where', который ES прослушивает, а не 'who', который он слушает правильно? И позволяет сказать, что адрес «Ip address» сервера (где ES развернут) - «101.104.154.163'. В этом сценарии, каковы адреса, которые я могу использовать для 'network.bind_host', чтобы сделать ES доступным для Интернета? Я знаю '0.0.0.0' и' 101.104.154.163' работает. Могу ли я использовать некоторые другие адреса здесь? – oblivion