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

Docker安装部署[8.x]版本Elasticsearch+Kibana+IK分词器

文章目录

  • Docker安装部署elasticsearch
    • 拉取镜像
    • 创建数据卷
    • 创建网络
    • elasticsearch容器,启动!
    • 踩坑:虚拟机磁盘扩容
  • Docker安装部署Kibana
    • 拉取镜像
    • Kibana容器,启动!
  • 安装IK分词器
    • 安装方式一:直接从github上下载
    • 安装方式二
    • 修改版本信息

Docker安装部署elasticsearch

在我发的上一个博客里记录了如何安装7.x版本的elasticsearch,我在跟着教学学习Java Rest Client的时候发现在elastic的官网上Java Rest Client已经被标注为过时了,elastc提供了全新的Elasticsearch Java API Client,作为程序员,应该勇于去尝试新技术,因此我决定继续尝试使用elasticsearch8.x版本。

elasticsearch已经出到8.10.4,官方推荐使用8.10.2,docker镜像有8.10.2但暂时没有8.10.4,IK分词器提供了8.10.4但没有提供8.10.2。

综合考虑之下原则8.10.2(毕竟官方都没提供8.10.4的镜像,我总不会闲到另辟蹊径自己打包8.10.4版本的镜像吧),IK分词器版本问题将使用一个sao操作解决

拉取镜像

docker pull elasticsearch:8.10.2

创建数据卷

一般来说,我们不希望在elasticsearch容器停止时丢失elasticsearch中的文件,因此我们创建一个数据卷来关联elasticsearch的data文件夹。在elasticsearch的使用中我们可能会安装各种插件,因此创建了另一个数据卷来关联elasticsearch的plugins文件夹

docker volume create es-data
docker volume create es-plugins

创建网络

一般来说,我们在使用elasticsearch的时候会结合kibana一起使用,为了他们能够正常关联,我们创建一个网络来连接他们

docker net create es-net

elasticsearch容器,启动!

因为我是单机启动,所以将discovery.type设置为single-node

es-net为上一步我们创建的网络名

docker run \
-d \
--name es \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
elasticsearch:8.10.2

访问9200端口,这次你不会看到任何东西,因为8.x版本已经默认采用https了。

访问https://[yourIp]:9200,此时会显示这是一个不安全的连接,选择无视风险继续访问,此时浏览器会弹出一个窗口让你输入用户名和密码。

elastic是一个默认账户,而其密码是随机生成的。

首先我们进入elasticsearch容器中执行重置密码的命令

docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

接下来新生成的密码将会打印到控制台。

将用户名和密码输入浏览器中的登录窗口。出现下面这串字符串就成功了。

{"name": "ab675a286e72","cluster_name": "docker-cluster","cluster_uuid": "ZdLfD65lQdKStAJi1yWMMQ","version": {"number": "7.17.13","build_flavor": "default","build_type": "docker","build_hash": "2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13","build_date": "2023-08-31T17:33:19.958690787Z","build_snapshot": false,"lucene_version": "8.11.1","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search"
}

踩坑:虚拟机磁盘扩容

我之前选择安装7.x版本的原因就是我执行重置密码时会显示集群状态为RED执行失败。我在查看了运行日志后发现是因为磁盘占用达到了预警线90%,只需给磁盘扩容就好了。

这里只分享图形界面的扩容方法,以ubuntu为例。

首先虚拟机关机,在虚拟机设置界面选择磁盘扩容。

开机,安装工具Gparted

apt-get install gparted

然后选择你要扩充的分区。点击左上角的扩容,如果显示无法给只读权限的分区扩容,右键查看该分区挂载在哪个路径下,使用root用户修改权限

在这里插入图片描述

我这是挂载在/和/var/snap/firefox/common/host-hunspell两个路径,所以输入以下命令结束。

mount -o remount -rw /
mount -o remount -rw /var/snap/firefox/common/host-hunspell

Docker安装部署Kibana

Kibana 是为 Elasticsearch设计的开源分析和可视化平台

拉取镜像

docker pull kibana:8.10.2

Kibana容器,启动!

ELASTICSEARCH_HOSTS环境变量为elasticsearch服务的地址,其中http://es:9200中的es是我们运行elasticsearch容器时起的别名

es-net为我们在之前创建的网络的名称

docker run \
-d \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:8.10.2

访问5601端口,会要求你输入elasticsearch的令牌

进入elasticsearch容器获取kibana的令牌

docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

接下来会要求你输入六位数的kibana验证码,进入kibana容器获取验证码

docker exec -it kibana bin/kibana-verification-code 

完成以上两步之后你只需要输入elasticsearch的用户名和密码就能正常使用kibana了

安装IK分词器

IK分词器没有8.10.2版本,我们先下载8.10.4版本,按之前的步骤来。

安装方式一:直接从github上下载

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip

安装方式二

之前我们将es-plugins数据卷挂载到了es容器内的plugins文件夹。

我们先使用魔法从github上下载

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip

然后将压缩包解压到数据卷对应的位置,然后重启elasticsearch容器即可。

修改版本信息

打开IK分词器所在的位置,打开 plugin-descriptor.properties 文件,将version和elasticsearch.version的值从8.10.4修改为8.10.2,重启容器完成。

http://www.lryc.cn/news/214229.html

相关文章:

  • 折纸达珠峰高度(forwhile循环)
  • 探索网络攻防技术:自学之道
  • 图像二值化阈值调整——cv2.threshold方法
  • 【C++代码】背包问题,完全背包,多重背包,打家劫舍,动态规划--代码随想录
  • 阿里云创始人王坚:云计算和GPT的关系,就是电和电机的关系
  • python爬取豆瓣电影Top250数据
  • 关键路径及关键路径算法[C/C++]
  • nginx http 跳转到https
  • 可靠的互联网兼职平台,平常可以做副业充实生活
  • 云安全—K8s APi Server 6443 攻击面
  • 【案例实战】NodeJS+Vue3+MySQL实现列表查询功能
  • Google play开发者账号被封的几种常见原因及相关解决思路
  • 深入理解计算机系统CS213学习笔记
  • 【设计模式】第8节:结构型模式之“适配器模式”
  • Stable Diffusion WebUI扩展openpose-editor如何使用
  • 企业网络带宽使用情况检查技巧
  • C/C++笔试易错与高频题型图解知识点(三)——数据结构部分(持续更新中)
  • Intel oneAPI笔记--oneAPI简介、SYCL编程简介
  • Spring IOC - ConfigurationClassPostProcessor源码解析
  • Android OpenGL ES 2.0入门实践
  • sql语句性能进阶必须了解的知识点——索引失效分析
  • ctfhub技能树web题目全解
  • AMD、CMD、UMD是什么?
  • AM@微分方程相关概念@线性微分方程@一阶线性微分方程的通解
  • 基于深度学习的安全帽识别检测系统(python OpenCV yolov5)
  • Spring源码分析篇一 @Autowired 是怎样完成注入的?究竟是byType还是byName亦两者皆有
  • Goby 漏洞发布|F5 BIG-IP AJP 身份认证绕过漏洞(CVE-2023-46747)
  • Vue中watch侦听器用法
  • [算法前沿]--054-大语言模型的学习材料
  • DWA算法,仿真转为C用于无人机避障