ElasticSearch 8.2.3 集群安装

1.前提条件

  1. 安装前确保集群已经完成基础环境配置
  2. 本次安装的ElasticSearch软件版本为:8.2.3

2.环境和参数准备

  1. 集群中共有3个节点,分别为:node1node2node3
  2. ElasticSearch的安装目录定为:/opt/elasticsearch-8.2.3
  3. ElasticSearch的数据目录定为:/data/elastic

3.配置及安装

3.1.配置修改

由于ElasticSearch所有节点配置均相同,所以先在集群中1个节点进行配置,然后再将安装文件同步至其他节点即可,先在node1上进行配置,首先解压安装包生成安装目录:

# 在node1上执行
tar -xzf elasticsearch-8.2.3-linux-x86_64.tar.gz -C /opt
cd elasticsearch-8.2.3/ 

这样就将ElasticSearch安装到既定的目录:/opt/elasticsearch-8.2.3下面。

然后在node1上编辑配置文件,修改或增加以下配置,相对目录为:config/elasticsearch.yml

# 集群名称(自定义), 所有节点配置相同名称
cluster.name: yisa
# 节点名称(自定义), 所有节点名称不同, es-1,es-2...
node.name: es-1
# 数据存放目录
path.data: /data/es/data
# 日志存放目录
path.logs: /data/es/logs
# 该节点网络地址
network.host: 192.168.11.13
# 外部通讯端口
http.port: 9200
# 支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Auth-Token,X-Requested-With,Content-Length,Content-Type
http.cors.allow-credentials: true
# 禁用GeoIp数据库的下载
ingest.geoip.downloader.enabled: false

现在相关的配置已经在node1节点上完成配置,需要将ElasticSearch安装目录同步至其他所有节点,并修改对应节点的node.namenetwork.host

# 在node1上执行 
scp -r /opt/elasticsearch-8.2.3 root@node2:/opt
scp -r /opt/elasticsearch-8.2.3 root@node3:/opt

修改config目录下的jvm.options文件

 -Xms16g 
 -Xmx16g

Xms和Xmx大小一致, 不超过物理内存的50%, 不超过32g。如果内存足够大,最大设置为31g。

参考:

16g内存 -Xms8g -Xmx8g

128g内存 -Xms31g -Xmx31g

3.2.初始化数据目录并创建es用户修改文件所有者

在所有的节点创建前面定义的数据目录:

# node1,node2,node3 都需要执行
mkdir -p /data/elastic

在所有的节点创建es用户,并修改文件所有者:

useradd es
chown es:es -R /opt/elasticsearch-8.2.3
chown es:es -R /data/elastic

3.3.检查系统配置

查看当前的文件数量限制是否大于65536,用户可以创建的线程数是否大于等于 4096

ulimit -n
ulimit -u

若当前的文件数量小于65536,用户可以创建的线程数是小于 4096,根据基础环境配置中提供的方式进行修改配置

查看swap交换配置是否等于1

sysctl vm.swappiness

若 vm.swappiness不等于1,则执行以下命令配置:

sysctl -w vm.swappiness=1 >> /etc/sysctl.conf

查看虚拟内存配置

sysctl vm.max_map_count

若 vm.max_map_count小于262144,则执行以下命令配置:

sysctl -w vm.max_map_count=1048570 >> /etc/sysctl.conf

设置默认是临时生效,所以在设置的同时添加-w参数输出到/etc/sysctl.conf之后下次开机也会自动生效了。

从文件中读取当前设置的参数可以使用-p

sysctl -p

3.4.启动服务

切换为es用户执行

su es

node1节点上启动ElasticSearch服务:

# 只在node1上执行执行(-d 参数为后台启动)
./bin/elasticsearch -d

出现下图输出表示默认安全配置启动成功,图中1为elastic用户生成的默认密码,2为Elasticsearch 注册的 token(此token有效期30分钟)

注意:只有第一次启动式才会生成token

截图1-16564703867761

若token过期可以执行以下命令生成新token

./bin/elasticsearch-create-enrollment-token -s node

node2node3节点加入集群:

./bin/elasticsearch -d --enrollment-token token(此处token代指node1节点上生成的具体token值)

默认密码不好记,执行以下命令修改elastic用户的密码:

./bin/elasticsearch-reset-password -u elastic -i

密码修改完后检查集群节点:

curl -u elastic -XGET https://192.168.11.14:9200/_cat/nodes?v

image-20220629110913496

注意:在8.2版本的es中若启用安全性,使用有传入的明文 http 请求会关闭连接,使用https才能正常连接到es服务。

如果并不希望配置 Elasticsearch 具有 HTTPS 的访问,只想配置 Basic authentication。这个时候,在启动 Elasticsearch 之前,针对 Elasticsearch 的配置文件 config/elasticsearch.yml 做如下的修改:

xpack.security.http.ssl.enabled: false

Reference:

  1. https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
  2. https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html