搭建es集群

348 阅读3分钟

ES 版本:7.1.0

安装前系统配置

设置内核参数
vi /etc/sysctl.conf
# 增加以下参数
vm.max_map_count=655360
执行以下命令,确保生效配置生效:
sysctl -p
设置资源参数
vi /etc/security/limits.conf
# 修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk    soft    nproc     65536
tar -zxvf elasticsearch-7.1.0-linux-x86_64.tar.gz
  1. 创建ES用户和密码
useradd esuser
passwd  esuser
  1. 授权文件夹所属组和权限
chown -R esuser:esuser  elasticsearch-7.1.0/
chowd -R +x elasticsearch-7.1.0/bin

4.修改ES配置文件

cd  elasticsearch-7.1.0/config
vim elasticsearch.yml

复制代码编辑内容如下:

cluster.name: wechat-cluster
node.name: node-3
node.master: true
node.data: true
path.data: /AMT/elasticsearch/data
path.logs: /AMT/elasticsearch/logs
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false 
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["10.196.11.100:9300", "10.196.11.101:9300", "10.196.11.102:9300"]
discovery.zen.minimum_master_nodes: 2 

复制代码同样的方式编辑节点2,节点3 完成用户的创建和配置文件的更改 5.启动ES集群 使用ES用户依次启动ES01,ES02 、ES03节点

[root@localhost bin]# pwd
/home/apps/es/elasticsearch-7.1.0/bin
[esuser@localhost bin]$ ./elasticsearch -d      # 以后台方式启动

集群配置文件

cluster.name: cms-cluster
node.name: node-3
node.master: true
node.data: true
path.data: /AMT/elasticsearch/data
path.logs: /AMT/elasticsearch/logs
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false 
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: [节点ip]
discovery.zen.minimum_master_nodes: 2 

详细配置

集群的名称通过 cluster.name 可以配置集群的名称,集群是一个整体,因此名称都要一致,
所有主机都配置成相同的名称,配置示例:
cluster.name: germey-es-clusters
复制代码节点的名称通过 node.name 可以配置每个节点的名称,每个节点都是集群的一部分,
每个节点名称都不要相同,可以按照顺序编号,复制代码其他的主机可以配置为 es-node-2、es-node-3 等
node.name: es-node-1
是否有资格成为主节点通过 node.master 可以配置该节点是否有资格成为主节点,如果配置为 true,则主机有资格成为主节点,
配置为 false 则主机就不会成为主节点,可以去当数据节点或负载均衡节点。注意这里是有资格成为主节点,不是一定会成为主节点,
node.master: true
复制代码是否是数据节点通过 node.data 可以配置该节点是否为数据节点,如果配置为 true,则主机就会作为数据节点,注意主节点也可以作为数据节点,
当 node.master 和 node.data 均为 false,则该主机会作为负载均衡节点。
这里我配置所有主机都是数据节点,因此都配置为 true,配置示例:node.data: true
复制代码数据和日志路径通过 path.data 和 path.logs 可以配置 Elasticsearch 的数据存储路径和日志存储路径,可以指定任意位置,这里我指定存储到 1T 硬盘对应的路径下,另外注意一下写入权限问题,配置示例:
path.data: /datadrive/elasticsearch/data
path.logs: /datadrive/elasticsearch/logs
复制代码设置访问的地址和端口我们需要设定 Elasticsearch 运行绑定的 Host,默认是无法公开访问的,
如果设置为主机的公网 IP 或 0.0.0.0 就是可以公开访问的,这里我们可以都设置为公开访问或者部分主机公开访问
network.host: 0.0.0.0
复制代码如果不想被公开访问就不用配置。另外还可以配置访问的端口,默认是 9200:http.port: 9200
复制代码集群地址设置通过 discovery.zen.ping.unicast.hosts
可以配置集群的主机地址,配置之后集群的主机之间可以自动发现,这里我配置的是内网地址,配置示例:
discovery.zen.ping.unicast.hosts: ["10.0.0.9", "10.0.0.10"]
复制代码这里请改成你的主机对应的 IP 地址。节点数目相关配置为了防止集群发生“脑裂”,
即一个集群分裂成多个,通常需要配置集群最少主节点数目,通常为 (可成为主节点的主机数目 / 2) + 1,例如我这边可以成为主节点的主机数目为 7,那么结果就是 4,配置示例:
discovery.zen.minimum_master_nodes: 4
复制代码另外还可以配置当最少几个节点回复之后,集群就正常工作,这里我设置为 4,可以酌情修改,配置示例:
gateway.recover_after_nodes: 4