三台机器
192.168.56.105
192.168.56.106
192.168.56.107
所有之前先运行下面指令,(防止jvm报错)
1 | sysctl -w vm.max_map_count=262144 |
es-node1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# 集群名称,相同名称为一个集群
cluster.name: elasticsearch-cluster
# 节点名称,集群模式下每个节点名称唯一
node.name: es-node1
# 监听地址,用于访问该es,0.0.0.0代表不限制
network.host: 0.0.0.0
# 表示这个节点是否可以充当主节点
node.master: true
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)
network.publish_host: 192.168.56.105
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 是否充当数据节点
node.data: false
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点,这个是 transport.tcp.port 端口,而不是 http.port
discovery.zen.ping_timeout: 10s #设置集群中自动发现其他节点时ping连接的超时时间
discovery.seed_hosts: ["192.168.56.105:9300","192.168.56.106:9300","192.168.56.107:9300"]
#es7.x 之后新增的配置,初始化几个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.56.105"]
# 跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Lengt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Lengt
#锁内存,提前占用内存(todo:bootstrap checks failed. You must address the points described in the following)
#bootstrap.memory_lock: truees-node2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# 集群名称,相同名称为一个集群
cluster.name: elasticsearch-cluster
# 节点名称,集群模式下每个节点名称唯一
node.name: es-node2
# 监听地址,用于访问该es,0.0.0.0代表不限制
network.host: 0.0.0.0
# 表示这个节点是否可以充当主节点
node.master: false
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)
network.publish_host: 192.168.56.106
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 是否充当数据节点
node.data: true
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点,注意这个是 transport.tcp.port 端口,而不是 http.port
discovery.zen.ping_timeout: 10s #设置集群中自动发现其他节点时ping连接的超时时间
discovery.seed_hosts: ["192.168.56.105:9300","192.168.56.106:9300","192.168.56.107:9300"]
#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.56.105"]
# 跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Lengt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Lengt
#锁内存,提前占用内存
#bootstrap.memory_lock: truees-node3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# 集群名称,相同名称为一个集群
cluster.name: elasticsearch-cluster
# 节点名称,集群模式下每个节点名称唯一
node.name: es-node3
# 监听地址,用于访问该es,0.0.0.0代表不限制
network.host: 0.0.0.0
# 表示这个节点是否可以充当主节点
node.master: false
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)
network.publish_host: 192.168.56.107
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 是否充当数据节点
node.data: true
#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点,注意这个是 transport.tcp.port 端口,而不是 http.port
discovery.zen.ping_timeout: 10s #设置集群中自动发现其他节点时ping连接的超时时间
discovery.seed_hosts: ["192.168.56.105:9300","192.168.56.106:9300","192.168.56.107:9300"]
#新集群初始时的候选主节点,es7的新增配置
cluster.initial_master_nodes: ["192.168.56.105"]
# 跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Lengt
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Lengt
#锁内存,提前占用内存
# bootstrap.memory_lock: true
docker
docker-compose up -d
1 | version: '3' |

GET /_cat/health?help -> 查看各参数含义

锁定内存后报错: bootstrap checks failed. You must address the points described in the following
参见
- 添加以下两行到/etc/security/limits.conf文件中
1
2user soft memlock unlimited
user hard memlock unlimited - user为运行elasticsearch的用户
- 对于远程连接用户(使用putty等工具登陆服务器)来说设置好后退出当前对话(session),非远程连接用户重启机器。
- 然后使用,命令ulimit -a检查是否设置成功

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!