elasticsearch集群搭建

1.主机信息

name ip port serivce
A 10.1.60.114 9200,9300 elasticsearch
B 10.1.60.115 9200,9300 elasticsearch
C 10.1.60.118 9200,9300 elasticsearch

2.基础环境配置

每台主机都要执行一遍以下配置

jdk环境配置

elasticsearch使用的是7.17.10版本,需要配置jdk 11版本以上的环境

参考:jdk1.8环境配置_Apex Predator的博客-CSDN博客

 优化主机,必须要优化,不优化的话elasticsearch集群不能正常启动

内核优化

vi /etc/security/limits.conf

* soft nofile 65537
* soft nproc 65537
* soft memlock unlimited  #配置内存锁,配置集群必须添加,单节点不加
* hard nofile 65537
* hard nproc 65537
* hard memlock unlimited  #配置内存锁,配置集群必须添加,单节点不加

 vi /etc/security/limits.d/20-nproc.conf

*          soft    nproc     4096  #变更soft  nproc项值为4096

vi /etc/sysctl.conf 

vm.max_map_count = 262144    #用于设置每个进程能够拥有的最大内存映射区域数量,这个参数通常用于支持 Elasticsearch、Logstash 等应用程序,如果这些应用程序需要使用大量内存映射区域,就需要增加这个参数的值
net.core.somaxconn = 65535    #于设置系统中每个监听套接字的最大连接数。这个参数通常用于支持高并发的网络应用程序,例如 Web 服务器。增加这个参数的值可以提高系统的并发性能
net.ipv4.ip_forward = 1   #用于启用 IP 转发功能,允许系统作为路由器转发数据包。这个参数通常用于构建复杂的网络拓扑,例如 VPN 网络
执行以下命令使配置生效

sysctl -p

3.安装elasticsearch

每台主机都要执行一遍以下配置

在官网下载elasticsearch的安装包,本次搭建选择了7.17.10版本 

下载连接:Past Releases of Elastic Stack Software | Elastic

新建目录,将安装包上传到主机中并解压更改名称

mkdir /opt/elasticsearch

cd /opt/elasticsearch

tar -zxvf elasticsearch-7.17.10-linux-x86_64.tar.gz

mv elasticsearch-7.17.10-linux-x86_64 elasticsearch

ls /opt/elasticsearch

编辑elasticsearch配置文件

vi /opt/elasticsearch/elasticsearch/config/elasticsearch.yml

cluster.name: es-cluster    #集群名称
node.name: es01            #该节点名称
node.master: true          #配置本节点具备master功能,若不需要则配置为flase,默认节点是具备此功能,配置文件里默认没有此项配置
node.data: true            #配置本节点具备data功能,若不需要则配置为flase,默认节点是具备此功能,配置文件里默认没有此项配置
path.data: /opt/elasticsearch/elasticsearch/data   #配置elasticsearch存储数据路径
path.logs: /opt/elasticsearch/elasticsearch/log    #配置elasticsearch存储日志路径
bootstrap.memory_lock: true                #配置内存锁
network.host: 10.1.60.115       #配置节点地址
http.port: 9200               #配置elasticsearch服务端口
discovery.seed_hosts: ["10.1.60.114", "10.1.60.115","10.1.60.118"]   #配置集群所有节点地址
cluster.initial_master_nodes: ["es01", "es02","es03"]            #配置集群所有节点名称
  

每台主机的配置文件node.name项不能相同,network.host根据自己的主机实际地址填写,其余的配置都一样 

创建elasticsearch服务的用户,elasticsearch服务不能使用root启动,不然会报错

groupadd elasticsearch

useradd elasticsearch -g elasticsearch -p elasticsearch   #-g指定用户组  -p指定密码

chown -R elasticsearch.elasticsearch /opt/elasticsearch/elasticsearch  

切换用户启动es服务

su elasticsearch

/opt/elasticsearch/elasticsearch/bin/elasticsearch -d   #-d为后台启动es服务

访问es服务看是否正常

http://10.1.60.114:9200
elasticsearch集群搭建_第1张图片

看到以上输出即正常

当所有节点的elasticsearch服务都启动后在网页上访问以下地址查看集群

http://10.1.60.114:9200/_cluster/state/master_node,nodes?pretty

elasticsearch集群搭建_第2张图片

可以看到集群已经识别到了三个节点

也可以使用elasticsearch head应用查看集群

elasticsearch集群搭建_第3张图片

 4.集群试验

通过kill关闭elasticsearch服务,模拟主节点宕机,查看集群是否重新选主,分片是否重新均衡分配

ps -ef |grep elasticsearch

kill 6388

通过elasticsearch head查看es集群状态

可以看到集群的状态变成了yellow,集群先是自动在从节点中选新的主节点,挂掉的主分片也在副本分片中重新选主,但是分片还没有重新均衡分配,在挂掉的主节点上的分片也还没重新分配到新的节点上

elasticsearch集群搭建_第4张图片

 等一会之后,大概十多秒,重新刷新页面,所有索引分片重新均衡分配在存活的节点上,但是对于索引分片数量大于存活节点数量的,多余的分片就没办法分配,除非有新节点加入elasticsearch集群搭建_第5张图片

重新启动被关闭的节点

su elasticsearch

/opt/elasticsearch/elasticsearch/bin/elasticsearch -d

通过elasticsearch head查看es集群状态

可以看到启动后,节点在es集群中的状态恢复了正常,但是分片还没有重新均衡分配

elasticsearch集群搭建_第6张图片

 等了一下之后,所有索引分片重新均衡分配在存活的节点上elasticsearch集群搭建_第7张图片

你可能感兴趣的:(elk,elasticsearch,大数据,搜索引擎)