一、环境准备
Linux centos7系统,IP地址最好在同一网段,同时机器上要有jdk,并且版本不能低于17
IP地址 | 192.168.116.6 | 192.168.116.16 | 192.168.116.26 |
节点名称 | node1 | node2 | node3 |
二、搭建过程
1.先下载好elasticsearch安装包,我用的是8.4.1,下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-4-1
选择相应版本,我这里是Linux x86_64如下图所示:
2.进入相应目录,上传安装包,并解压(三台机器上都要操作,我这里一zknode2为例)
[root@zknode2 ~]# cd /usr/local
[root@zknode2 local]# tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz
2.1新建一个用户
因为elasticsearch处于安全考虑不允许使用root用户
[root@zknode2 local]# useradd es_user #用户名自己随便取,方便记忆
[root@zknode2 local]# passwd es_user
更改用户 es_user 的密码 。
新的 密码: #密码不要过于简单,要兼顾字母大小写、数字和特殊符号
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。 #密码设置成功
3.修改权限
要更改文件的权限以及属主与属组
[root@zknode2 local]# chgrp -R es_user /usr/local/elasticsearch-8.4.1
[root@zknode2 local]# chown -R es_user /usr/local/elasticsearch-8.4.1
[root@zknode2 local]# chmod 777 /usr/local/elasticsearch-8.4.1
777表示所有的用户对这个文件读、写以及执行的权限都有,
chmod表示更改文件权限,
chown表示更改文件的属主与属组,
chgrp表示更改文件的属组
4.编辑文件
修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用
在文件内容最后添加后面两行(注意*不能省略)
[root@zknode2 local]# vim /etc/security/limits.conf
添加以下内容:
* soft nofile 65536
* hard nofile 65536
如下图所示的最后两行可加可不加
5.修改虚拟空间
修改虚拟内存空间,这个根据你的计算机情况来,内存足够就给多点,不足就给小一点,使用一些命令查看:free -m free -h
查看之后在编辑配置文件
[root@zknode2 local]# vim /etc/sysctl.conf
vm.max_map_count=262144 //添加的内容
完成后使用sysctl -p立即执行
[root@zknode1 local]# sysctl -p
vm.max_map_count = 262144 #显示的结果是你修改之后的
6.修改JVM内存,大小根据机器内存来
[root@zknode2 local]# cd elasticsearch-8.4.1/
[root@zknode2 elasticsearch-8.4.1]# cd config
[root@zknode2 config]# vim jvm.options
如图所示:
7.搭建集群
7.1节点1
[root@zknode2 config]# vim elasticsearch.yml
cluster.name: elk
node.name: node-1
path.data: /usr/local/elasticsearch-8.4.1/data
path.logs: /usr/local/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.116.6:9300","192.168.116.16:9300","192.168.116.26:9300"]
cluster.initial_master_nodes: ["192.168.116.6:9300","192.168.116.16:9300","192.168.116.26:9300"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false
cluster.name: elk #集群名字根据自己的需要修改
node.name: node-1 #节点名称,可以不和你的虚拟机名称一致
path.data: /usr/local/elasticsearch-8.4.1/data #根据自己的实际路径填写,如果没有data就需要创建一个目录
[root@zknode2 ~]# mkdir -p /usr/local/elasticsearch-8.4.1/data
[root@zknode1 elasticsearch-8.4.1]# chmod 777 data
[root@zknode1 elasticsearch-8.4.1]# chown es_user data
[root@zknode1 elasticsearch-8.4.1]# chgrp es_user data
path.logs: /usr/local/elasticsearch-8.4.1/logs #同上
discovery.seed_hosts: ["192.168.116.6:9300","192.168.116.16:9300","192.168.116.26:9300"]
cluster.initial_master_nodes: ["192.168.116.6:9300","192.168.116.16:9300","192.168.116.26:9300"] #都填写自己的三台机器IP
节点2、3都是一样的操作,只不过需要改节点名称
7.2启动
切换到你创建的用户启动(三个节点都要操作)
[root@zknode2 config]# su es_user
[es_user@zknode1 config]$ cd ..
[es_user@zknode1 elasticsearch-8.4.1]$ ./bin/elasticsearch -d
如果这一过程出现问题,可能是版本问题,更新以下即可,或者是有一些配置多余,注释掉即可
启动之后就可以进行访问
http://192.168.116.6:9200/_cluster/health
访问结果如图所示:
green:所有的主分片和副本分片都正常运行。
yellow:所有的主分片都正常运行,但有部分副本分片运行不正常。
red:主分片没能正常运行