1.配置dockercompose配置文件

version: '2'services:  elasticsearch:    image: es/elasticsearch:7.7    container_name: es1    restart: always    dns_search: .    environment:      - bootstrap.memory_lock=true      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"    ulimits:      memlock:        soft: -1        hard: -1    volumes:# data索引数据存储门路,logs日志输入,config配置      - /etc/timezone:/etc/timezone      - /etc/localtime:/etc/localtime      - ./es/data:/usr/share/elasticsearch/data      - ./es/logs:/usr/share/elasticsearch/logs      - ./elasticsearch/config:/usr/share/elasticsearch/config    ports:      - 9200:9200      - 9300:9300    external_links:      - es2 #同一机器下容器名称(为避免同一机器下docker容器之间不能通过ip进行互通)      - es3    tty: truenetworks:  default:    external:      name: esnetwork #同一机器下,所有节点须要在同一网络下

2.eLasticSearch配置文件批改

cluster.name: es-clusternode.name: es-node1network.bind_host: 0.0.0.0network.publish_host: 本机ip地址http.port: 9200transport.tcp.port: 9300http.cors.enabled: truehttp.cors.allow-origin: "*"##一下五行为配置X-pack平安xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificate ##指定证书门路xpack.security.transport.ssl.keystore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.path: elastic-certificates.p12##是否参加master节点选举node.master: true ##是否存储数据node.data: true#discovery.seed_hosts: ["elasticsearch2:10293","elasticsearch1:10193"]#cluster.initial_master_nodes: ["es-node0","es-node1","es-node2"]## 指定该集群下所有节点及端口(同一机器下能够用容器名称代替机器ip(前提是须要在dockerCompose配置中增加该节点的容器名))discovery.seed_hosts: ["141.3.186.01:9301","es2:9302","es3:9303"]##参加master节点选举的节点名称汇合cluster.initial_master_nodes: ["es-node1","es-node2","es-node3"]

3.其余节点可按照此配置对立配置,需注意:集群名称需统一,容器名称、节点名称、ip地址、端口号等不同。

配置实现后对立启动 docker-compose启动命令:

  • docker-compose up -d #启动
  • docker-compose restart #重启

可通过拜访如下门路查看是否搭建胜利:

http://141.3.186.01:9200/_cat/nodes?v&pretty


如图显示所有节点阐明配置胜利了

4.遇到问题

1.如果集群短少几点(显示节点不全)
解决办法:敞开所有节点,删除所有节点的logs下的日志文件,而后重启所有节点。(可多试几次)

5.对于X-pack配置可参考如下文档

ES--es7.6.1开明平安防护认证流程