之前安装集群是在一台服务器上的,现在试试多台服务器上,其实步骤差不多。

本次采用docker-compose安装。

==================elasticsearch集群 多台式==================

准备服务器

192.168.89.141
192.168.89.142

// 每台机器增加目录配置文件
mkdir -p /home/soft/elasticsearch/config
mkdir -p /home/soft/elasticsearch/data
mkdir -p /home/soft/elasticsearch/logs
mkdir -p /home/soft/elasticsearch/plugins/ik

// 下载镜像
docker pull 192.168.89.132/third/elasticsearch:7.1.1
docker pull 192.168.89.132/third/kibana:7.1.1

// 下载分词器
cd /home/soft/elasticsearch/plugins/ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/elasticsearch-analysis-ik-7.1.1.zip
// 解压
unzip elasticsearch-analysis-ik-7.1.1.zip
rm -rf elasticsearch-analysis-ik-7.1.1.zip

新增docker-compose.yml 文件

192.168.89.142

vi docker-compose.yml
docker-compose.yml
version: '3'
services:
es10: # 服务名称
image: 192.168.89.132/third/elasticsearch:7.1.1 # 使用的镜像
container_name: es10 # 容器名称
restart: always # 失败自动重启策略
environment:
- node.name=node142 # 节点名称,集群模式下每个节点名称唯一
- network.publish_host=192.168.89.142 # 用于集群内各机器间通信,其他机器访问本机器的es服务
- network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
- discovery.seed_hosts=192.168.89.141,192.168.89.142 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
- cluster.initial_master_nodes=192.168.89.141 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
- cluster.name=ms-es-cluster # 集群名称,相同名称为一个集群
- bootstrap.memory_lock=false # 内存交换的选项,官网建议为true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置内存
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/soft/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
- /home/soft/elasticsearch/data:/usr/share/elasticsearch/data # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。
- /home/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件目录
- /home/soft/elasticsearch/logs:/usr/share/elasticsearch/logs #插日志目录
ports:
- 9200:9200 # http端口
- 9300:9300 # es节点直接交互的端口,非http

 

192.168.89.141 ,与192.168.89.142对比只有发布ip、节点名称不一样,其他都一样

vi docker-compose.yml
docker-compose.yml
version: '3'
services:
es10: # 服务名称
image: 192.168.89.132/third/elasticsearch:7.1.1 # 使用的镜像
container_name: es10 # 容器名称
restart: always # 失败自动重启策略
environment:
- node.name=node141 # 节点名称,集群模式下每个节点名称唯一
- network.publish_host=192.168.89.141 # 用于集群内各机器间通信,其他机器访问本机器的es服务
- network.host=0.0.0.0 # 设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
- discovery.seed_hosts=192.168.89.141,192.168.89.142 # es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
- cluster.initial_master_nodes=192.168.89.141 # es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
- cluster.name=ms-es-cluster # 集群名称,相同名称为一个集群
- bootstrap.memory_lock=false # 内存交换的选项,官网建议为true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 设置内存
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/soft/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # 将容器中es的配置文件映射到本地,设置跨域, 否则head插件无法连接该节点
- /home/soft/elasticsearch/data:/usr/share/elasticsearch/data # 存放数据的文件, 注意:这里的esdata为 顶级volumes下的一项。
- /home/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件目录
- /home/soft/elasticsearch/logs:/usr/share/elasticsearch/logs #插日志目录
ports:
- 9200:9200 # http端口
- 9300:9300 # es节点直接交互的端口,非http

 

都增加配置文件

vi elasticsearch.yml
内容如下很少:
network.host: 0.0.0.0
http.cors.enabled: true # 设置跨域,主要用于head插件访问es
http.cors.allow-origin: "*" # 允许所有域名访问

后台启动容器:

chmod 777 docker-compose.yml
docker-compose up -d

 

访问测试:
单台:

http://192.168.89.142:9200

 

集群:

http://192.168.89.142:9200/_cat/nodes?pretty

 

ELK elasticsearch docker 多台服务器集群_配置文件

 

 

配置密码,步骤与之前的一致。注意,主节点只写一个,否则会出现节点没完全启动问题