Как настроить кластер в Elasticsearch?
Хочу настроить кластер из 3-х машин (2 дата ноды, 1 мастер). На данный момент пытаюсь настроить минимум из 1 дата и мастер ноды. Порты пришлось поменять в силу специфики сети, но думаю проблема не в этом
Конфиг мастер ноды.
version: '3.9'
services:
master:
image: elasticsearch:8.1.1
container_name: master
environment:
- node.name=master
- cluster.name=elastic-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=10.126.107.238:1029, 10.126.107.236:1029
- cluster.initial_master_nodes=10.126.107.238
- "node.roles=master"
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "bootstrap.memory_lock=true"
- "xpack.security.enabled=false"
- "xpack.security.transport.ssl.enabled=false"
mem_limit: ${MEM_LIMIT}
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- master-data:/usr/share/elasticsearch/data
ports:
- 1028:9200
- 1029:9300
volumes:
master-data:
driver: local
Конфиг дата-ноды
version: '3.9'
services:
node01:
image: elasticsearch:8.1.1
container_name: node01
environment:
- node.name=node01
- cluster.name=elastic-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=10.126.107.238:1029, 10.126.107.236:1029
- cluster.initial_master_nodes=10.126.107.238
- "node.roles=data"
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "bootstrap.memory_lock=true"
- "xpack.security.enabled=false"
- "xpack.security.transport.ssl.enabled=false"
mem_limit: ${MEM_LIMIT}
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- master-data:/usr/share/elasticsearch/data
ports:
- 1028:9200
- 1029:9300
volumes:
master-data:
driver: local
Когда дата-нода пытается подключиться - выдаёт следующие логи
node01 | {"@timestamp":"2022-08-07T08:15:38.096Z", "log.level": "WARN", "message":"[connectToRemoteMasterNode[10.126.107.238:1029]] completed handshake with [{master}{5_tf1e03S4CYx_v4j4tTyw}{4LhWtmyPTaGKY5x_4Sf10g}{192.168.16.2}{192.168.16.2:9300}{m}{xpack.installed=true}] but followup connection failed", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[node01][generic][T#2]","log.logger":"org.elasticsearch.discovery.HandshakingTransportAddressConnector","elasticsearch.node.name":"node01","elasticsearch.cluster.name":"elastic-cluster","error.type":"org.elasticsearch.transport.ConnectTransportException","error.message":"[master][192.168.16.2:9300] connect_exception","error.stack_trace":"org.elasticsearch.transport.ConnectTransportException: [master][192.168.16.2:9300] connect_exception\n\tat org.elasticsearch.transport.TcpTransport$ChannelsConnectedListener.onFailure(TcpTransport.java:1107)\n\tat
Ответы (1 шт):
Необходимо было принудительно указать http и tcp порты
- http.port=1028
- transport.port=1029
в портах поменять с 9200-9300 соответственно на 1028-1029
в network.publish_host указать внешний айпи (внешний для докера)
version: '3' services: master: image: hub.rosatom.local/elasticsearch:8.1.1 container_name: master environment: - node.name=master - cluster.name=elastic-cluster - network.host=0.0.0.0 - network.publish_host=10.126.107.238 - http.port=1028 - transport.port=1029 - discovery.seed_hosts=10.126.107.238:1029, 10.126.107.236:1029, 10.126.107.235:1029 - cluster.initial_master_nodes=10.126.107.238 - "node.roles=master, ingest" - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - "bootstrap.memory_lock=true" - "xpack.security.enabled=false" - "xpack.security.transport.ssl.enabled=false" mem_limit: ${MEM_LIMIT} ulimits: memlock: soft: -1 hard: -1 volumes: - master-data:/usr/share/elasticsearch/data ports: - 1028:1028 - 1029:1029 volumes: master-data: driver: local
