文章目录

  • 前言
  • 基本环境构建
    • Java安装
    • docker安装
    • es部署
      • 安装ES
      • 验证安装
    • 安装kibana
  • 设置密码
    • 进入es容器
    • 安装Vim
    • 修改es容器配置文件
    • 设置es访问密码
    • 设置Kibana密码
      • 理想状态
      • 方案二修改挂载
  • 安装IK分词器
    • 安装ik分词器
      • 在线安装
      • 离线安装

前言

虽然说要停更,但是有些东西还是需要记录一下的,尤其是这种,不需要动脑子,但是就是容易忘记需要注意的操作是需要进行记录的。

那么本篇博文需要做的就是使用docker容器部署ElasticSearch,如何从0开始进行搭建,同时设置账户和密码。
这里先说明一下的是,这里部署的是单节点的ElasticSearch,实话实话,之所以搞这个还是为了完成WhiteHole的一个搜索功能,但是考虑到服务成本的问题,所以还是考虑单节点。实际上,我们是完全可以考虑使用Mysql(>=5.7) 的分词来实现类似的效果的,因为数据量并不多的情况下,使用这个也是可以考虑的,但是为了考虑到以后扩展,还是打算先把Es给做进去,同时提供两套实现方案,后期通过nacos注册中心进行灵活调配,我使用哪一种方案。

不过也确实,脱离场景谈技术都是扯犊子,这套技术栈很好,但是对于当前的WhiteHole来说,属于是典型的堆技术栈,只能说面试唬唬人,从此以后我们具备了搭建分布式架构,并基于java微服务技术完成这一架构的开发能力,同时具备了多语言开发能力。

OK,吐槽归吐槽,我们还是来说一说,我们如何搭建。这里我使用的服务器是centos8,4核8GB。这里请注意你的系统版本。

基本环境构建

那么在开始之前,我们需要做的就是搭建好我们的环境。

Java安装

sudo yum -y install java-11-openjdk-devel

或:

sudo yum -y install java-11-openjdk

这两个都可以,上面那个把Java的一些额外的东西都会给你搞好。

docker安装

  1. 卸载可能存在的版本(看你自己,非必要)
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce
  1. 安装docker

2.1 首先安装依赖:

yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken

2.2 然后设置镜像

yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repoyum makecache --refresh

2.3 最后安装社区版本

yum install -y docker-ce

到此docker安装完毕。

es部署

这个可以去docker 镜像那里去拉取,我这里也有一个7.12的
链接:https://pan.baidu.com/s/1tmBP7RHVX62FdAigpcV0Lg
提取码:6666

我在服务器这边创建了一个目录,然后上传了这个tar包

要的小伙伴自取。

之后我们加载一下镜像。

为了测试,我们先做单节点部署,看看行不行。

安装ES

我们先运行一下我们的docker

systemctl start docker

然后切换到 es.tar 的目录,我的目录是 /elastic

然后加载镜像

 docker load -i es.tar

之后我们创建一个容器:

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

命令解释:

  • -e "cluster.name=es-docker-cluster":设置集群名称

  • -e "http.host=0.0.0.0":监听的地址,可以外网访问

  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小

  • -e "discovery.type=single-node":非集群模式

  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录

  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录

  • --privileged:授予逻辑卷访问权

  • --network es-net :加入一个名为es-net的网络中

  • -p 9200:9200:端口映射配置

验证安装

之后打开你的 IP:9200 端口

访问正常

安装kibana

这个是咱们联调elastic用的。

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:端口映射配置

可以看到有两个了

之后在浏览器打开 5601端口

由于一个DevTool

设置密码

之后的话,我们需要去设置密码,因为,现在是已经可以正常运行了,但是,没有设置密码,那么就意味,任何人都可以访问,那么这样做显然是不太OK的。(这里的话,为了安全,建议再做一个端口映射,如果需要公开暴露的话)

那么这里设置密码的话也是分别设置es的和kibabana的。这里不太一样的就是,我们需要去容器里面去修改配置。

进入es容器

首先我们需要找到,我们的容器。

docker container ls


当然如果你的容器没有在线运行,那么就是

docker ps -a

查看所有的 容器。

然后我们需要进入到容器里面

docker exec -it 容器ID /bin/bash

安装Vim

我们待会需要去修改配置文件,但是对于这个原始镜像来说,是没有vim,同时yum也无法正常使用。因此,我们需要麻烦一点去安装。

这里的话按照顺序输入如下指令即可:

cd /etc/yum.repos.d/
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*yum makecache
yum update -y
yum -y install vim

那么这个时候的话,我们的vim就是安装好了。

修改es容器配置文件

之后的话,我们就可以正常使用vim去修改我们的配置文件了。

那么此时进入到我们的config目录

cd config


然后我们编辑
elasticsearch.yml配置文件
然后添加如下命令:

xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "Authorization"

之后退出容器,重启

docker restart 容器ID

设置es访问密码

此时你再次刷新刚刚9200的那个端口应该是会提示你要密码登录的,但是还没完,我们此时再次进入到我们的容器,然后进入bin目录,输入如下指令:

elasticsearch-setup-passwords interactive

然后会让你设置各种密码,你可以选择统一,随便你。

之后再次访问:

我们输入密码即可。用户名为 elastic

设置Kibana密码

理想状态

首先通过同样的方式,我们进入到Kibana的容器当中。

然后就好办了嘛,

然后修改Kibana的配置文件
同样的没有vim需要再来一下。之后我们在编辑这个文件然后添加:

elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"

即可,但是遗憾的是,通过我们刚刚安装的docker 容器来说,你也看到了,当前用户并不是root,实际上是kibana,这个就比较蛋疼了,不过条条大路通罗马,实际上,我们还有另一个方案。

