Elastic Stack Workshop | 刘征 Developer Advocate @ Elastic

Version 0.2.5

搜索、观测、保护三大解决方案实战教程,各种级别和类型的学习资料,欢迎一起学习和共建。

在 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 下载对应的软件包到本地的目录中。

学习目标:

  1. 安装 Elasticsearch 8.1
  2. 在本地操作系统上模拟运行三节点 Elasticsearch 集群
  3. 修改 Elasticsearch 内置管理员用户 elastic 的密码
  4. 运行 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 集群里是否加入了的两个新的节点。

Last updated on 2017-03-19
Published on 2017-03-19
 Edit on GitHub