重磅来袭————docker部署分布式搜索神器Elastic Search及es图形化界面神器kibana部署全流程实战解析
我们这里是采用MobaX远程连接工具,通过SFTP远程文件上传服务将提前下载好的es.tar压缩包上传到虚拟机上(centos7),然后通过docker加载镜像,实现容器化部署,下面我们来看详细步骤。
我们这里是采用MobaX远程连接工具,通过SFTP远程文件上传服务将提前下载好的es.tar压缩包上传到虚拟机上(centos7),然后通过docker加载镜像,实现容器化部署,下面我们来看详细步骤
🏍️🏍️🏍️第一部分:ES部署
㊙️㊙️㊙️步骤1:由于后续我们还要安装ES的图形化工具Kibana,而kibana必须和es部署在同一个网络中,所以我们先使用docker创建一个网络,如下图所示创建成功后会出现一行字符串
docker network create es-net

㊙️㊙️㊙️步骤2:通过远程文件上传服务上传es压缩包到MobaX
㊙️㊙️㊙️步骤3:使用docker load 命令加载镜像
docker load -i /root/es.tar(我这里是根目录,也可以直接写文件名省略路径)
如下图所示,成功加载镜像后会出现下面的一行es的版本号
㊙️㊙️㊙️步骤4:使用docker run部署es容器(命令如下)
docker run -d \
> --name es \
> -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
> -e "discovery.type=single-node" \
> -v es-data:/usr/share/elasticsearch/data \
> -v es-plugins:/usr/share/elasticsearch/plugins \
> --privileged \
> --network es-net \
> -p 9200:9200 \
> -p 9300:9300 \
> elasticsearch:7.12.1
如下图所示,部署成功后会显示一行字符串
㊙️㊙️㊙️步骤5:查看es容器
docker ps
如下图所示可以看到部署成功,端口是9200,ip是0.0.0.0表示监听所有可用网络
㊙️㊙️㊙️步骤6:通过windows浏览器访问es
虚拟机ip地址:9200
返回下面的json格式的数据表示es部署成功
🏍️🏍️🏍️关于部署过程中可能存在的设备空间不足问题的解决方案 主要是为了解决下图所示的报错,这也是本人实战中遇到的问题

㊙️㊙️㊙️步骤1:清楚日志文件中的三大毒瘤
使用下面三行命令清除日志文件中的垃圾,释放空间
㊙️㊙️㊙️步骤2:释放缓存文件和yum残留的垃圾
下面的这两条命令会删除残留的安装包以及系统中的缓存文件
可以看到已经释放出了1.4G的空间
㊙️㊙️㊙️步骤3:下载虚拟机磁盘分区工具gparted
yum --disablerepo=docker-ce-stable install -y gparted
回车开始安装,出现下图内容

㊙️㊙️㊙️步骤4:输入gparted启动工具
出现下图所示的图形化界面,sda3的挂载点对应的是我的根目录,所以要扩容sda3,因为我的es安装包在根目录下,使用docker load加载镜像要保证有足够的空间,我这里把sda3的空间从8G扩展到了11.8G,如果想要sda2的空间也全部给sda3需要在命令行中先禁用swap分区,因为sda2的挂载点是swap,禁用后删除swap分区释放空间,再重新分配给sda3,这里读者感兴趣可以自行研究
图片
㊙️㊙️㊙️步骤5:在gparted中修改分区
修改也简单,右键弹窗选择更改大小
可以拖动滑块占满剩余空间,也可以输入数字分配空间,我这里选择了拖动的方式
修改完成要记得点应用才会生效

然后再去docker load加载镜像就不会报错了
🏍️🏍️🏍️第二部分:Kibana部署
重磅来袭————ES的图形化工具神器kibana部署全流程解析
kibana是es的图形化工具,类似于Mysql和Mysql workbench的关系,有了图形化界面工具,我们就可以更直观的看到数据之间的关系,es本身也是数据库,类似于redis和mysql,只不过它主要功能是分布式搜索,今天我们就来学习一下如何在虚拟机上部署kibana
㊙️㊙️㊙️步骤1:通过远程文件上传服务上传kibana压缩包到虚拟机
㊙️㊙️㊙️步骤2:加载kibana镜像
docker load -i kibana.tar

㊙️㊙️㊙️步骤3:创建kibana容器
docker run -d \
> --name kibana \
> -e ELASTICSEARCH_HOSTS=http://es:9200 \
> --network=es-net \
> -p 5601:5601 \
> kibana:7.12.1
命令说明:
–network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch -p 5601:5601:端口映射配置
最值得强调的是,前一篇文章已经提到过,kibana必须和es部署在同一个网络中,因此我们在部署es时创建了一个网络叫es-net,因此这里kibana的容器参数的网络配置也要设置成es-net,而且版本号也必须一致,为7.12.1。
容器部署成功会显示类似下图的一行字符串
㊙️㊙️㊙️步骤4:查看kibana容器
docker ps

可以看到之前部署的es和我们刚刚部署的kibana都已经存在于容器中,es的端口号是9200,kibana的端口号是5601
图片
㊙️㊙️㊙️步骤5:查看kibana日志文件确认kibana是否启动成功
docker logs -f kibana
如下图,日志信息很多,但只要看到红框中的内容则表示kibana启动成功

㊙️㊙️㊙️步骤6:浏览器查看kibana界面
虚拟机ip:5601
回车就可以看到kibana的界面
㊙️㊙️㊙️步骤7:想es发送请求验证
这个步骤模拟的就是类似于在Mysql中输入SELECT查询语句会返回对应结果一样,开篇已经说到es本质也是数据库,而由于kibana和es部署在同一个网络下,所以kibana就可以获取到es中的数据
点击步骤6右上角的dev tools然后点击下方的三角就会成功返回响应数据

然后我们通过get /就可以查询到前面部署es时返回的json数据,如下图所示
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)