当前位置: 首页 > news >正文

Docker安装部署ElasticSearch

1.部署单点ElasticSearch

1.1.创建网络

因为我们还需要部署kibana容器,因此需要让ElasticSearchkibana容器互联。这里先创建一个网络:

docker network create es-net

在这里插入图片描述

1.2.拉取镜像

考虑到ElasticSearch的兼容性,这里ElasticSearchkibana统一下载8.6.2版本

# 拉取镜像
docker pull elasticsearch:8.6.2

在这里插入图片描述

1.3.第一次执行docker脚本

docker run -it \-p 9200:9200 \-p 9300:9300 \--name es \--net es-net \-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \-e "discovery.type=single-node" \-e LANG=C.UTF-8 \-e LC_ALL=C.UTF-8 \elasticsearch:8.6.2

注意第一次执行脚本不要加-d这个参数,否则看不到服务首次运行时生成的随机密码和随机enrollment token

在这里插入图片描述

1.4.创建Elasticsearch挂载目录

mkdir -p /home/elk8.6.2/elasticsearch

1.5.给创建的文件夹授权

sudo chown -R 1000:1000 /home/elk8.6.2/elasticsearch

1.6.将容器内的文件复制到主机上

docker cp es:/usr/share/elasticsearch/config /home/elk8.6.2/elasticsearch docker cp es:/usr/share/elasticsearch/data /home/elk8.6.2/elasticsearchdocker cp es:/usr/share/elasticsearch/plugins /home/elk8.6.2/elasticsearchdocker cp es:/usr/share/elasticsearch/logs /home/elk8.6.2/elasticsearch

1.7.删除容器

docker rm -f es

1.8.修改docker脚本,增加-v挂载目录和-d参数

docker run -it \-d \-p 9200:9200 \-p 9300:9300 \--name es \--net es-net \-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \-e "discovery.type=single-node" \-e LANG=C.UTF-8 \-e LC_ALL=C.UTF-8 \-v /home/elk8.6.2/elasticsearch/config:/usr/share/elasticsearch/config \-v /home/elk8.6.2/elasticsearch/data:/usr/share/elasticsearch/data \-v /home/elk8.6.2/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /home/elk8.6.2/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:8.6.2

在这里插入图片描述

1.9.修改配置/home/elk8.6.2/elasticsearch/config/elasticsearch.yml

增加:xpack.monitoring.collection.enabled: true
说明:添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态

在这里插入图片描述

1.10.重启容器

docker restart es

1.11.Elasticsearch.8X以上默认开启了X-Pack安全功能

说明:请求Elasticsearch必须使用https

测试:https://ip:9200

在这里插入图片描述

用户名就是:elastic,密码在第一次启动时保存下来的信息中查找,输入账号密码,即可看到elasticsearch的响应结果:

在这里插入图片描述

看到这种信息说明启动成功了。

1.12.如果账户密码忘了,设置修改账号密码如下:

docker exec -it es /bin/bashcd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive

在这里插入图片描述

ElasticSearch设置后账户:elastic,密码:123456

2.部署kibana

kibana可以给我们提供一个ElasticSearch的可视化界面,便于我们使用。

2.1.拉取镜像

# 拉取镜像  
#注意要与ElasticSearch版本一致
docker pull kibana:8.6.2 

2.2.第一次执行docker启动脚本

docker run -it \-d \--restart=always \--log-driver json-file \--log-opt max-size=100m \--log-opt max-file=2 \--name kibana \-p 5601:5601 \--net es-net \
kibana:8.6.2

在这里插入图片描述

2.3.创建kibana挂载目录

mkdir -p /home/elk8.6.2/kibana

2.4.给创建的文件夹授权

sudo chown -R 1000:1000 /home/elk8.6.2/kibana

2.5.将容器内的文件复制到主机上

docker cp kibana:/usr/share/kibana/config /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/data /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/plugins /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/logs /home/elk8.6.2/kibana

在这里插入图片描述

2.6.删除容器

docker rm -f kibana

2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:

  • 增加:i18n.locale: “zh-CN”
  • 修改:elasticsearch.hosts: [‘https://172.20.0.2:9200’],将IP改成elasticsearchdocker ip,注意一定要用https
  • 修改:xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: [‘https://172.20.0.2:9200’], ca_trusted_fingerprint: xxxxxxxxxx}]
    IP改成elasticsearchdocker ip,注意一定要用https

在这里插入图片描述

2.8.修改docker启动脚本,增加挂载目录

docker run -it \-d \--restart=always \--log-driver json-file \--log-opt max-size=100m \--log-opt max-file=2 \--name kibana \-p 5601:5601 \--net es-net \-v /home/elk8.6.2/kibana/config:/usr/share/kibana/config \-v /home/elk8.6.2/kibana/data:/usr/share/kibana/data \-v /home/elk8.6.2/kibana/plugins:/usr/share/kibana/plugins \-v /home/elk8.6.2/kibana/logs:/usr/share/kibana/logs \
kibana:8.6.2

在这里插入图片描述

2.9.查看kibana日志

docker logs -f kibana

此时,在浏览器输入地址访问:http://192.168.1.111:5601,即可看到结果。

2.2.DevTools

kibana中提供了一个DevTools界面:

在这里插入图片描述

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

4.部署es集群

部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间

首先编写一个docker-compose文件,内容如下:

version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

运行docker-compose以启动集群:

docker-compose up
http://www.lryc.cn/news/45134.html

相关文章:

  • 【新2023Q2模拟题JAVA】华为OD机试 - 快递业务站
  • OpenCV入门(二十四)快速学会OpenCV 23 傅里叶变换
  • 线段树合并
  • 研发效能 | DevOps如何改变游戏公司工作方式?
  • Mongo聚合和Springboot整合Mongo聚合
  • 第06章_索引的数据结构
  • 不确定的市场,确定的增长,海尔智家2022全球再逆增
  • 测试老鸟手把手教你python接口自动化测试项目实战演示
  • 一起来学5G终端射频标准(Coherent UL-MIMO测试要求)
  • 计算广告(五)
  • 排序输入的高效霍夫曼编码 | 贪心算法 3
  • 奇异值分解(SVD)和图像压缩
  • Java如何从yml文件获取对象
  • vue使用tinymce实现富文本编辑器
  • yolov4实战训练数据
  • 第十四章 DOM的Diff算法与key
  • MySQL调优
  • 《Flutter进阶》flutter升级空安全遇到的一些问题及解决思路
  • 最值得入手的五款骨传导耳机,几款高畅销的骨传导耳机
  • HashMap源码分析 (1.基础入门) 学习笔记
  • 6 使用强制类型转换的注意事项
  • Leetcode.939 最小面积矩形
  • Springboot项目快速实现过滤器功能
  • 基于springboot的简历系统的实现
  • Vue3中watch的用法
  • MS python学习(18)
  • java笔记
  • 对象的构造及初始化
  • Socket 读取数据
  • 小白的Git入门教程(一)