环境: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
- -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账号访问(要不又该说你没权限了)