基于Docker安装Elasticsearch【保姆级教程、内含图解】

        Elasticsearch官网:欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastic

学习任何框架和技术,一定要参考相应的官网学习,一定要参考官网学习!!!

注意:Elasticsearch官网访问和加载的耗时很长!!!


目录

1.Elasticsearch介绍

2.基于Docker安装Elasticsearch

2.1 创建网络

2.2 拉取镜像

2.3 创建挂载点目录

2.4 部署单点es,创建es容器

2.5 编写elasticsearch.yml

2.6 重启es容器

2.7 测试Elasticsearch是否安装成功

3.基于Docker安装Kibana

3.1 拉取镜像

3.2 创建挂载点目录

3.3 部署kibana,创建kibana容器

3.4 测试Kibana是否安装成功

4. 基于Docker安装IK分词器

4.1 进入Elasticsearch容器

4.2 在线安装IK分词器


1.Elasticsearch介绍

【摘自百度百科】    

        Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
        Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
        Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
        Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。


2.基于Docker安装Elasticsearch

2.1 创建网络

        因为需要部署kibana容器,因此需要让es和kibana容互联。

指令:
docker network create es-net

实例:

[root@bogon howlong]# docker network create es-net
344f17ffe435894bc3ec98f3e3c1ad93cbde41a473576e645a0d24b6111e7e2e
[root@bogon howlong]#

2.2 拉取镜像

        以安装Elasticsearch 8.6.0 版本为例
指令:

docker pull elasticsearch:8.6.0

实例:

[root@bogon howlong]# docker pull elasticsearch:8.6.0
8.6.0: Pulling from library/elasticsearch
846c0b181fff: Pull complete 
f3516e94dfa9: Pull complete 
b8d95ef1999f: Pull complete 
69af40093f34: Pull complete 
52d2fb478029: Pull complete 
14619d64e022: Pull complete 
ff00ac3f5836: Pull complete 
2eed17832094: Pull complete 
5a7083c2053b: Pull complete 
Digest: sha256:12d0ff50b96a53d2a8e103ba2e0e69187babc3dcf8bdc88788d019cdebb75c0c
Status: Downloaded newer image for elasticsearch:8.6.0
docker.io/library/elasticsearch:8.6.0
[root@bogon howlong]# 

2.3 创建挂载点目录

指令:

mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins

实例:

[root@bogon howlong]# mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
[root@bogon howlong]# 

指令:

chmod 777  /usr/local/es/data
chmod 777  /usr/local/es/config
chmod 777  /usr/local/es/plugins

2.4 部署单点es,创建es容器

指令: 

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

实例:

[root@bogon howlong]# docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0
2a1b0b31da4c349fd8b23d5f9618cf21049b10c1dd3f1bcd27943f629874774b
[root@bogon howlong]# 

2.5 编写elasticsearch.yml

        先进入es容器

指令:

docker exec -it es /bin/bash

实例:

[root@bogon howlong]# docker exec -it es /bin/bash
elasticsearch@6b64658d77d5:~$ 

        跳转到config目录下

指令:

cd config

实例:

elasticsearch@6b64658d77d5:~$ cd config
elasticsearch@6b64658d77d5:~/config$ 

        关闭 密码安全验证

指令:

echo 'xpack.security.enabled: false' >> elasticsearch.yml

2.6 重启es容器

指令;

docker restart es

2.7 测试Elasticsearch是否安装成功

访问虚拟机地址+端口号,前面配置Elasticsearch 的端口号为:9200

例如:

http://192.168.27.129:9200


3.基于Docker安装Kibana

3.1 拉取镜像

        以安装kibana 8.6.0 版本为例

指令:

docker pull kibana:8.6.0

实例:

[root@bogon howlong]# docker pull kibana:8.6.0
8.6.0: Pulling from library/kibana
846c0b181fff: Already exists 
d9d4723b53e8: Pull complete 
3ce175049527: Pull complete 
c5a9d626f54a: Pull complete 
ce0bd3b890fe: Pull complete 
4f4fb700ef54: Pull complete 
1cb2fe49dd32: Pull complete 
7cbec743e1ac: Pull complete 
de07a2df0c3f: Pull complete 
f138fef302e6: Pull complete 
c6afac2b2f31: Pull complete 
53c0672d0212: Pull complete 
7522efaa8c9c: Pull complete 
5e8db7e50c16: Pull complete 
Digest: sha256:71d8a59d32b181c3b3c04a4fecf2197f00eb381659510d04261c2cd5d43a0225
Status: Downloaded newer image for kibana:8.6.0
docker.io/library/kibana:8.6.0
[root@bogon howlong]# 

3.2 创建挂载点目录

指令:

mkdir -p /usr/local/kibana/config /usr/local/kibana/data

代码:

[root@bogon howlong]# mkdir -p /usr/local/kibana/config /usr/local/kibana/data
[root@bogon howlong]# 

指令:

chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

3.3 部署kibana,创建kibana容器

指令:

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

实例:

[root@bogon howlong]# docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0
cfcc8b35079d9e74be20f89ab0c96d2a9af8e0679b055e0684865d3d042f7307
[root@bogon howlong]# 

3.4 测试Kibana是否安装成功

访问虚拟机地址+端口号,前面配置Kibana 的端口号为:5601

例如:

http://192.168.27.129:5601


4. 基于Docker安装IK分词器

4.1 进入Elasticsearch容器

指令:

docker exec -it es /bin/bash

实例:

[root@bogon howlong]# docker exec -it es /bin/bash
elasticsearch@6b64658d77d5:~$ 

4.2 在线安装IK分词器

        注意:安装IK分词器的版本,必须和Elasticsearch的版本一致,

        上文安装的是Elasticsearch 8.6.0的,所以接下来安装的IK分词器版本是8.6.0

指令:

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

如果需要安装其他版本的IK分词器,需要把版本号修改即可

如:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

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

原文地址:https://blog.csdn.net/Acloasia/article/details/130683934

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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