ElasticSearch学习笔记(三)Ubuntu 2204 server elasticsearch集群配置

如果你只是学习elasticsearch的增、删、改、查等相关操作,那么在windows上安装一个ES就可以了。但是你如果想在你的生产环境中使用Elasticsearch提供的强大的功能,那么还是建议你使用Linux操作系统。

本文以在Ubuntu 2204 server中安装elasticsearch 8.11为例向同学们演示如何在Linux操作系统中安装并配置Elasticsearch.

0.前置条件

0.1 准备三台服务器

可以是物理机也可以是虚拟机,三台服务器安装好ubuntu 2204 server,我的三台服务器都是在虚拟机中,以下是我的相关配置。

IP地址节点服务器配置
192.168.50.5node1Elasticsearch[master/data] kibana 8C 16G ubuntu2204
192.168.50.6node2Elasticsearch [master/data]8C 8G ubuntu2204
192.168.50.7node3Elasticsearch [master/data] 8C 8G ubuntu2204

0.2 配置好系统时区,保证3台服务器的时区一致。

0.3 关闭交换内存

修改/etc/fstab文件,将/swap.img那行注释掉,然后重启系统。
在这里插入图片描述
0.4.重命名系统主机名分别为node1,node2,node3,node4

hostnamectl set-hostname <node1>

检查自己的配置。
在这里插入图片描述
从上图可以看到我的准备好了三台服务器,分别为node1,node2,node3,三台服务器都在CST时区,并且关闭了交换内存。
0.5 修改sshd_config配置,允许root远程登录。

1.安装elasticsearch

在每个节点上执行下面的操作,使用deb包安装的elasticsearch 8.11.

⚠️ 安装elasticsearch需要使用普通用户。安装完成后,会在系统中自动添加一个elasticsearch用户和用户组。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.1-amd64.deb
sudo dpkg -i elasticsearch-8.11.1-amd64.deb

在这里插入图片描述
安装非常顺利,由于我们使用的deb包安装,所以安装非常的友好,并且安装完成后可以使用systemctl来管理我们的elasticsearch,下图是我三个节点安装成功的截图,大家一定要仔细阅读安装完成的信息。
在这里插入图片描述
在安装完成输出信息中同学们一定要注意以下几点信息。

  1. 默认安装启用身份验证和授权,并自动配置了传输层和HTTP层的TLS.
  2. 为内置超级用户生成了密码。
  3. 加入节点的命令。
  4. 为kibana实例生成注册令牌的命令。
  5. 启动systemctl服务的命令。

按照提示,我们在每个节点执行以下命令重载systemctl守护并将elasticsearch服务加入开机自启。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

2.配置node1上的elasticsearch

接下来的操作都是一些配置工作,所以这里我直接切换成root用户了。通过前面安装方式安装的elasticsearch配置文件为/etc/elasticsearch/elasticsearch.yml,接下来我们要经常和这个配置文件打交到。

vim /etc/elasticsearch/elasticsearch.yml

在这里插入图片描述
在节点1的elasticsearch配置我们主要修改以下几个配置项。

  1. 集群名称: cluster.name

    cluster.name: es-cluster
    

    集群中的每个节点的集群名称要保持一致。

  2. 节点名称:node.name: node-1

    node.name: node-1
    

    集群中每个节点的节点名称要保持唯一,比如分别为:node-1,node-2,node-3。

  3. 网络地址:network.host:

    network.host: 192.168.50.5
    

    network.host使用本机的IP地址

  4. 端口号:http.port:

    http.port: 9200
    

    这里保持默认的9200即可,也可以自定义这个端口,注意要大于1024小于65535,并且是系统未使用的端口。

  5. 集群初始化主节点:cluster.initial_master_nodes:

    cluster.initial_master_nodes: ["192.168.50.5"]
    

    这里默认使用主机名作为初始化主节点的配置,建议修改成主机IP。

修改好以上5个配置后,保存配置文件,其它的配置,同学们可以通过阅读配置说明自行修改。

3.启动node1上的elasticsearch

前面我们修改了node1上的配置文件,接下来使用下面的命令启动elasticsearch.

systemctl start elasticsearch

