elasticsearch Elasticsearch在机器(节点)故障时恢复数据
我有一台机器,其中我使用docker compose设置了3个节点。 这是我的docker文件elasticsearch Elasticsearch在机器(节点)故障时恢复数据,elasticsearch,docker-compose,elasticsearch,Docker Compose,我有一台机器,其中我使用docker compose设置了3个节点。 这是我的docker文件 version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2 container_name: es01 environment: - node.name=es01 - discovery.seed_hosts=es02,es03
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms24g -Xmx24g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 5051:9200
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms24g -Xmx24g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
container_name: es03
environment:
- node.name=es03
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms24g -Xmx24g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata03:/usr/share/elasticsearch/data
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:7.3.2
environment:
SERVER_NAME: kibana.local
ELASTICSEARCH_HOSTS: http://es01:9200
ports:
- '5601:5601'
networks:
- esnet
volumes:
esdata01:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/ebs/esdata01'
esdata02:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/ebs/esdata02'
esdata03:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/ebs/esdata03'
networks:
esnet:
安装位置是一个外部位置
/ebs/esdata01
问题是机器现在已经崩溃。
我想问的是,如果我得到一台新机器,并在那里设置了相同的docker compose,我是否能够在相应的索引中看到现有数据?
如果没有,那么还有什么替代方法呢?每个节点都需要能够相互通信,这需要一些docker compose网络配置,并且每个节点都需要访问该外部文件系统位置。它们需要具有相同的es群集名称,并且在可以查看数据并将副本设置为至少2后,您可能需要进行一些碎片重新平衡。如果
/ebs
目录是AWS ebs卷,并且您在新EC2实例上重新装载相同的卷,那么这可能会起作用。你遇到了什么特别的问题吗?(请注意,这并不是一个特别有效的“多节点”Elasticsearch设置,原因正是您遇到的,而且“节点”将在CPU、内存和磁盘I/O方面相互竞争。)@David我不确定它是否能正常工作,以避免任何我想确定的问题。。是/ebs是我们在另一台机器上重新安装的共享卷。按照你的建议,我试过了,幸运的是成功了