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.hqwc.cn/news/225769.html

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

相关文章

虚幻学习笔记5—UI预设体制作

一、前言 本文使用的虚幻引擎5.3.2,在unity中有预设体的概念,可以将一个组合型的物体或UI制作成预设体,方便后续可以快速制作更多元的内容和复用。虚幻本身没有这个概念,但是要实现类似的效果其,故此我引用了这个概念。…

iOS-打包上架构建版本一直不出现/正在处理/自动消失

iOS开发过程中,打包上架苹果审核是一个不可或缺的环节。说实话,这个问题我遇见两次了,为了让自己长点记性,决定写下来。首先,列举几种情况: 1.iPa包上传至App store后,一个小时内不显示构建版本…

如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 云存储概念兴起后,现在市面上也已经有了很多公有云盘。但一段时间后…

关于easy-es的聚合问题-已解决

es实体类&#xff1a; public class ChemicalES {IndexId(type IdType.CUSTOMIZE)private Long id;HighLightIndexField(fieldType FieldType.TEXT, analyzer "ik_max_word")private String name;IndexField(fieldType FieldType.KEYWORD)private List<Stri…

2.安装docker

目录 1 安装依赖 2 安装docker 3 测试 目前docker分为三类 Docker-CE(社区版),Docker-EE(企业版)和Moby。Moby是docker社区用户自己写的&#xff0c;所以Moby我们一般用不上 每一类的每一个版本中都有Edge与Stable版&#xff0c;Stable维护4个月&#xff0c;Edge维护1个…

如何使用ArcGIS Pro制作一张北极俯视地图

地图的表现形式有很多种&#xff0c;经常我们看到的地图是以大西洋为中心的地图&#xff0c;还有以太平洋为中心的地图&#xff0c;今天要给大家介绍的地图是从北极上方俯视看的地图&#xff0c;这里给大家讲解一下制作方法&#xff0c;希望能对你有所帮助。 修改坐标系 制作…

跨境无限,智能连接 浙江省跨境电商产业联盟AIGC专委会—AIGC大会

2023年11月23日至27日&#xff0c;第二届全球数字贸易博览会在杭州国际博览中心举办。本届数贸会以“数字贸易 商通全球”为主题&#xff0c;中国与来自63个国家和地区、68个国际组织和境外商协会的各界代表约1000人出席开幕式。浙江省跨境电商产业联盟AIGC专委会受邀出席此次大…

SimpleDateFormat在多线程下的安全问题

目录 情景重现 SimpleDateFormat解析 解决方案 局部变量 加锁 使用线程变量 使用DateTimeFormatter 情景重现 SimpleDateFormat类是Java开发中的一个日期时间的转化类。它可以满足绝大多数的开发场景&#xff0c;但是在高并发下会出现并发问题。接下来查看下文中的案例。…

Unity中Shader的BRDF解析(一)

文章目录 前言现在我们主要来看Standard的 漫反射 和 镜面反射一、PBS的核心计算BRDF二、Standard的镜面高光颜色三、具体的BRDF计算对于BRDF的具体计算&#xff0c;在下篇文章中&#xff0c;继续解析 四、最终代码.cginc文件Shader文件 前言 在上篇文章中&#xff0c;我们解析…

当消费增值模式遇上Dapp:擦出创新商业的火花

随着区块链技术和智能合约的不断发展&#xff0c;去中心化应用&#xff08;Dapp&#xff09;逐渐成为一种创新的商业模式。当消费增值模式与Dapp相遇&#xff0c;它们之间擦出了怎样的火花呢&#xff1f; 一、Dapp与消费增值模式的结合 Dapp是一种基于区块链技术和智能合约的去…

在Rust中处理命令行参数和环境变量

1.摘要 Rust的命令行和环境变量处理在标准库中提供了一整套实现方法, 在本文中除了探索标准库的使用方法之外, 也在不断适应Rust独有的语法特点。在本文中, 我们通过标准库函数的返回值熟悉了迭代器的使用方法, 操作迭代器精确控制保存的内容, 包括字符串和键值对的使用方法。…

Mysql快速查找用逗号分割的列中含有某个字符的行:FIND_IN_SET

看标题比较绕口&#xff0c;但是我举一个例子你就清楚了 这是一个查询&#xff1a;我现在想要的是attr_val中含有黑色属性的行&#xff1a; 你用模糊匹配可以&#xff0c;用REGEXP也行&#xff0c;下面介绍一种mysql自带的函数&#xff1a;FIND_IN_SET。它的用法是&#xff1a…