docker 安装elasticsearch集群

准备工作

  1. docker 安装好,docker compose 安装好
  2. 编辑好docker-compose.yml文件(本文会提供)
  3. 生成elastic-certificates.p12密钥,与docker-compose文件在同一个目录(本文会介绍生成方式)
  4. 准备elasticsearch配置文件,与docker-compose文件在同一个目录
  5. 准备kibana配置文件,与docker-compose文件在同一个目录

最终的文件目录截图给大家参考:
在这里插入图片描述
start.cmd可以没有,其他两个txt文件也只是我自己记录操作步骤和运行命令的,可以没有。

docker-compose

建一个docker-compose.yml文件,贴入以下内容:

version: '3.0'
services:es01:image: elasticsearch:7.6.2container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1deploy:resources:limits:memory: 1Greservations:memory: 512M     volumes:- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12ports:- 9200:9200networks:- elastices02:image: elasticsearch:7.6.2container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1deploy:resources:limits:memory: 1Greservations:memory: 512M       volumes:- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12ports:- 9201:9200networks:- elastices03:image: elasticsearch:7.6.2container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1deploy:resources:limits:memory: 1Greservations:memory: 512Mvolumes:- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12ports:- 9202:9200networks:- elastic# 管理工具      kibana:depends_on: - es01image: kibana:7.6.2container_name: kibanaports:- 5601:5601environment:- elasticsearch.url=http://es01:9200- elasticsearch.hosts=http://es01:9200- i18n.locale=zh-CN   - TZ=Asia/Shanghaivolumes:- ./kibana.yml:/usr/share/kibana/config/kibana.yml- /etc/localtime:/etc/localtimenetworks:- elastic# 管理工具(推荐使用)  elastic-hd:image: containerize/elastichd:latestcontainer_name: es-hdports:- "9800:9800"depends_on:- "es01"links:- "es01"networks:- elastic      
# 虚拟局域网
networks:elastic:driver: bridge

生成密钥

随便运行一个单机版的es实例,镜像版本跟集群版本的一致

docker run -dit --name=es elasticsearch:7.6.2 /bin/bash

进入容器

docker exec -it es /bin/bash

生成密钥,分别执行这两个命令,期间遇到需要输入密码的,回车即可

./bin/elasticsearch-certutil ca./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

退出容器,执行docker拷贝命令;下面的示例命令是拷贝到当前目录,具体使用方法可查阅docker官网;

docker cp es:/usr/share/elasticsearch/elastic-certificates.p12 .

到这里我们就得到一个密钥,后续搭建集群的时候共享这个密钥即可。当前这个es实例就可以删除了。
也可以参考其他网友的生成方式。所有的集群共享这个密钥即可

elasticsearch配置文件

新建一个elasticsearch.yml文件,贴入下面的内容,不需要做任何修改

network.host: 0.0.0.0
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.type: PKCS12
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.type: PKCS12xpack.security.audit.enabled: truehttp.cors.enabled: true
http.cors.allow-origin: "*"

kibana配置文件

这一步可以先随便配置一个密码,等集群起来了,重置密码后再补充,毕竟此时我们也不知道es的密码是多少;因为kibana只是管理工具,不影响集群的启动,只是暂时无法连接集群而已。
建一个 kibana.yml

