在 macOS 上运行 Elasticsearch 8.1.0
在 macOS 上运行 Elasticsearch 的目标往往是开发。 运行 macOS 操作系统的苹果电脑的 CPU 可能是 Intel 或者是 M1芯片。 Elasticsearch 在这两种平台上,使用的软件包是不同的。
- Intel : darwin-x86_64.tar.gz
- M1 : darwin-aarch64.tar.gz
访问官方下载页面:https://www.elastic.co/downloads/past-releases/elasticsearch-8-1-0 下载对应的软件包到本地的目录中。
学习目标:
- 安装 Elasticsearch 8.1
- 在本地操作系统上模拟运行三节点 Elasticsearch 集群
- 修改 Elasticsearch 内置管理员用户 elastic 的密码
- 运行 Kibana 服务,启用内置的 Elastic Stack 监控功能
将下载的软件包放在名为 lab2
的目录中,并在这个目录中创建三个空目录:node1 、 node2 和 node3。
打开命令行工具,进入 lab2
目录中,将 Elasticsearch 软件包解压缩三次,放在不同的目录中备用。
tar zxf elasticsearch-8.1.0-darwin-x86_64.tar.gz -C node1
tar zxf elasticsearch-8.1.0-darwin-x86_64.tar.gz -C node2
tar zxf elasticsearch-8.1.0-darwin-x86_64.tar.gz -C node3
打开一个新的命令行窗口,进入 node1 的 Elasticsearch 目录中,运行下面这条命令。
bin/elasticsearch -Ecluster.name=3m -Enode.name=node1
参数解释:
- cluster.name=3m 设定集群的名称为 3m
- node.name=node1 设定本节点的名称为 node1
在以上滚动输出的日志信息中,复制粘贴类似于下面的部分到一个文本编辑器中。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 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`):
FpGuIiBoQ_Sgj5D6bO*R
ℹ️ HTTP CA certificate SHA-256 fingerprint:
95a720bb818071e8dd6bf0b7ec3d0c586d582d1312ff60f2b2eb586a143e7c20
ℹ️ 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):
eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMxLjEyNTo5MjAwIl0sImZnciI6Ijk1YTcyMGJiODE4MDcxZThkZDZiZjBiN2VjM2QwYzU4NmQ1ODJkMTMxMmZmNjBmMmIyZWI1ODZhMTQzZTdjMjAiLCJrZXkiOiI2N1Y0blg4QnhZMkxEbllNc2YtMTpBSWVoS21WSlNReUJMUnphUUE5TDNBIn0=
ℹ️ 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.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这样就成功的启动了 3m 集群里的首个节点,以上启动过程,完成了几件重要的系统安全保障工作。
- 为 elastic 用户创建了随机密码
- 为 Elasticsearch 集群创建了一套节点间加密传授的数字证书
- 为 Kibana 服务器创建了注册配置令牌
- 给出了其它 Elasticsearch 节点加入这个 3m 集群的操作命令
由于随机生成的用户密码可能不方便记忆使用,使用下面的命令修改 elastic 用户的密码。打开一个新的命令行窗口,进入 node1 的 Elasticsearch 目录里。执行命令 bin/elasticsearch-reset-password -u elastic -i
后,输入新的密码 。
~/Downloads/elk/lab2/node1/elasticsearch-8.1.0 bin/elasticsearch-reset-password -u elastic -i
This tool will reset the password of the [elastic] user.
You will be prompted to enter the password.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Re-enter password for [elastic]:
Password for the [elastic] user successfully reset.
上面就成功的修改了 elastic 用户的密码,记录该密码备用。
下一步生成别的其它节点加入这个 Elasticsearch 集群的注册 token,在这个命令行窗口中运行 bin/elasticsearch-create-enrollment-token -s node
命令。
~/Downloads/elk/lab2/node1/elasticsearch-8.1.0 bin/elasticsearch-create-enrollment-token -s node
eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMxLjEyNTo5MjAwIl0sImZnciI6Ijk1YTcyMGJiODE4MDcxZThkZDZiZjBiN2VjM2QwYzU4NmQ1ODJkMTMxMmZmNjBmMmIyZWI1ODZhMTQzZTdjMjAiLCJrZXkiOiJzN2FIblg4QnhZMkxEbllNS3dCaDowT0RIYlE3OFQyV2ZGTmxKODFfUjRnIn0=
在上面的命令行输出信息中,复制所产生的集群加群令牌,备用。
下一步,修改首个节点 node1 的配置文件,在 node1 目录中,用编辑器打开配置文件 config/elasticsearch.yml
,搜索到 transport.host
这个参数所在的行,将本行的注释取消。回到 node1 的 Elasticsearch 服务启动的命令行窗口中,按 ctrl + c
停止 Elasticsearch 服务,然后再次用命令 bin/elasticsearch -Ecluster.name=3m -Enode.name=node1
启动该节点。
下一步启动 Kibana 服务,打开新的命令行窗口,进入 lab2 目录,解压缩 Kibana 软件包,进入 Kibana 目录,然后启动 Kibana 服务器。
~/Downloads/elk/lab2 tar zxf kibana-8.1.0-darwin-x86_64.tar.gz
cd kibana-8.1.0
bin/kibana
在 Kibana 服务器正常启动之后,打开一个浏览器,输入 Kibana 的访问地址:http://localhost:5601
;在 Kibana 的首次登陆配置界面中粘贴入 node1 节点首次启动时所生成的 Kibana 注册令牌,然后点击 ”Configure Elastic“ 按钮。等待 Kibana 配置完毕之后,使用 elastic 用户登录 Kibna。
在 Kibana 左侧菜单中,点击 Management -> Stack Montitoring ,选择启用集群自监控功能。然后进入 3m 集群的节点监控界面。如下图所示。
执行后续的操作,观察 node2 和 node3 的出现。
下面开始模拟 node2 和 node3 加入 3m 集群。我们可以在同一个操作系统的不同目录中启动节点名称不同的Elasticsearch进程,每一个目录里的一个 Elasticsearch 进程就可以模拟一个独立的节点。
打开新的命令行窗口,进入 node2 的 Elasticsearch 目录中。执行下面的命令,注意这里所使用的 token 是上面的命令所生成的。
bin/elasticsearch -Ecluster.name=3m -Enode.name=node2 --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMxLjEyNTo5MjAwIl0sImZnciI6Ijk1YTcyMGJiODE4MDcxZThkZDZiZjBiN2VjM2QwYzU4NmQ1ODJkMTMxMmZmNjBmMmIyZWI1ODZhMTQzZTdjMjAiLCJrZXkiOiJzN2FIblg4QnhZMkxEbllNS3dCaDowT0RIYlE3OFQyV2ZGTmxKODFfUjRnIn0=
打开新的命令行窗口,进入 node3 的 Elasticsearch 目录中。执行下面的命令,注意这里所使用的 token 是上面的命令所生成的。
bin/elasticsearch -Ecluster.name=3m -Enode.name=node3 --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMxLjEyNTo5MjAwIl0sImZnciI6Ijk1YTcyMGJiODE4MDcxZThkZDZiZjBiN2VjM2QwYzU4NmQ1ODJkMTMxMmZmNjBmMmIyZWI1ODZhMTQzZTdjMjAiLCJrZXkiOiJzN2FIblg4QnhZMkxEbllNS3dCaDowT0RIYlE3OFQyV2ZGTmxKODFfUjRnIn0=
在 Elastic Stack 集群自监控界面上,确认 3m 集群里是否加入了的两个新的节点。