Elastic Search прослушивает только IPv6 [CentOS]

Я установил Elastic Search 1.7.4 на CentOS 7.2 следующим образом:

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.4.noarch.rpm
sudo rpm -ivh elasticsearch-1.7.4.noarch.rpm

Служба запущена и ES работает (проверено с помощью curl), однако он слушает только IPv6 с конфигурацией по умолчанию. netstat -na дает мне следующее:

tcp6       0      0 :::9200                 :::*                    LISTEN     
tcp6       0      0 :::9300                 :::*                    LISTEN 

Используя nmap с других серверов, я вижу, что порты 9200 и 9300 отфильтрованы, брандмауэр отключен.

Редактирование /etc/elasticsearch/elasticsearch.yml и установка:

network.bind_host: 0.0.0.0

ничего не меняют. Установка этого на внешний IPv4-адрес сервера добавляет две дополнительные записи в вывод netstat -na, но мне нужно, чтобы ES был доступен для моей локальной сети, поэтому это бесполезно, и netstat по-прежнему регистрирует это как tcp6.

tcp6       0      0 192.168.0.54:9200       :::*                    LISTEN     
tcp6       0      0 192.168.0.54:9300       :::*                    LISTEN

настройка:

network.bind_host: _eth0:ipv4_

Заставляет ES привязаться к локальному IPv4, и тогда он, конечно, доступен только с локального сервера. Отсутствие части «ipv4» приводит к привязке ES к IPv6-адресу сетевой карты.

Как включить привязку ES к IPv4? У меня нет альтернативы, моя сеть работает только с IPv4, и я должен использовать эту старую версию ES, потому что я запускаю некоторые приложения, для которых требуется эта версия.

6
задан 22 October 2016 в 23:02
3 ответа

From unix exchange.

This is happening because by default, AF_INET6 sockets will actually work for both IPv4 and IPv6. See section 3.7 - Compatibility with IPv4 Nodes of RFC 3493 - Basic Socket Interface Extensions for IPv6

But as you've figured out, firewalld is enabled out of the box.

create this file to your /etc/firewalld/services/elasticsearch.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Elasticsearch</short>
  <description>Elasticsearch is a distributed, open source search and analytics engine, designed for horizontal scalability, reliability, and easy management.</description>
  <port protocol="tcp" port="9300"/>
  <port protocol="tcp" port="9200"/>
</service>

Update permissions

chmod 0400 /etc/firewalld/services/elasticsearch.xml
chown root: /etc/firewalld/services/elasticsearch.xml

Run these commands

firewall-cmd --zone=public --add-service=elasticsearch --permanent
firewall-cmd --reload
5
ответ дан 3 December 2019 в 00:31

Это обычная ошибка ES,потому что необходимо установить два сетевых параметра: network.bind_host И network.publish_host . Из-за этого разработчики ES добавили этот ярлык:

network.host: 0.0.0.0

У меня были некоторые другие проблемы с ES, когда IPv6 был включен, но не настроен, поэтому вы можете отредактировать sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

И выполните sysctl -p .

1
ответ дан 3 December 2019 в 00:31

Центосоор дүүргэсэн галт ханыг идэвхгүйжүүлээд үзээрэй

systemctl disable firewalld
systemctl stop firewalld

https://bytefreaks.net/gnulinux/how-to-startstop-or-enabledisable-firewalld-on-centos-7

Би машины урд тусгай зориулалтын тоног төхөөрөмжийн галт хана хийхийг зөвлөж байна. Би таны ашиглаж буй машин дээрх програм хангамжийн галт хананд найдахГҮЙ. Хэрэв халдагч машиныг цохиж байгаа бол аль хэдийн оройтсон байна.

-1
ответ дан 3 December 2019 в 00:31

Теги

Похожие вопросы