Ubuntu搭建ES8集群+加密通讯+https访问
目录
写在前面
一、前期准备
1. 创建用户和用户组
2. 修改limits.conf文件
3. 关闭操作系统swap功能
4. 调整mmap上限
二、安装ES
1.下载ES
2.配置集群间安全访问证书密钥
3.配置elasticsearch.yml
4.修改jvm.options
5.启动ES服务
6.修改密码
7.启用外部https调用
8.三台都重启
9.查看集群节点状态
写在前面
这是一份详细的Ubuntu安装Elasticsearch 8.8.2部署教程,适合刚接触的小伙伴,也能帮上有经验的朋友。从环境准备开始,到安装配置,再到集群搭建,手把手教你怎么操作。包括创建用户、设置权限、优化系统参数、生成证书、配置文件调整等步骤,每一步都清清楚楚。按照这个流程走,相信你很快就能跑起一个稳定的ES集群了,祝你顺利!
一、前期准备
1. 创建用户和用户组
ES不能使用root启动,所以要新建用户,命令如下:
# 创建组
groupadd elastic# 创建用户
useradd -s /bin/bash -g elastic -m elastic# 修改elastic密码
passwd elastic
New password: [输入你的新密码]
以上步骤添加名为elastic用户, 并将其添加至elastic组内, 并修改密码。
假如elastic准备放在/data/elastic882/下,需要给这个用户这个目录的所有权:
chown elastic /data/elastic882/
chmod 777 /data/elastic882/
2. 修改limits.conf文件
为elastic用户调整最大的文件和线程资源数上限:
vi /etc/security/limits.conf# 添加如下配置elastic – nofile 65536elastic – nproc 4096
在ubuntu操作系统下,需要确保/etc/pam.d/su文件中,已经开启pam_limits功能,使得上述limits.conf文件生效:
grep pam_limits /etc/pam.d/su# 应如下信息,如果没有就加上
session required pam_limits.so
3. 关闭操作系统swap功能
修改/etc/fstab,注释掉所有与swap的功能
vi /etc/fstab# 比如下面这样
/dev/mapper/openeuler_zhrm--es01-root / xfs defaults 0 0
UUID=2c60fc0b-ea0d-43cb-8f8b-bb607b3e49f0 /boot ext4 defaults 1 2
# /dev/mapper/openeuler_zhrm--es01-swap none swap defaults 0 0
UUID=1d193d38-969c-4dac-b2ef-b4b26f6f778f /data xfs defaults 0 0
(需要重启才能生效)
关闭此功能前的效果:

生效的后的效果:

4. 调整mmap上限
修改/etc/sysctl.conf
vi /etc/sysctl.conf 添加如下设置vm.max_map_count=262144
重启系统,让上面的设置生效。
二、安装ES
我们以三台服务器为例(假设为node-1、node-2、node-3),使用es8.8.2,es安装在 /data/elastic882 目录。
1.下载ES
cd /data/elastic882
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz
tar -zxvf elasticsearch-8.8.2-linux-x86_64.tar.gz
2.配置集群间安全访问证书密钥
在任意一台执行命令,颁发证书:
cd elasticsearch-8.8.2
# 签发ca证书
./bin/elasticsearch-certutil ca
`【ENTER】` 什么也不用输入直接回车
`【ENTER】` 什么也不用输入直接回车# 用ca证书签发节点证书
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
`【ENTER】` 什么也不用输入直接回车
`【ENTER】` 什么也不用输入直接回车
`【ENTER】` 什么也不用输入直接回车# 将证书放到certs目录(手动创建)
mkdir config/certs
mv elastic-certificates.p12 elastic-stack-ca.p12 config/certs
然后把elastic-certificates.p12 elastic-stack-ca.p12两个文件另外两个服务器的相同位置:
/data/elastic882/elasticsearch-8.8.2/config/certs
3.配置elasticsearch.yml
vi /data/elastic882/elasticsearch-8.8.2/config/elasticsearch.yml 添加如下配置,三台都这么做:
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------# Enable security features
xpack.security.enabled: truexpack.security.enrollment.enabled: true# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:enabled: falsekeystore.path: certs/elastic-certificates.p12# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/elastic-certificates.p12truststore.path: certs/elastic-certificates.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
ingest.geoip.downloader.enabled: false
#--------------------- END SECURITY AUTO CONFIGURATION -------------------------
继续修改elasticsearch.yml
node-1配置,注意下面的ip1、ip2、ip3要替换成自己实际的ip:
cluster.name: es8
http.cors.enabled: true
http.cors.allow-origin: "*"
action.destructive_requires_name: falsenode.name: node-1
node.roles: [master,data]path.data: /data/elastic882/data
path.logs: /data/elastic882/logsnetwork.host: 0.0.0.0
http.port: 9200
http.publish_host: ip1discovery.seed_hosts: ["ip1:9300","ip2:9300","ip3:9300"]cluster.initial_master_nodes: ["node-1","node-2","node-3"]
node-2只有下面两个配置不同:
node.name: node-2http.publish_host: ip2
node-3也是:
node.name: node-3http.publish_host: ip3
4.修改jvm.options
最大最小堆内存需要根据实际机器情况配置, 上限(不包括)32G,注意这两个参数前不要有空格:
vi jvm.options# 下面两行的注释 打开配置合适的大小
-Xms4g
-Xmx4g
5.启动ES服务
# 三台都启动
./bin/elasticsearch -d -p pid
6.修改密码
在任意一台上执行修改密码的命令:
./bin/elasticsearch-reset-password -u elastic -iPlease confirm that you would like to continue [y/N]y
Enter password for [elastic]: [你的ES密码]
Re-enter password for [elastic]: [你的ES密码]
7.启用外部https调用
# 三台都改
vi /data/elastic882/elasticsearch-8.8.2/config/elasticsearch.yml# 将这个参数变为true
xpack.security.http.ssl:enabled: true
8.三台都重启
# 关闭
kill `cat pid`# 启动
./bin/elasticsearch -d -p pid
9.查看集群节点状态
# 集群各个节点状态,可以看到三个节点的信息
curl -k -u elastic:[你的ES密码] https://127.0.0.1:9200/_cat/nodes?vip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
[ip1] 8 22 4 0.81 0.37 0.21 dm * node-1
[ip1] 8 22 5 0.56 0.27 0.14 dm - node-3
[ip1] 7 26 5 0.53 0.23 0.12 dm - node-2# 查看集群的健康状态
curl -k -u elastic:[你的ES密码] https://127.0.00.1:9200/_cat/health?vepoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1734652132 23:48:52 es8 green 3 3 2 1 0 0 0 0 - 100.0%
注意elasticsearch.yml配置文件要遵循yml格式要求,每一行的开头空格很敏感,不要写错。
ES8集群部署就介绍到这,关注不迷路,(#^.^#)
了解更多优质内容,商务合作!!! 搞钱入口》》》
还在为找工作烦恼吗,用这个宝藏小程序,拿Offer快人一步!Offer入口》》》
相关文章:
Ubuntu搭建ES8集群+加密通讯+https访问
目录 写在前面 一、前期准备 1. 创建用户和用户组 2. 修改limits.conf文件 3. 关闭操作系统swap功能 4. 调整mmap上限 二、安装ES 1.下载ES 2.配置集群间安全访问证书密钥 3.配置elasticsearch.yml 4.修改jvm.options 5.启动ES服务 6.修改密码 7.启用外部ht…...
PC寄存器(Program Counter Register)jvm
在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色。以下是对JVM中PC寄存器的详细解释: 一、定义与功能 定义: JVM中的PC寄存器,也被称为程序计数器,是对物理PC寄存器的一种抽象模拟。它用于存储当前线程所执行的字节码指令的地址,即指…...
预览和下载 (pc和微信小程序)
1.微信小程序 预览pdf 或者 图片等 //utils.js 文件//通过接口返回文件链接 打开文档 export default function previewFile({ downLinkUrl, tempFilePath }) {let url "https://" downLinkUrl.replace("http://", "").replace("https:…...
使用 DeepSpeed 微调 OPT 基础语言模型
文章目录 OPT 基础语言模型Using OPT with DeepSpeedmain.py 解析1、导入库和模块2、解析命令行参数3、main 函数3.1 设备与分布式初始化3.2 模型与数据准备3.3 定义评估函数3.4 优化器与学习率调度器设置3.5 使用 deepspeed 进行模型等初始化3.6 训练循环3.7 模型保存 4、dsch…...
BSM和BMS什么区别?
BSM BSM(Battery System Manager)是指用于管理和控制电动车辆的电池系统的设备,其功能包括监测电池状态、控制充放电过程、保护电池安全等。 BMS BMS(Battery Management System)是指用于监测、控制和保护电池组的设…...
使用Maven打包javaagent.jar
1、简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码。 java1.5 之前使用的是JVMTI(jvm tool interface)技术来实现对class的拦截,不过这个是用 C 编写的&#…...
R语言混合模型回归GBTM群组轨迹模型绘图可视化研究
全文链接:https://tecdat.cn/?p38581 在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力(…...
【毕业设计】A079-基于Java的影院订票系统的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…...
Vue.js前端框架教程11:Vue监听器watch和watchEffect
文章目录 监听器(watchers)基本用法deep: trueimmediate: true总结 watchEffect基本用法自动追踪依赖停止监听与 watch 的对比性能优化总结 监听器(watchers) 在 Vue 中,监听器(watchers)是一种…...
疾风大模型气象系统:精准预报,引领未来
精准预报,引领未来 在当今快速变化的世界中,天气预报已成为日常生活和社会运行中不可或缺的一部分。从规划日常出行到防范极端天气影响,高精准的气象服务正在重新定义我们的生活方式。而在这一领域,疾风大模型气象系统以其卓越的技术实力和领先的预测能力,正引领气象服务…...
U9应收单拉单生成时找不到退货单
财务说做应收单时抓不到一张退货单。2022年单据。这样的单据让人联想翩翩,胡思乱想。怎么复杂怎么想,钻了牛角尖。分析了1天也没有结果。不知道系统的逻辑,只能用猜想的形式去分析。 问过顾问之后,原来是单据类型错了。从而知道了…...
设计模式--单例模式【创建型模式】
设计模式的分类 我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类: 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7 种)࿱…...
挑战一个月基本掌握C++(第七天)了解指针,引用,时间,输入输出,结构体,vector容器,数据结构 - 通用完结
一 指针 每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。 下面的实例,它将输出定义的变量地址: #include <iostream>using…...
百度面试手撕 go context channel部分学习
题目 手撕 对无序的切片查询指定数 使用context进行子协程的销毁 并且进行超时处理。 全局变量定义 var (startLoc int64(0) // --- 未处理切片数据起始位置endLoc int64(0) // --- 切片数据右边界 避免越界offset int64(0) // --- 根据切片和协程数量 在主线程 动态设…...
Spring事务管理详解
一、什么是事务管理 事务是一个最小的不可再分的工作单元。 一个事务对应一套完整的业务操作。事务管理是指这些操作要么全部成功执行,要么全部回滚,从而保证数据的一致性和完整性。比如银行转账,需要保证转出和转入是一个原子操作。Spring提…...
社区版 IDEA 开发webapp 配置tomcat
1.安装tomcat 参考Tomcat配置_tomcat怎么配置成功-CSDN博客 2.构建webapp项目结构 新建一个普通项目 然后添加webapp的目录结构: main目录下新建 webapp 文件夹 webapp文件夹下新建WEB_INF文件夹 *WEB_INF目录下新建web.xml wenapp文件夹下再新建index.html …...
打 印 菱 形
本题要求你写个程序打印成菱形的形状。例如给定17个符号,要求按下列格式打印 **** *********所谓“菱形形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数从1开始先从小到大顺序递增ÿ…...
ffmpeg翻页转场动效的安装及使用
文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目 三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取…...
[RocketMQ] 发送重试机制与消费重试机制~
发送重试 RocketMQ 客户端发送消息时,由于网络故障等因素导致消息发送失败,这时客户端SDK会触发重试机制,尝试重新发送以达到调用成功的效果。 触发条件 客户端消息发送请求失败或超时。服务端节点处于重启或下线状态。服务端运行慢造成请…...
基于Redis的网关鉴权方案与性能优化
文章目录 前言一、微服务鉴权1.1 前端权限检查1.2 后端权限检查1.3 优缺点 二、网关鉴权2.1 接口权限存储至Redis2.2 网关鉴权做匹配 总结 前言 在微服务架构中,如何通过网关鉴权结合Redis缓存提升权限控制的效率与性能。首先,文章对比了两种常见的权限…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
