Elasticsearch:创建多个节点的集群 - Elastic Stack 8.0

在我之前的文章:

我详细描述了如何安装单节点的 Elastic Stack。在今天的教程中,我详述如何安装3个节点的 Elasticsearch 集群。我将使用 Docker 来进行部署。

创建多个节点的集群 - Elastic Stack 8.0

创建多个节点的集群 - Elastic Stack 8.0_哔哩哔哩_bilibili

首先,我们使用如下的命令来创建第一个 Elasticsearch 节点:

docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.0.0
docker run -e ES_JAVA_OPTS="-Xms1g -Xmx1g" --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.0.0

在启动的过程中,我们可以看到如下的输出:

如果你看不到上面的输出,请向上翻动,直到能找到像上面的输出。

等 Elasticsearch 启动后,我们可以使用如下的命令来进行检查:

curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200

由于是自签名证书,所以,我们可以使用 --insecure 来进行上面的操作。当然,我们也可以仿照我之前在文章 “Elastic:使用 Docker 安装 Elastic Stack 8.0 并开始使用” 中介绍的那样:

curl -X GET --cacert ./http_ca.crt -u elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/

我们需要拷贝出来证书 http_ca.crt。请注意上面的密码是在上面 Elasticsearch 启动时显示的密码。

从上面的输出中,我们可以看出来,我们已经成功地启动了第一个节点。我们可以使用如下的命令来进行查看:

curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes

$ curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes
172.24.0.2 56 30 0 0.04 0.03 0.04 cdfhilmrstw * 2b7bdc81eb56

我们接下来使用如下的命令来创建第二个节点:

docker run -e ENROLLMENT_TOKEN="eyJ2ZXIiOiI4LjAuMCIsImFkciI6WyIxNzIuMjQuMC4yOjkyMDAiXSwiZmdyIjoiZTQzNTQyMWJlNTRiMGM2ZGJjYWU1M2NlNDBjMWQwYTFhNWM3YWRmMmEzZTJlZTc2OTQyMjc3YTZhYzdjZDBlNyIsImtleSI6IjR1SG9GSDhCYVhsVEQ2N1U4QlBuOjRkNDduNmd5UUFTcHBvWG5zbjNUckEifQ==" -e ES_JAVA_OPTS="-Xms1g -Xmx1g" --name es-node02 --net elastic -it docker.elastic.co/elasticsearch/elasticsearch:8.0.0

在上面,我们使用了之前第一个节点启动时的集群 enrollment token,同时我们省去了端口的 mapping。

等这个节点完全启动后,我们再次使用如下的命令来进行查看:

curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes

$ curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes
172.24.0.2 21 42 1 0.03 0.10 0.06 cdfhilmrstw * 2b7bdc81eb56
172.24.0.3 11 42 1 0.03 0.10 0.06 cdfhilmrstw - 3f97cfe38a4e

这个时候,我们可以看到有两个节点的集群了。

我们使用同样的方法来启动第三个节点。运行如下的命令:

docker run -e ENROLLMENT_TOKEN="eyJ2ZXIiOiI4LjAuMCIsImFkciI6WyIxNzIuMjQuMC4yOjkyMDAiXSwiZmdyIjoiZTQzNTQyMWJlNTRiMGM2ZGJjYWU1M2NlNDBjMWQwYTFhNWM3YWRmMmEzZTJlZTc2OTQyMjc3YTZhYzdjZDBlNyIsImtleSI6IjR1SG9GSDhCYVhsVEQ2N1U4QlBuOjRkNDduNmd5UUFTcHBvWG5zbjNUckEifQ==" -e ES_JAVA_OPTS="-Xms1g -Xmx1g" --name es-node03 --net elastic -it docker.elastic.co/elasticsearch/elasticsearch:8.0.0

我们再次运行上面的命令来进行查看:

 curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes

$ curl --insecure --user elastic:qTfj3Vfm+6RT1VrCbmwV https://localhost:9200/_cat/nodes
172.24.0.4 54 55 15 1.41 0.42 0.17 cdfhilmrstw - c689910d1448
172.24.0.3 34 55  5 1.41 0.42 0.17 cdfhilmrstw - 3f97cfe38a4e
172.24.0.2 60 55  5 1.41 0.42 0.17 cdfhilmrstw * 2b7bdc81eb56

这个时候,我们可以看到有三个节点的集群。我们可以通过 docker 查看运行的容器:

我们可以看到有三个容器正在运行中。

我们接下来启动 Kibana:

docker run -e SERVER_PUBLICBASE_URL="http://liuxg.com:5601" --name kib-01 --net elastic -p 5601:5601 -it docker.elastic.co/kibana/kibana:8.0.0

我们可以看到如下的输出:

在上面,我定义了SERVER_PUBLICBASE_URL,尽管这个是不必要的。你需要在你的电脑中的 /etc/hosts 进行定义喜欢的域名。

如上所示,它输出一个链接http://0.0.0.0:5601/code=038556 让我们在浏览器中输入:

上面的 enrollment token 在第一个 Elasticsearch 启动后的有效时间为30分钟。超过30分钟的时间上述 token 将会无效。如果这种情况发生,我们可以可以使用如下的方法来生成一个新的 token:

同样地节点 enrollment token 的有些时间也是30分钟,你可以使用如下的方法来进行生成:

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

我们接下来在 Kibana 的界面输入我们之前的 elastic 用户的密码:

这样我们就进入到 Kibana 的界面。我们可以通过如下的方法来查看创建的三个节点的集群:

如果我们想清理目前已经创建的集群。我们可以做如下的动作。我们首先查看已经创建的容器:

docker ps

$ docker ps
CONTAINER ID   IMAGE                                                 COMMAND                  CREATED          STATUS          PORTS                                            NAMES
6eb0fc34ee9c   docker.elastic.co/kibana/kibana:8.0.0                 "/bin/tini -- /usr/l…"   22 minutes ago   Up 22 minutes   0.0.0.0:5601->5601/tcp                           kib-01
c689910d1448   docker.elastic.co/elasticsearch/elasticsearch:8.0.0   "/bin/tini -- /usr/l…"   27 minutes ago   Up 27 minutes   9200/tcp, 9300/tcp                               es-node03
3f97cfe38a4e   docker.elastic.co/elasticsearch/elasticsearch:8.0.0   "/bin/tini -- /usr/l…"   32 minutes ago   Up 32 minutes   9200/tcp, 9300/tcp                               es-node02
2b7bdc81eb56   docker.elastic.co/elasticsearch/elasticsearch:8.0.0   "/bin/tini -- /usr/l…"   50 minutes ago   Up 50 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es-node01

我们停止所有的容器:

$ docker stop kib-01
kib-01
$ docker stop es-node03
es-node03
$ docker stop es-node02
es-node02
$ docker stop es-node01
es-node01

我们可以使用如下的命令来彻底删除容器及网络:

$ docker network rm elastic
elastic
$ docker rm es-node01
es-node01
$ docker rm es-node02
es-node02
$ docker rm es-node03
es-node03
$ docker rm kb-01

这样我们就释放了所有的资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要安装一个ES8集群,您可以使用Docker来部署,以下是一些简单的步骤: 1. 首先,确保您已经在系统上安装了Docker和Docker Compose。您可以通过运行以下命令来检查它们是否已安装: ``` docker --version docker-compose --version ``` 如果命令成功执行并显示版本信息,则说明Docker和Docker Compose已经安装好了。 2. 创建一个用于存储ES数据的目录,在您的系统上选择一个适当的位置,例如`/path/to/es-data`。执行以下命令创建该目录: ``` mkdir /path/to/es-data ``` 3. 创建一个名为`docker-compose.yml`的文件,并在其中定义ES服务的配置。以下是一个示例配置: ```yaml version: '3' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0 container_name: es01 environment: - discovery.type=single-node volumes: - /path/to/es-data:/usr/share/elasticsearch/data ports: - 9200:9200 - 9300:9300 ``` 上述配置将创建一个名为`es01`的容器,使用Elasticsearch 8.0.0镜像,并将端口9200和9300映射到主机上。 4. 保存并关闭`docker-compose.yml`文件后,在终端中导航到包含该文件的目录,并执行以下命令启动ES集群: ``` docker-compose up -d ``` 上述命令将启动ES容器,并在后台运行。 5. 等待一段时间,直到容器启动并完成初始化。您可以使用以下命令检查容器状态: ``` docker ps ``` 如果看到`es01`容器正在运行,则说明ES集群已经成功安装和运行。 这样,您就已经成功地使用Docker安装了一个ES8集群。请注意,这只是一个简单的示例配置,您可能需要根据自己的需求进行调整和扩展。如果您需要部署更复杂的ES集群,建议阅读Elasticsearch官方文档以获取更多详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值