server.name: kibana
server.host: "0"
kibana.index: ".kibana"
elasticsearch.hosts: [ "http://【宿主机IP】:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN
elasticsearch.username: 'kibana'
elasticsearch.password: '【密码】'

创建es集群,并启动

docker compose up

修改elastic初始密码

进入容器,执行密码重启命令;根据提示输入自己喜欢的密码
然后回到上面的kibana配置文件,填入这个密码;kibana即可连接到集群

docker exec -it es01 bash./bin/elasticsearch-setup-passwords interactive

elasticHD连接方式

elasticHD这个管理工具我是比较推荐的,依赖性没有那么强,而且界面操作简单,好看。
具体使用哪一款管理工具都不影响我们集群的搭建。
由于本集群是配置了密码的,所以默认的是连不上集群的。
在这里插入图片描述

官网原话:
ElasticSearch server that supports privileged authentication, URL format:http://user:password@host:port
大概的意思就是,如果ElasticSearch server配置了认证,可以使用这样的url方式
例如:
http://elastic:【密码】@【宿主机ip】:9200
在这里插入图片描述

到此,我们的es集群应该就算搭建完成了!
过程中哪一步没有做到的,可以单独查阅其他网友的教程;而不要局限与本教程。毕竟实际场景中有很多因素,比如有些小伙伴的宿主机给docker分配的JVM内存太小,导致集群起不来就不是本文的范畴了。
最后,祝大家都顺利起飞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/204711.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机系列:vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?以及相互转换

一. VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面: 首先两种软件的安装使用教程如下: VMware ESXI 安装使用教程 Oracle VM VirtualBox安装使用教程 商业模式:VMware是一家商业公司,而Oracle VM VirtualBox是开源软件; 功能:VMware拥有更多的功能和…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC

@[toc] 万户协同办公平台ezoffice SendFileCheckTemplateEdit.jsp接口存在SQL注入漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文…

如何拥有免费的docker镜像仓库

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 hello&#xff0c;伙伴们&#xff0c;最近在研究devops的事情&#xff0c;发现了很有意思的东西。 就是我们所有…

qgis添加arcgis的mapserver

左侧浏览器-ArcGIS地图服务器-右键-新建连接 Folder: / 展开-双击图层即可

西南科技大学模拟电子技术实验二(二极管特性测试及其应用电路)预习报告

目录 一、计算/设计过程 二、画出并填写实验指导书上的预表 三、画出并填写实验指导书上的虚表 四、粘贴原理仿真、工程仿真截图 一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入…

LLM、ChatGPT与多模态必读论文150篇

为了写本 ChatGPT 笔记&#xff0c;我和10来位博士、业界大佬&#xff0c;在过去半年翻了大量中英文资料/paper&#xff0c;读完 ChatGPT 相关技术的150篇论文&#xff0c;当然还在不断深入。 由此而感慨&#xff1a; 读的论文越多&#xff0c;你会发现大部分人对ChatGPT的技…

正则表达式 通配符 awk文本处理工具

目录 什么是正则表达式 概念 正则表达式的结构 正则表达式的组成 元字符 元字符点&#xff08;.&#xff09; 代表字符. 点值表示点需要转义 \ r..t 代表r到t之间任意两个字符 过滤出小写 过滤出非小写 space空格 [[:space:]] 表示次数 位置锚定 例&#xff1a…

【开源】基于Vue.js的海南旅游景点推荐系统的设计和实现

项目编号&#xff1a; S 023 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S023&#xff0c;文末获取源码。} 项目编号&#xff1a;S023&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四…

webpack如何设置兼容浏览器的范围​browserslist

Browserslist 是前端工程化不可或缺的工具&#xff0c;无论是处理 js 的 babel 还是处理 css 的 postcss&#xff0c;他们背后都有Browserslist 的身影。 一、如何查看查看所有浏览器和它的市场占有率 我们如何知道现在的浏览器那些被废弃、那些市场占有率高&#xff0c;可以…

基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 上一节把数据库与相关基础数据字典准备好&#xff0c;下面就来实现相应的功能&#xff0c;目前先针对自定义…

数据结构-交换排序(冒泡、快速)

冒泡排序 基本思想 先将第一个记录与第二个记录比较&#xff0c;将较大的记录放到第二个位置上&#xff0c;之后再将第二个记录与第三 个记录比较&#xff0c;将较大的记录放到第三个位置上&#xff0c;如此类推&#xff0c;知道比较完最后一个位置&#xff0c;此时注意到 …

『 Linux 』进程优先级

文章目录 什么是优先级Linux下的进程优先级PRI与NI使用top查看进程以及对进程的优先级的修改 进程优先级的其他概念竞争性与独立性并发与并行 什么是优先级 优先级,顾名思义,即在同一环境下不同单位对同一个资源的享有顺序; 一般优先级高的单位将优先占有该资源; 在进程当中进…

万宾科技第四代可燃气体监测仪的作用

燃气作为一种重要的能源已在居民生活、工业生产和商业活动等领域得到了广泛的应用。但是与之而来的便是各种各样的燃气管网的安全问题&#xff0c;其中燃气管网泄漏成为了城市生命线建设中亟待解决的安全隐患。因此采取切实有效的措施来保障燃气管网的安全运行&#xff0c;应用…

Matlab 点云曲率计算(之二)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经讨论过许多关于计算曲率的问题,这里使用一个通过拟合三次曲面方程的方式来计算曲率,计算过程如下图所示: 二、实现代码 %********

centos7.9 + gitlab12.3.0安装

本文在centos7.9操作系统上安装gitlab 12.3.0&#xff0c;gitlab官方最新的版本已经是16.6.0了&#xff0c;这里仍然安装12.3.0版本的原因是汉化包的最新版本是12.3.0&#xff0c;如果汉化包的版本和gitlab的版本不对应&#xff0c;会出现汉化他无法启动的现象。 1、安装依赖 …

4/150:寻找两个正序数组的中位数⭐

题目&#xff1a;寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 题解1&#xff1a;暴力 暴力思路简介&#xff0c;…

服务器bash进程占用cpu过多疑似中挖矿病毒记录

发现过程 因为我有使用conky的习惯&#xff0c;也就是在桌面上会显示cpu和内存的占用情况&#xff0c;由于服务器不止我一个人使用&#xff0c;最近发现好几次我同学的账户下的bash进程占用特别多&#xff0c;问了他之后&#xff0c;他也说他几次都是没有使用过bash相关服务&a…

029 - STM32学习笔记 - ADC(三) 独立模式单通道DMA采集

029 - STM32学习笔记 - 单通道DMA采集&#xff08;三&#xff09; 单通道ADC采集在上节中学习完了&#xff0c;这节在上节的内容基础上&#xff0c;学习单通道DMA采集。程序代码以上节的为基础&#xff0c;需要删除NVIC配置函数、中段服务子程序、R_ADC_Mode_Config()函数中使能…