Elasticsearch、Kibana部署和集成
ELASTIC_PASSWORD设置默认账号(elastic)的密码。官网地址:https://www.elastic.co/9200 用于对外提供HTTP REST服务端口。9300 用于用于内部通讯各节点访问。-d 标识以分离模式后台运行。查找docker镜像资料。Docker安装引导。
环境:Elasticsearch 9.0.3 docker容器部署
- Elasticsearch Docker下载安装文档查找引导如下图
官网地址:https://www.elastic.co/

Docker安装引导
查找docker镜像资料

选择最新版本镜像
- 问题:本地安装的docker 拉取不到镜像 可以参考这里
- 在配置有镜像加速地址的云服务器上拉取镜像,按照对应的系统来
docker pull docker.elastic.co/elasticsearch/elasticsearch:9.0.3- 将镜像包存为一个压缩文件
docker save -o /usr/elasticsearch.tar docker.elastic.co/elasticsearch/elasticsearch- 本地执行加载镜像命令
sudo docker load -i /mnt/c/***/elasticsearch.tar- 检查镜像是否加载成功
sudo docker images -a
- 创建网络桥连接以解决 elasticsearch kibana 和 filebeats的相互连接
docker network create -d bridge bridge-network
- 启动容器
sudo docker run -d --network bridge-network --network-alias elasticsearch.net --name elasticsearch -p 9200:9200 -p 9300:9300 -e ES_SETTING_BOOTSTRAP_MEMORY__LOCK=true --ulimit memlock=-1:-1 --ulimit nofile=65536:65536 --cap-add=IPC_LOCK docker.elastic.co/elasticsearch/elasticsearch:9.0.3
注意:启动时报错为 ERROR: Elasticsearch died while starting up, with exit code 78 时
原因:Elasticsearch 启动时检查bootstrap失败,容器内无法锁定内存导致失败
- sudo sysctl -w vm.max_map_count=262144 :设置单个进程允许的最大虚拟内存映射区域数量, 默认值为:65530,但 Elasticsearch 会创建大量内存映射文件(尤其是使用 mmapfs 存储索引时),默认值可能不够用
- sudo sysctl -w vm.swappiness=1:设置内核交换分区的倾向程度,值 0 - 100,0代表尽量不使用,100积极使用交换分区swap
为避免每次启动都执行设置虚拟内存和交换分区倾向度,可以 cd /etc 下编辑 sysctl.conf文件,然后执行 sudo sysctl -p 从配置文件重新加载参数
- -d 标识以分离模式后台运行
- 9200 用于对外提供HTTP REST服务端口
- 9300 用于用于内部通讯各节点访问
- –ulimit memlock=-1:-1 把容器进程的 memlock(锁定物理内存)软/硬限制设为 无限
- –ulimit nofile=65536:65536 把容器进程能打开的最大文件描述符数软/硬限制提高到 65536
- –cap-add=IPC_LOCK 给容器增加 IPC_LOCK Linux 能力(capability)(即 CAP_IPC_LOCK 一些系统操作能力
- -e ES_SETTING_BOOTSTRAP_MEMORY__LOCK=true 启用内存锁
进入容器查看配置,然后将配置挂载出来方便操作,比如开启安全特性,账号密码不再在配置文件中设置
sudo docker exec -it elasticsearch /bin/sh
cd /usr/share/elasticsearch/config
cat elasticsearch.yml
进入容器设置用户密码
https://www.elastic.co/docs/deploy-manage/users-roles/cluster-or-deployment-auth/built-in-users
进入容器后 cd /usr/share/elasticsearch
执行 bin/elasticsearch-setup-passwords interactive
最后根据提示为每个账号设置密码
验证密码
- 安装配套的可视化工具Kibana
docker pull docker.elastic.co/kibana/kibana:9.0.3
容器启动命令
sudo docker run -d --network bridge-network --network-alias kibana.net --name kibana -p 5601:5601 -v /mnt/d/docker/images/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:9.0.3
配置文件地址:/usr/share/kibana/config
备注:eleasticsearch 启用默认SSL开启,所以请用https访问, 另外kibana或默认校验es证书的有效性,在同一网络的情况下可以关闭
配置参考:
访问前端地址: http://localhost:5601/ 使用 elastic账号访问(要不又该说你没权限了)
- Elasticsearch集成到SpringBoot
当前是直接参考的官方文档
这里分别给出了集成和连接的示例。注意如果要使用spring-boot-starter-data-elasticsearch一定要注意版本的匹配,可以直接点击pom文件去查看es的版本,我这里的springboot是3.2.4适配的es是8.11的所以这里就直接采用的官网的方式。另外RestHighLevelClient在Es的7.17版本之后就已经被逐渐弃用,所以使用高版本的需要注意。
引入elasticsearch-java包后注入bean
注意:java 中的LocalDateTime 序列化的问题
) 必不可少,其作用相当于上面kibana提到的不校验SSL,否则就需要自己设置证书,在官方文档(上面超链接的地址中的connecting目录)中也有提到如何设置。
- 简单的写入es示例

简单的注意一下 IndexRequest和CreateRequest一个自动生成ID一个手动定义
- 在kibana中查看刚刚写入的数据
登录后找到Discover (通常就在左侧目录中的第一个菜单)如下图所示create a data view
编辑数据视图的名称和索引的匹配规则,这里这注意可以选择时间字段
然后就能看到我们的数据

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐

所有评论(0)