【其一】安装新版的 Elasticsearch(8.8.0)与 Kibana(8.8.0)
原文发布于:实战:SpringBoot 与 Elasticsearch 完美融合,WebFlux 响应式编程实现,欢迎使用 RSS 订阅获取最新更新。
1. 前言
文章包含以下内容:
- 安装新版的 Elasticsearch(8.8.0)与 Kibana(8.8.0)
- SpringBoot 集成 Elasticsearch CRUD 和 WebFlux 实现全响应式编程
- Java17
- spring-boot 3.1.2
- SSL 连接 Elasticsearch
- Filebeat(8.8.0)安装并上传 SpringBoot项目产生的日志,最后能在 Kibana 上查询到
搭建环境:
- 已经安装 Docker 的 GNU/linux 主机
最近对响应式编程很来劲,什么都想用这个去写,就跟有了榔头看什么都是钉子一样。正好一些自己的项目想用上 ES(Elasticsearch),所以干脆学学怎么做全响应式编程,和对 ES 的 CRUD,当中还是碰到了挺多的问题,因为内容比较多,所以会分几节说明各个部分。
2. 安装新版的 Elasticsearch(8.8.0)与 Kibana(8.8.0)
Elasticsearch 是啥就不用我介绍了吧,能够做到查询亿级数据毫秒级。
官方的安装文档在这里:run-elasticsearch-locally
太长不看的直接看下面的简单版本:
2.1 创建 ES 数据存储,插件,日志的目录
mkdir /dockerData/elasticsearch/data
mkdir /dockerData/elasticsearch/plugins
mkdir /dockerData/elasticsearch/logs
2.2 运行 ES 容器
创建network用来和kibana交互
docker network create elastic
拉取指定版本镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.0
docker run -d \
--name elasticsearch \
-e "ES_JAVA_OPTS=-Xms4096m -Xmx4096m" \
-e "discovery.type=single-node" \
-v /dockerData/elasticsearch/data:/usr/share/elasticsearch/data \
-v /dockerData/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /dockerData/elasticsearch/logs:/usr/share/elasticsearch/logs \
--privileged \
--network elastic \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.8.0
-d
: 表示以"后台模式"(detached mode)运行容器,即使关闭终端或退出 SSH 会话,容器仍然保持运行状态。-name elasticsearch
: 指定容器的名称为"elasticsearch",以便于以后可以使用名称来管理和访问容器。-e "ES_JAVA_OPTS=-Xms4096m -Xmx4096m"
: 设置 Elasticsearch 的 Java 虚拟机选项,这里设置初始堆内存(Xms
)和最大堆内存(Xmx
)为 4GB,即 4096MB,这个根据你的机器自己调整。-e "discovery.type=single-node"
: 设置 Elasticsearch 的节点发现类型为单节点(single-node),意味着 Elasticsearch 将作为单独的节点运行,而不是作为集群中的一部分。-v /dockerData/elasticsearch/data:/usr/share/elasticsearch/data
: 将宿主机上的/dockerData/elasticsearch/data
目录挂载到容器内的/usr/share/elasticsearch/data
目录,用于持久化存储 Elasticsearch 的数据。-v /dockerData/elasticsearch/plugins:/usr/share/elasticsearch/plugins
: 将宿主机上的/dockerData/elasticsearch/plugins
目录挂载到容器内的/usr/share/elasticsearch/plugins
目录,用于存储 Elasticsearch 插件。-v /dockerData/elasticsearch/logs:/usr/share/elasticsearch/logs
: 将宿主机上的/dockerData/elasticsearch/logs
目录挂载到容器内的/usr/share/elasticsearch/logs
目录,用于存储 Elasticsearch 的日志文件。-privileged
: 提供容器以特权模式运行,这对于某些特殊需求可能是必要的。-network elastic
: 将容器连接到名为"elastic"的 Docker 网络,这个网络通常用于连接 Elasticsearch、Kibana 和其他 Elastic Stack 组件。-p 9200:9200
: 将宿主机的 9200 端口映射到容器内的 9200 端口,用于访问 Elasticsearch 的 HTTP API。-p 9300:9300
: 将宿主机的 9300 端口映射到容器内的 9300 端口,用于 Elasticsearch 的节点间通信(集群通信)。docker.elastic.co/elasticsearch/elasticsearch:8.8.0
: 指定要使用的 Elasticsearch Docker 镜像及其版本,这里使用的是8.8.0
版本。
可能会有安装过 ES 的同学要问,这里我直接使用"后台模式"(detached mode),那怎么看到第一次生成的 token 呢?别急,现在有新办法了,在安装 kibana 的时候会说到
2.3 运行 Kibana 容器
就下面两行,需要注意的,运行的这个 Kibana,我是没有在后台模式运行的,方便等等看生成的验证码。
docker pull docker.elastic.co/kibana/kibana:8.8.0
docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.8.0
当 Kibana 容器运行之后,用浏览器打开服务器的 ip:5601
,用的云服务的同学不要忘了配置上云服务配置安全组规则,接着会看到需要我们输入 ES 的 token。
我们重新打开一个终端连接到服务器,然后输入以下命令进入到容器的终端
docker exec -it elasticsearch /bin/bash
然后通过下面的命令重新生成一个 token
bin/elasticsearch-create-enrollment-token --scope kibana
此时你会看到终端会生成一个 token,需要把这个 token 复制到浏览器 kibana 页面中,用草稿本记一下先。
还通过以下命令需要生成一个密码,记下来,等等登录 kibana 会用到
bin/elasticsearch-reset-password -u elastic
如图:
填入 token
输入完成之后,点击 Configure Elastic,就会看到需要我们输出一个验证码
这个验证码,在刚刚打开 Kibana 的终端那可以找到,如下所示:
输入完成之后就需要我们刚刚生成的密码登录 Kibana 了。
到这一步完成了 ES 和 Kibana 的安装,你可以在新版的 ES 中探索一下有什么好玩的。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于