Mac 超详细Docker Desktop安装Elasticsearch(包括分词器插件)、Elasticsearch-head、Kibana

一、安装Elasticsearch

1、使用Docker Desktop搜索elasticsearch,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:
docker pull elasticsearch:8.6.2

在这里插入图片描述

2、拉取下来后使用启动elasticsearch,这里选择使用命令启动

注意:这里需要提前在本机中创建elasticsearch.yml文件,/Users/zgy/Downloads/Java/es/elasticsearch.yml是我本机的路径,需要替换成你们自己的

elasticsearch.yml文件内容

http: 
 host: 0.0.0.0
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: false

http.cors.enabled: true
http.cors.allow-origin: "*"
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /Users/zgy/Downloads/Java/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -d elasticsearch:8.6.2

启动命令解析:

docker run: 运行 Docker 容器的命令。
--name es: 为容器指定一个名称(es)。

-p 9200:9200 -p 9300:9300: 
将容器的端口 9200(用于 HTTP)和端口 9300(用于节点间通信)映射到宿主机的相同端口,使得可以通过宿主机访问 Elasticsearch 服务。

-e "discovery.type=single-node": 
设置 Elasticsearch 的发现类型为单节点模式,这样 Elasticsearch 将以单节点的方式运行而无需进行集群发现。

-e ES_JAVA_OPTS="-Xms512m -Xmx512m": 
设置 ElasticsearchJava 虚拟机参数,指定初始堆内存为 512MB,最大堆内存为 512MB-v /Users/zgy/Downloads/Java/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml: 
将宿主机上的 Elasticsearch 配置文件 /Users/zgy/Downloads/Java/es/elasticsearch.yml 挂载到容器内的配置文件路径,以便使用自定义的配置。

-d elasticsearch:8.6.2: 使用 Elasticsearch 8.6.2 镜像创建容器,并在后台运行。

通过运行这个命令,你将在 Docker 中创建一个名为 "es"Elasticsearch 容器,并将端口 92009300 映射到宿主机上,同时配置了单节点模式和自定义的 Java 虚拟机参数。你还将宿主机上的自定义配置文件挂载到容器中,以便使用该配置文件启动 Elasticsearch。

请注意,命令中的文件路径和镜像版本是根据你的实际情况提供的示例路径和版本号,你可以根据自己的需求进行相应的调整。

启动之后:

在这里插入图片描述

3、启动了之后访问: http://localhost:9200/

能够成功显示如下界面就说明Elasticsearch安装成功了

在这里插入图片描述

二、安装可视化界面:elasticsearch-head

1、使用Docker Desktop搜索elasticsearch-head,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:
docker pull mobz/elasticsearch-head:5-alpine

在这里插入图片描述

2、拉取下来后使用启动elasticsearch-head,这里选择使用命令启动
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5

启动命令解析:

docker run: 运行 Docker 容器的命令。

-d: 将容器设置为在后台运行(守护态)。

--name es_admin: 为容器指定一个名称(es_admin)。

-p 9100:9100: 将容器的端口 9100 映射到宿主机的相同端口,使得可以通过宿主机访问 Elasticsearch Head。

mobz/elasticsearch-head:5: 使用 mobz/elasticsearch-head 镜像的版本 5 创建容器。

通过运行这个命令,你将在 Docker 中创建一个名为 "es_admin"Elasticsearch Head 容器,并将容器的端口 9100 映射到宿主机上。这使得可以通过宿主机访问 Elasticsearch Head 工具,用于可视化管理 Elasticsearch 集群。

请注意,命令中的镜像版本是根据你的实际需求提供的示例版本号,你可以根据需要选择适合的版本。

3、启动后访问链接: http://localhost:9100/

在这里插入图片描述

在这里插入图片描述


后面使用的时候遇到的问题解决:
1、问题:使用elasticsearch-head查看索引中的数据时点击索引没有反应,查询不了数据,点击F12的时候发现如下报错
{“error”:“Content-Type header [application/x-www-form-urlencoded] is not supported”,“status”:406}

2、解决方式:
复制elasticsearch-head容器中的vendor.js文件到本地中:
命令:docker cp es_admin:/usr/src/app/_site/vendor.js /Users/zgy/Downloads/Java/es/vendor.js

打开本地中的vendor.js文件:
修改第6886行:application/json;charset=UTF-8

在这里插入图片描述


修改第7573行:application/json;charset=UTF-8

在这里插入图片描述


保存后,再用命令替换elasticsearch-head容器中的vendor.js文件:
命令:docker cp /Users/zgy/Downloads/Java/es/vendor.js es_admin:/usr/src/app/_site/vendor.js

3、测试:

在这里插入图片描述


可正常查询

三、安装Kibana

1、使用Docker Desktop搜索Kibana,选择需要的版本号后可以直接点击Pull拉取,也可再终端中输入命令:

在这里插入图片描述

2、拉取下来后使用启动elasticsearch,这里选择使用命令启动

注意:这里需要提前在本机中创建kibana.yml文件,/Users/zgy/Downloads/Java/es/kibana.yml是我本机的路径,需要替换成你们自己的

kibana.yml文件内容:

server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
 
i18n.locale: "zh-CN"

启动命令:

docker run --name kibana -p 5601:5601 --link es:elasticsearch  -v /Users/zgy/Downloads/Java/es/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:8.6.2

启动命令解析:

docker run: 运行 Docker 容器的命令。

--name kibana: 为容器指定一个名称(kibana)。

-p 5601:5601: 将容器的端口 5601 映射到宿主机的相同端口,使得可以通过宿主机访问 Kibana 服务。

--link es:elasticsearch:Elasticsearch 容器(名称为 "es")与 Kibana 容器连接起来,以便 Kibana 可以与 Elasticsearch 进行通信。

-v /Users/zgy/Downloads/Java/es/kibana.yml:/usr/share/kibana/config/kibana.yml: 将宿主机上的 Kibana 配置文件 /Users/zgy/Downloads/Java/es/kibana.yml 挂载到容器内的配置文件路径,以便使用自定义的配置。

-d kibana:8.6.2: 使用 Kibana 8.6.2 镜像创建容器,并在后台运行。

通过运行这个命令,你将在 Docker 中创建一个名为 "kibana"Kibana 容器,并将端口 5601 映射到宿主机上。容器将与 Elasticsearch 容器建立连接,以便 Kibana 可以与 Elasticsearch 进行通信。你还将宿主机上的自定义配置文件挂载到容器中,以便使用该配置文件启动 Kibana。

请注意,命令中的文件路径和镜像版本是根据你的实际情况提供的示例路径和版本号,你可以根据自己的需求进行相应的调整。
3、启动后访问链接: http://localhost:5601/

在这里插入图片描述


在这里插入图片描述

四、 安装ik分词器插件

打开终端按步骤执行一下命令

1、以root的身份进入到 Elasticsearch 容器:
docker exec -it -u 0 <elasticsearch_container_id> /bin/bash

请将 <elasticsearch_container_id> 替换为你的 Elasticsearch 容器的 ID或容器名。
2、在容器中切换到 Elasticsearch 插件目录:
cd /usr/share/elasticsearch/plugins
3、下载 IK 插件压缩包:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.6.2.zip
4、进入到plugins中:
cd plugins
5、创建ik文件夹:
mkdir ik
6、复制压缩包到ik文件夹中:
cp elasticsearch-analysis-ik-7.17.7.zip plugins/ik
7、解压插件压缩包:
unzip elasticsearch-analysis-ik-8.9.0.zip
5、删除插件压缩包:
rm elasticsearch-analysis-ik-8.9.0.zip
6、退出容器:
exit

完成上述步骤后,IK 插件将已经成功下载并安装到 Elasticsearch 容器中。

请注意,这些命令假设你已经具有适当的权限来执行这些操作,并且已经在容器中安装了必要的工具(例如 wget 和 unzip)。

wget、unzip命令安装:
apt-get update
apt-get install wget unzip
7、重启Elasticsearch容器验证分词器,如图所示则分词器安装成功

在这里插入图片描述


可能遇到的问题:当es和ik分词器版本不一致时,es容器会启动失败,报错:

java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 7.17.7 but version 7.17.10 is running

在这里插入图片描述


解决办法:
复制es容器中的plugin-descriptor.properties文件到本地中:
命令:

docker cp es:/usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties /Users/zgy/Downloads/Java/es/plugins/ik/plugin-descriptor.properties 

打开本地中的plugin-descriptor.properties文件,修改版本号为es的版本号:

在这里插入图片描述

保存后,再用命令替换e’s容器中的plugin-descriptor.properties文件:
命令:

docker cp /Users/zgy/Downloads/Java/es/plugins/ik/plugin-descriptor.properties es:/usr/share/elasticsearch/plugins/ik/plugin-descriptor.properties

重新启动es即可成功加载ik分词器

