elasticsearch Elasticsearch在机器(节点)故障时恢复数据,elasticsearch,docker-compose,elasticsearch,Docker Compose" /> elasticsearch Elasticsearch在机器(节点)故障时恢复数据,elasticsearch,docker-compose,elasticsearch,Docker Compose" />

elasticsearch Elasticsearch在机器(节点)故障时恢复数据

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

我有一台机器,其中我使用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
      - 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是我们在另一台机器上重新安装的共享卷。按照你的建议,我试过了,幸运的是成功了