如果启动过程没有报错信息,就OK了,也可以使用以下命令查看elasticsearch的状态。

systemctl status elasticsearch

在这里插入图片描述

4.使用浏览器查看ES状态

在浏览器地址栏中输入https://<node-1.ip>:9200,就会打开ES的登录界面。
在这里插入图片描述
这里的用户名就是elastic,密码就是安装完成时输出信息中给出的密码,如果你不想使用默认密码,也可以使用下面的命令自定义elastic的密码。

/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic

在这里插入图片描述
刷新es的登录页面,使用新的自定义密码就能登录了,登录后会显示ES集群的一些信息。
在这里插入图片描述

5.配置node2

node2的配置和node1基本相同,以下是node2的配置,按照前面的方法修改node2的elasticsearch.yml文件并保存退出。

vim /etc/elasticsearch/elasticsearch.yml

node2的配置项

cluster.name: es-cluster
node.name: node-2
network.host: 192.168.50.6
http.port: 9200
cluster.initial_master_nodes: ["192.168.50.6"]

⚠️ 配置完成后一定不要启动ES。

6.将node2加入集群

按照ES官方的方式将node2加入集群。

首先在node1上使用下面的命令生成集群令牌令牌。

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

在这里插入图片描述
然后在node2上使用下面的命令将node2加入集群。

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token>

就是在node1上生成的那串字符。

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjExLjEiLCJhZHIiOlsiMTkyLjE2OC41MC41OjkyMDAiXSwiZmdyIjoiZGE3ZjFiZGY1NWEzMGE0NDViNjQ2ZTc1NDc4YmQ0YmIyNjA2YzUwOGJkYmFmZWRmMDg1OTQ1ODdjOThmOWI2MCIsImtleSI6ImwtS2FVWklCU0ZNc1BNTm5haWRvOklRYlNyM29wU2pLZFA1Rk8za19oTmcifQ==

在这里插入图片描述
上图是我操作的截图,通过上面的操作我们已经将节点node2加入到集群了。

这里注意有一段非常重要的输出提示,我复制出来,后面还会用到。

This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically:
  - Security auto configuration will be removed from elasticsearch.yml
  - The [certs] config directory will be removed
  - Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

使用下面的命令启动node2上的Elasticsearch。

systemctl start elasticsearch

如果启动过程没有报错信息,说明node2已经加入到集群了,接下来我们就可以在浏览器中我们可以查看集群的状态了。
在这里插入图片描述

7.修改node3的配置

修改node3的配置项并保存,需要修改的配置项如下。

cluster.name: es-cluster
node.name: node-3
network.host: 192.168.50.7
http.port: 9200
#cluster.initial_master_nodes: ["node3"]
discovery.seed_hosts: ["192.168.50.5:9300"]

⚠️ 修改完成后保存退出,但是不要启动ES

8.将node3加入集群

我们可以按照node2加入集群的方法将node3加入集群,但是这里我想尝试使用另外一种方法将节点加入到集群。

在使用elasticsearch-reconfigure-node命令将node2加入节点时,有一段输出信息。

This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically:
  - Security auto configuration will be removed from elasticsearch.yml
  - The [certs] config directory will be removed
  - Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

上面的提示信息告诉我们命令elasticsearch-reconfigure-node会自动配置elasticsearch.yml,并删除certs目录中的文件以及elasticsearch.keystore.

其实就是使用node1 certs中的文件覆盖了node2 certs中的文件,node1 的elasticsearch.keystore覆盖了node2的elasticsearch.keystore文件。我们按照这个思路,让node1的相关文件覆盖node3相关文件。

scp /etc/elasticsearch/certs/* root@192.168.50.7:/etc/elasticsearch/certs/

在这里插入图片描述

scp /etc/elasticsearch/elasticsearch.keystore root@192.168.50.7:/etc/elasticsearch/

在这里插入图片描述
启动elasticsearch

systemctl start elasticsearch

如果没有报错信息,说明node3上的ES启动成功。

通过浏览器查看集群状态,发现node3已经加入了集群。
在这里插入图片描述

好了,今天的教程就到此为止,要给儿子做饭了,大家有问题可以留言给我,我看到会给大家回复了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alfiy

欢迎请博主喝瓶矿泉水

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值