原文地址:https://blog.csdn.net/qq_43875948/article/details/133357984

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读774次,点赞24次,收藏16次。typescript项目中我们使用typings-for-css-modules-loader来替代css-loader实现css modules。1、typings-for-css-modules-loader加载器介绍 Webpack加载器,用作css-loader的替代产品,可动态生成CSS模块的TypeScript类型这句话是什么意思呢?就是编译时处理css文件...
文章浏览阅读784次。react router redux antd eslint prettier less axios_react+antd+redux+less
文章浏览阅读3.9k次,点赞5次,收藏11次。需要删除.security-7索引文件。把在第1步中的被注释的配置打开。之后就是按照提示输入密码。执行bin目录下的文件。_failed to authenticate user 'elastic' against
文章浏览阅读1.2k次,点赞23次,收藏24次。Centos 8 安装es_centos8 yum elasticsearch
文章浏览阅读3.2k次。设置完之后,数据会⾃动同步到其他节点。修改密码时,将第⼀步配置删除,然后重启。单独使⽤⼀个节点⽣成证书;执⾏设置⽤户名和密码的命令。执⾏完上⾯命令以后就可以在。⽂件,在⾥⾯添加如下内容。这个⽂件复制到其他节点下。其中⼀个节点设置密码即可。依次对每个账户设置密码。全部节点都要重启⼀遍。需要在配置⽂件中开启。个⽤户分别设置密码,⽬录下,证书⽂件名为。功能,并指定证书位置。_es设置账号和密码
文章浏览阅读1.9k次,点赞2次,收藏7次。针对多数据源写入的场景,可以借助MQ实现异步的多源写入,这种情况下各个源的写入逻辑互不干扰,不会由于单个数据源写入异常或缓慢影响其他数据源的写入,虽然整体写入的吞吐量增大了,但是由于MQ消费是异步消费,所以不适合实时业务场景。不易出现数据丢失问题,主要基于MQ消息的消费保障机制,比如ES宕机或者写入失败,还能重新消费MQ消息。针对这种情况,有数据强一致性要求的,就必须双写放到事务中来处理,而一旦用上事物,则性能下降更加明显。可能出现延时问题:MQ是异步消费模型,用户写入的数据不一定可以马上看到,造成延时。_mysql同步es
文章浏览阅读3.6w次,点赞48次,收藏44次。【程序员洲洲送书福利-第十九期】《C++ Core Guidelines解析》
文章浏览阅读1.3k次。当我们在开发Vue应用时,经常需要对表单进行校验,以确保用户输入的数据符合预期。Vue提供了一个强大的校验规则机制,通过定义rules规则,可以方便地对表单进行验证,并给出相应的错误提示。_vue ruler校验
文章浏览阅读2k次,点赞16次,收藏12次。Linux内核源码下载地址及方式_linux源码下载
文章浏览阅读1k次。这样在每天自动生成的索引skywalking_log_xxx就会使用上述模版来生成,timestamp会被设置成date类型。然后此时在–>索引管理–>kibana–>索引模式添加skywalking_log*索引时就会有时间字段了。在通过skywalking将日志收集到es后,由于skywalking收集的日志(skywalking_log索引)没有date类型的字段导致在es上再索引模式中没有时间范围的查询。skywalking收集的日志有时间戳字段timestamp,只是默认为long类型。_skywalking timestamp
文章浏览阅读937次,点赞18次,收藏21次。1.初始化git仓库,使用git int命令。2.添加文件到git仓库,两步走:2.1 使用命令,注意,可反复多次使用,添加多个文件;2.2 使用命令,完成。此笔记是我个人学习记录笔记,通过廖雪峰的笔记进行学习,用自己能理解的笔记记录下来,如果侵权,联系删。不存在任何盈利性质,单纯发布后,用于自己学习回顾。
文章浏览阅读786次,点赞8次,收藏7次。上述示例中的 origin 是远程仓库的名称,https://github.com/example/repository.git 是远程仓库的 URL,(fetch) 表示该远程仓库用于获取更新,(push) 表示该远程仓库用于推送更新。你可以选择在本地仓库创建与远程仓库分支对应的本地分支,也可以直接将本地仓库的分支推送到远程仓库的对应分支。将 替换为远程仓库的名称(例如 origin), 替换为要推送的本地分支的名称, 替换为要推送到的远程分支的名称。_git remote 智能切换仓库
文章浏览阅读1.5k次。配置eslint校验代码工具_eslint 实时校验
文章浏览阅读1.2k次,点赞28次,收藏26次。Git入门基础介绍,什么是Git,如何使用Git,以及Git的工作的基本原理
文章浏览阅读2.7k次。基于官方给出的几种不同环境不同的安装方式,本文将会选择在使用.zip文件在Windows上安装Elasticsearch在Linux或macOS上从存档文件安装ElasticsearchInstall Elasticsearch with Docker (此种方式待定)使用Docker安装Elasticsearch。_elasticsearch安装部署windows
文章浏览阅读3.3k次,点赞5次,收藏11次。【Linux驱动】内核模块编译 —— make modules 的使用(单模块编译、多模块编译)_make modules
文章浏览阅读1k次。docker启动es报错_max virtual memory areas vm.max_map_count [65530] is too low, increase to at
文章浏览阅读4.2k次,点赞2次,收藏6次。使用docker单机安装elasticsearch后再安装kibana时找不到es。_unable to retrieve version information from elasticsearch nodes. security_ex
文章浏览阅读1.1k次。日志处理对于任何现代IT系统都是关键部分,本教程专为新手设计,通过详细解释Logstash的三大核心组件,为您展示如何从零开始搭建强大的日志处理系统。您还将学习如何同步MySQL数据到Elasticsearch,并通过一个"Hello World"示例快速入门。无论您是完全的新手还是有一些基础,本教程都将引导您顺利掌握Logstash的基本操作和高级应用。_logstash mysql
文章浏览阅读1.1w次,点赞5次,收藏25次。执行这条指令之后,你的本地项目就与远程Git仓库建立了连接,你就可以开始对你的代码进行版本追踪和协作开发了。使用“git remote add origin”指令,可以轻松地将本地项目连接到远程Git仓库。git remote set-url origin 执行这条指令之后,Git就会将已经添加的名为“origin”的仓库删除。git remote add origin 其中,是你的远程Git仓库的网址。_git remote add origin