方案二修改挂载

本来是打算去挣扎一下,去看看人家官方是咋说的,突然想到,刚刚我们应该是有挂载我的配置文件的。所以,我就直接修改本地文件其实就可以了。是的修改es的时候其实也可以这样干,如果不是因为vim问题的话,这种方式是更慢的。为啥呢,原因在这儿:

首先我们先找到挂载,由于我也不知道在哪,所以我们找一下位置:

find / -name  kibana.yml

最后我们找到有这几个东西:

这个是我们挂载的,其实到底是哪一个我也不确定,于是我就全部看了一下,最后,我对这两个文件进行了修改。

第一个文件是一堆注释,第四个文件当我把前面的改好了,这个也就改好了,可能是个链接吧。

之后的话加入刚刚的那两句话:

elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"

安装IK分词器

OK,最后的话,就是来安装一下我们的分词器,就是我们的 KunKun分词器主要是因为中文分词嘛。其实作用和jieba类似嘛,要做关键词搜索呗。

安装ik分词器

安装的话两种方案:

在线安装

这个比较慢。

执行如下指令就好了:

# 进入容器内部
docker exec -it containerName /bin/bash# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit
#重启容器
docker restart elasticsearch

离线安装

那么我们这边选择离线安装,所以先到ik官网,去搞到压缩包。

我们可以在docke看到有两个数据卷正在被使用。

并且可以看到具体信息

然后的话我们直接进入那个目录,然后上传ik分词器。

然后重启容器。

docker restart  容器ID/名

最后我们来到Kibana来看看我们的分词效果。

效果非常不错。

ElasticSearch Docker 部署实例相关推荐

  1. [ElasticSearch] docker 部署错误 连不上es Unable to revive connection: http://elasticsearch:9200/

    环境: CentOS8 ElasticSearch 7.9.1 Kibana 7.9.1 报错信息 {"type":"log","@timestamp ...

  2. Docker部署Elasticsearch集群

    来源:https://www.cnblogs.com/lixuebin/p/10814052.html 参考文档: https://hub.docker.com/r/library/elasticse ...

  3. docker部署redis集群_Docker部署Redis集群----第九节(docker-redis哨兵集群“轮询分流”篇实例一)...

    到此,我们的 Redis 哨兵集群就结束了,本篇章是第九篇章,也是使用集群方式的实例一来实现php的轮询分流. 1.准备工作: 在我们上一篇章实现redis 哨兵集群的基础上开始,在服务器上部署php ...

  4. 采用docker部署3台Redis分布式红锁实例

    采用docker部署3台Redis分布式红锁实例 docker run -p 6381:6379 --name redis-master-1 -d redis:5.0.7 docker run -p ...

  5. Docker 部署ElasticSearch + Kibana

    2.1 安装ElasticSearch 2.11 Windows安装 声明:JDK1.8 ,最低要求! ElasticSearch 客户端,界面工具!官网:Free and Open Search: ...

  6. Docker部署Elasticsearch及安装后自动关闭的问题

    Docker搭建Elasticsearch方法 前往dockerhub官网:dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像,如docker pull el ...

  7. Docker部署ELK(ElasticSearch logstash Kibana)

    Docker部署ELK 一 . ElasticSearch安装 新建elasticsearch目录,并再其下新建文件config/elasticsearch.yml,文件内容如下: cluster.n ...

  8. Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)

    1.Docker离线安装配置 rpm版本安装 # 系统版本 rpm -qi centos-release Name : centos-release Version : 8.1 Release : 1 ...

  9. 使用 docker 部署常用的开发环境

    使用 docker 部署常用的开发环境 Intro 前段时间电脑之前返厂修了,所有的软件都要重新装一遍,很麻烦,既然用了 docker 有些环境就直接用 docker 部署了,免去了还要再下载软件重新 ...

最新文章

  1. Leetcode | Minimum/Maximum Depth of Binary Tree
  2. Java之品优购课程讲义_day01(8)
  3. 关于android中postDelayed方法的讲解
  4. mysql 和 sqlserver sql差异比较
  5. 大型EAI项目中的ORACLE 数据库管理(ZT)
  6. c语言堆栈基本代码入栈出栈_c语言的简单的进栈出栈
  7. 项目alpha冲刺-总结
  8. spring-boot 免xml配置直接使用spring
  9. swoole mysql 并发_如何用Swoole测试MySQL在特定SQL下的并发性能
  10. 拓端tecdat|R语言ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列
  11. 学web前端从哪里开始学起呢-好程序员
  12. Win10使用以前的图片查看器
  13. 【故事】跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租(上)...
  14. 解决vue项目在ie浏览器中无法显示的问题,兼容低版本浏览器问题
  15. php实现自动续费功能,如何关闭wps自动续费
  16. termux安装以及基本配置
  17. 论文笔记2.5D lightweight RIU-Net for automatic liver and tumor segmentation from CT
  18. OpenCV-霍夫线变换
  19. 703n的OpenWrt配置四:把路由器变成下载机
  20. 晕菜了,TFS居然把vss里的那个rollback功能cut掉了,还好有人写了工具.

热门文章

  1. 基于Arduino的草缸自动控制系统
  2. 中兴笔试题目总结(四)软件工程部分
  3. 查询表名所在数据库名
  4. ubuntu U盘只读的修复办法
  5. 由浅入深理解区块链技术
  6. 利用range表单元素实现调色板
  7. Spring的AOP切面编程
  8. 【Vuejs】1426- 深入解析 Vue 3 基础难点
  9. java的SSM框架的优点有哪些
  10. Perl CGI重构原则