看了后悔五分钟,不看后悔每分钟。Elasticsearch最新版本8.0的集群安装指南《嘴对嘴系列》

引言

前面我们基于Elasticsearch8.2版本,从环境安装quick start安全配置层层递进构建了一个基于VMware的虚拟机学习环境,并且安装了单机下的开发和生产模式的Elasticsearch和Kibana,并且进行了安全配置,大家对这一套已经相对熟悉了,今天我们这一篇将作为安装篇的最终章,构建一个真实的生产Elasticsearch集群。更重要的是,Elasticsearch8.x版本默认开启安全认证,那么对于安全性开启下的集群构建,提供了更加便捷的方式。后面我们将开启新的一篇,《术语篇》结合Elasticsearch的API来彻底搞懂术语。

天也不早了,人也不少了,我们开撸。

网络拓扑

我们预计搭建三个节点,ESNode-01,ESNode-02,ESNode-03,每个节点安装Elasticsearch构建集群,在节点ESNode-01安装Kibana。

在这里插入图片描述

克隆节点

先将前三节中实验的虚拟机节点ESNode-01关机,在虚拟机操作页面进行克隆出ESNode-02ESNode-03

在这里插入图片描述

分别把ESNode-02和ESNode-03的IP进行修改。


vi /etc/sysconfig/network-scripts/ifcfg-ens33

service network restart

复制代码

现在我们有三台机器进行生产集群的控制。为了让这篇搭建文章系统性,我会再次快速对默认情况下的Elasticsearch安装进行演示,如果你已经清楚了注意点,可以直接跳转到下节,安全启用下注册Kibana。

  1. 将上传的Elasticsearch包进行解压
tar -zxvf elasticsearch-8.2.2-linux-x86_64.tar.gz 

复制代码
  1. 先通过bin/elasticsearch首次启动es生成一些自带的配置,不要忘记切换到非root用户

需要注意的是,首次启动,安全配置的一些信息会自动进行配置。

  • 为传输HTTP层生成TLS的证书密钥。在config文件夹下的certs目录
  • TLS配置设置写入elasticsearch.yml
  • elastic用户生成密码。
  • 为Kibana生成注册令牌。

解读一下启动日志

✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  zQvUTJ1H2fTXRzgdzN=1

ℹ️  HTTP CA certificate SHA-256 fingerprint:
  7dd378a453f8908464194723161b8892088ea94b7989b24167c373654f7a8c34

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjIuMiIsImFkciI6WyIxNzIuMTYuMTkyLjEwMTo5MjAwIl0sImZnciI6IjdkZDM3OGE0NTNmODkwODQ2NDE5NDcyMzE2MWI4ODkyMDg4ZWE5NGI3OTg5YjI0MTY3YzM3MzY1NGY3YThjMzQiLCJrZXkiOiJ0em82am9FQmc1M25jenMxV1FvRzpHUFcxd0Q4RlRDU1pxMnFzQUVCSkdBIn0=

ℹ️  Configure other nodes to join this cluster:
• On this node:
  ⁃ Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ⁃ Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ⁃ Restart Elasticsearch.
• On other nodes:
  ⁃ Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.

复制代码

Kibana的token使用生成

bin/elasticsearch-create-enrollment-token --scope kibana

复制代码
  1. 更改安装目录下config/elasticsearch.yml

此处我们进行几个关键性的配置修改

# 集群名称,其他节点用来发现
cluster.name: es-learn-01
# 节点名称
node.name: node-1
# 向外暴露的IP,更改之后es会切换成生产模式,进行系统配置预检
network.host: 172.16.192.101
# 集群发现节点host配置,这里我们填了将要连接的两个地址
discovery.seed_hosts: ["172.16.192.101", "172.16.192.102","172.16.192.103"]


复制代码
  1. 更改完配置后再次启动,验证
curl --cacert config/certs/http_ca.crt -u elastic https://172.16.192.101:9200

复制代码

在这里插入图片描述

安全性启用下注册Kibana

Kibana和Elasticsearch进行关联,可以使用两种方式,一种是浏览器的交互模式,一种是非浏览器的分离模式

修改Kibana的绑定IP配置

server.host:172.16.192.101

复制代码

bin/kibana

复制代码

在这里插入图片描述

首次启动进入了配置页面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用Elasticsearch的elastic账户登录,之后可以进行Kibana进行操作账户创建

安全性开启下加入其他节点构建集群

  1. 在第一个启动的节点,生成加入该节点的token,保存下来

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

eyJ2ZXIiOiI4LjIuMiIsImFkciI6WyIxNzIuMTYuMTkyLjEwMTo5MjAwIl0sImZnciI6IjdkZDM3OGE0NTNmODkwODQ2NDE5NDcyMzE2MWI4ODkyMDg4ZWE5NGI3OTg5YjI0MTY3YzM3MzY1NGY3YThjMzQiLCJrZXkiOiJVenlPam9FQlZET2hnc0tVVlZxTDppamJqbHYyR1JHQ1Zybnp3dDZCZnV3In0=

复制代码

在这里插入图片描述

  1. 修改将要安装的es配置文件
cluster.name: es-learn-01
node.name: node-2
network.host: 172.16.192.102

复制代码
  1. 暴露本机的9200,9300端口
/sbin/iptables -I INPUT -p tcp --dport 9300 -j ACCEPT 

复制代码
  1. 携带token启动es
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjIuMiIsImFkciI6WyIxNzIuMTYuMTkyLjEwMTo5MjAwIl0sImZnciI6IjdkZDM3OGE0NTNmODkwODQ2NDE5NDcyMzE2MWI4ODkyMDg4ZWE5NGI3OTg5YjI0MTY3YzM3MzY1NGY3YThjMzQiLCJrZXkiOiJVenlPam9FQlZET2hnc0tVVlZxTDppamJqbHYyR1JHQ1Zybnp3dDZCZnV3In0=

复制代码
  1. 对于节点3执行同样的步骤

通过Kibana查看集群的情况

在这里插入图片描述

至此,基于Elasticsearch8.x版本,在开启安全性构建集群的教程已经全部完结,相比于之前的版本来说,Elasticsearch提供了更加便捷的构建方式,甚至不需要手动生成相关秘钥。

如果你有任何的问题,欢迎加群一起探讨

分类:
后端
标签: