elasticsearch8.15 高可用集群搭建(含认证Kibana)

文章目录

  • 1.资源配置
  • 2.系统参数优化
  • 3.JDK17安装
  • 4.下载&安装ES 8.15
  • 5.生成ES的证书(用于ES节点之间进行安全数据传输)
  • 6.修改ES 相关配置文件
  • 7.创建es用户并启动
  • 8.配置ES的账号和密码(用于ES服务端和客户端)
  • 9.下载和安装Kibana
  • 10.编辑Kibana配置文件
  • 11.启动Kiabana
  • 12.访问Kiaban
  • 13.通过Kibana验证ES集群

1.资源配置

主机名称IPcpu内存es角色es集群名称es节点名称
es-1192.168.25.311.5G1master、dataes-clusternode-1
es-2192.168.25.321.5G1master、dataes-clusternode-2
es-3192.168.25.331.5G1master、dataes-clusternode-3

注:默认每个节点都是协调节点,故而不用特定当前节点为协调节点

ES角色说明:

  1. 主节点(Master Node)
    活跃主节点(active master node):集群中只允许有一个活跃的主节点,负责轻量级集群范围的操作,例如创建或删除索引、跟踪集群成员以及决定分片的分配。拥有一个稳定的主节点对于集群健康很重要。(也就是如果你配置了多个主节点,实际活跃的主节点只有一个,其他为候选主节点)
  2. 数据节点(Data Node)
    数据节点主要负责数据的存储和处理,包括数据的增删改查、搜索和聚合等操作。这些操作是I/O密集型、内存密集型和CPU密集型的,因此监控这些资源并在它们过载时添加更多数据节点非常重要。
  3. 协调节点(Coordinating Node)
    协调节点主要负责协调客户端的请求,将接收到的请求分发给合适的节点,并把结果汇集到一起返回给客户端。每个节点都默认起到了协调节点的职责。(默认每个节点都是协调节点,故而不用特定当前节点为协调节点)

2.系统参数优化

注:所有ES节点都需要执行

# 修改系统参数
cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
EOF

#用于限制一个进程可以拥有的最大内存映射区域数量。
echo "vm.max_map_count=655360" >> /etc/sysctl.conf

#让配置生效
sysctl -p

#

soft nofile 65536:表示软性限制下,一个进程最多能打开的文件描述符(或句柄)数量为65536。软性限制是一个警告阈值,当达到或超过这个限制时,系统会给出警告,但进程仍然可以继续运行(取决于系统配置和策略)。
hard nofile 131072:表示硬性限制下,一个进程最多能打开的文件描述符数量为131072。硬性限制是一个严格的阈值,当达到或超过这个限制时,系统会拒绝进程打开更多的文件,并可能导致进程出错。
soft nproc 2048:表示软性限制下,一个用户最多能创建的进程数量为2048。同样,这是一个警告阈值。
hard nproc 4096:表示硬性限制下,一个用户最多能创建的进程数量为4096。这是一个严格的阈值,当达到或超过这个限制时,系统会拒绝用户创建更多的进程。

3.JDK17安装

注:所有ES节点都需要执行
JDK17 下载地址:https://download.oracle.com/java/17/archive/jdk-17.0.1_linux-x64_bin.tar.gz

下载后上传至服务器。

#创建存放软件的目录
mkdir /opt/software

# 解压jdk到指定目录
tar -zxvf jdk-17.0.1_linux-x64_bin.tar.gz -C /opt/software/

#添加JDK环境变量配置
cat >>  /etc/profile << 'EOF'
export JAVA_HOME=/opt/software/jdk-17.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
EOF

#让配置生效
source /etc/profile

#查看jdk17是否安装成功
java -version

4.下载&安装ES 8.15

ES8.15 下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-8-15-0
在这里插入图片描述
下载后将压缩包上传至服务器。

#将ES解压至特定目录
tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz -C /opt/software/

#切到es目录
cd /opt/software/elasticsearch-8.15.0/

5.生成ES的证书(用于ES节点之间进行安全数据传输)

注:其中一个ES节点执行,生成证书后拷贝到其他服务器的ES节点上。

ES证书工具类用法说明:

[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil --help
Simplifies certificate creation for use with the Elastic Stack

Commands
--------
csr - generate certificate signing requests   
cert - generate X.509 certificates and keys
ca - generate a new local certificate authority
http - generate a new certificate (or certificate request) for the Elasticsearch HTTP interface

生成CA证书和节点证书

#生成CA根证书(注:执行命令后会提示你输入密码之类的,一直回车即可)
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil ca

#生成节点证书并指定CA根证书(注:执行命令后会提示你输入密码之类的,一直回车即可)
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

将证书移动到ES的config目录或config子目录之下!!!(不然后续ES会启动报错)

[root@es8-1 elasticsearch-8.15.0]# mkdir /opt/software/elasticsearch-8.15.0/config/cert
[root@es8-1 elasticsearch-8.15.0]# mv elastic-stack-ca.p12 ./config/cert/
[root@es8-1 elasticsearch-8.15.0]# mv elastic-certificates.p12 ./config/cert/

注1:执行生成证书命令后会提示你输入密码之类的,一直回车即可
注2:生成证书后,看到当前目录下多了两个证书文件,elastic-stack-ca.p12(CA根证书)、elastic-certificates.p12(节点证书)
注3:在其中一个es节点中生成好证书后,将证书下载并上传到其他几台ES服务器上的es的配置目录下。
“注4”:一定要把生成的SSL证书放到ES的config目录之下,不然后续启动会报错!!

6.修改ES 相关配置文件

注:所有ES节点都需要执行

修改jvm.options文件

#编辑jvm文件,修改jvm的堆大小(根据实际情况来)
[root@es8-1 elasticsearch-8.15.0]# vim config/jvm.options
-Xms512m
-Xmx512m

修改elasticsearch.yml文件

[root@es8-1 elasticsearch-8.15.0]# vim config/elasticsearch.yml

主要修改的参数如下:

#集群名称
cluster.name: es-cluster
#节点名称(集群中不同实例的节点名称要求唯一)
node.name: node-1
#节点角色注意至少有两个具有选举master资格的节点
node.roles: [master,data]
#es的数据目录
path.data: /opt/software/elasticsearch-8.15.0/data
#es的日志目录
path.logs: /opt/software/elasticsearch-8.15.0/logs
#es节点绑定的网卡。0.0.0.0即绑定所有网卡
network.host: 0.0.0.0
#http端口(es服务端和客户端的通讯端口)
http.port: 9200
#用于指定集群自动发现所需的初始主机节点列表(不要求一定是主节点)。这些主机节点用于引导新加入的节点发现和加入集群。
discovery.seed_hosts: [“192.168.25.31:9300”, “192.168.25.32:9300”, “192.168.25.33:9300”]
#用于指定集群的初始主节点列表。这些节点在集群启动时负责选举出主节点,并承担集群的管理和协调工作。
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]
#是否支持模糊方式(如_all 或 *)删除索引(不要开启,怕误删风险)
action.destructive_requires_name: false
#跨域配置。避免前端网站访问es出现跨域
http.cors.enabled: true
http.cors.allow-origin: “*”
#证书配置
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: /opt/software/elasticsearch-8.15.0/config/cert/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /opt/software/elasticsearch-8.15.0/config/cert/elastic-certificates.p12

注1:有些参数是配置文件上没有的,没有的就在配置文件上补上
注2:上面用的9300端口是ES实例内部之间进行通讯的TCP端口
注3:不同ES节点修改的内容基本一样,除了node.name,其它都一样

7.创建es用户并启动

注:所有ES节点都需要执行

由于es不支持root用户启动,故而需要添加一个普通用户来启动es

# 创建普通用户用于es
useradd -s /bin/bash elastic

#将es相关目录授权给es用户
chown -R elastic:elastic /opt/software/elasticsearch-8.15.0

:需要把es所有相关目录都授权给elastic用户,尤其是 数据目录和日志目录放在其他路径下的,都要注意下,否则可能会因为无权限而导致启动失败。


自定义Systemctl来控制ES的启停:

#自定义sytemctl来控制ES的启停
cat > /etc/systemd/system/elasticsearch.service << 'EOF'
[Unit]
Description=Elastic Search
Documentation=https://www.elastic.co/docs
After=network.target

[Service]
Type=forking
#运行elasticsearch使用的用户	
User=elastic
Group=elastic
ExecStart=/opt/software/elasticsearch-8.15.0/bin/elasticsearch -d
Restart=always
#注:启动超时时间需要设长一点。因为我1核cpu启动需要很久,如果超时时间短,会导致启动超时,然后又会触发systemctl 进行es服务重启,导致es永远都没有启动成功。
TimeoutStartSec=600s
RestartSec=650s
#设置进程的系统参数
LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

EOF

#让配置生效
systemctl daemon-reload

启动ES

#启动es
systemctl start elasticsearch
#开机自启动
systemctl enable elasticsearch

8.配置ES的账号和密码(用于ES服务端和客户端)

注:集群中的其中一个ES节点进行即可

可以看到在访问的时候要求我们输入账号和密码。故而我们需要配置ES的用户和密码。
在这里插入图片描述


ES给我们内置了很多不同业务场景使用的账号,故而可以通过命令给这些账号进行密码设置,如下所示:

[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-setup-passwords interactive
warning: ignoring JAVA_HOME=/opt/software/jdk-17.0.1; using bundled JDK
******************************************************************************
Note: The 'elasticsearch-setup-passwords' tool has been deprecated. This       command will be removed in a future release.
******************************************************************************

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y

# 下面内置的账号中,你可以根据你的需求设置对应的密码
Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana_system]: 
Reenter password for [kibana_system]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
[root@es8-1 elasticsearch-8.15.0]# 

密码设置完毕之后,把上一步设置好的账号(用elastic账号)和密码输入进去,然后就可以登陆成功了,登陆成功后的界面如下所示:

在这里插入图片描述

9.下载和安装Kibana

注:其中一个ES节点执行 或者 其他服务器上执行都可以

Kibana下载地址:https://www.elastic.co/downloads/past-releases/kibana-8-15-0

#解压并安装到指定目录
tar -zxvf kibana-8.15.0-linux-x86_64.tar.gz -C /opt/software/
cd /opt/software/kibana-8.15.0/

10.编辑Kibana配置文件

vim /opt/software/kibana-8.15.0/config/kibana.yml

#绑定所有网卡(让外部能访问到)
server.host: “0.0.0.0”
#指定es集群的地址
elasticsearch.hosts: [“http://192.168.25.31:9200”,“http://192.168.25.32:9200”,“http://192.168.25.33:9200”]
#指定kibana连接es使用的账号(kibana_system)和密码。该密码上文设置过了
elasticsearch.username: “kibana_system”
elasticsearch.password: “123456”
#设置网站文字为中文
i18n.locale: “zh-CN”
#指定kibana日志输出格式和输出路径

logging.appenders.default:
  type: rolling-file
  fileName: /opt/software/kibana-8.15.0/logs/kibana.log
  policy:
    type: size-limit
    size: 256mb
  strategy:
    type: numeric
    max: 2
  layout:
    type: pattern
    pattern: "[%date][%level][%logger] %message"

11.启动Kiabana

kibana安装目录授权给elastic用户

chown -R elastic:elastic /opt/software/kibana-8.15.0/

自定义Systemctl来控制Kibana的启停:

#自定义sytemctl来控制Kibana的启停
cat > /etc/systemd/system/kibana.service << 'EOF'
[Unit]
Description=Kibana
Documentation=https://www.elastic.co/docs
After=network.target

[Service]
#运行Kibana使用的用户	
User=elastic
Group=elastic
ExecStart=/opt/software/kibana-8.15.0/bin/kibana

[Install]
WantedBy=multi-user.target

EOF

#让配置生效
systemctl daemon-reload

启动kibana

#启动kibana
systemctl start kibana
#开机自启动
systemctl enable kibana

:可以通过上面配置的日志路径找到对应日志文件来查看kibana是否启动成功。

12.访问Kiaban

访问地址:http://Kibana所在服务器IP:5601/。
我这里对应的地址是:http://192.168.25.31:5601/

网站进入登陆界面后,通过elastic账号进行登陆。
在这里插入图片描述
登陆成功后:
在这里插入图片描述

13.通过Kibana验证ES集群

在这里插入图片描述


通过“菜单”-“开发工具”-“控制台” 来执行我们的ES客户端命令。

执行集群查看命令

GET /_cluster/health

返回结果如下:

{
  "cluster_name": "es-cluster",		# 集群名称
  "status": "green",		#集群状态,绿色代表健康
  "timed_out": false,
  "number_of_nodes": 3,   #三个集群节点
  "number_of_data_nodes": 3,   #三个集群数据节点
  "active_primary_shards": 31,
  "active_shards": 62,
  "relocating_shards": 0,
  "initializing_shards": 0,
  "unassigned_shards": 0,
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks": 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 100
}

在这里插入图片描述

至此,ES集群的搭建大功告成~~~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB中的IIR滤波器设计

在数字信号处理中&#xff0c;滤波器是消除噪声、提取特征或调整信号频率的核心工具。其中&#xff0c;无限脉冲响应&#xff08;IIR&#xff09;滤波器因其低阶数实现陡峭滚降的特性&#xff0c;被广泛应用于音频处理、通信系统和生物医学工程等领域。借助MATLAB强大的工具箱&…

数据结构:优先级队列—堆

一、优先级队列 1、优先级队列概念 优先级队列&#xff0c;听名字我们就知道他是一种队列&#xff0c;队列在前面我们已经学习过了&#xff0c;它是一种先进先出的数据结构&#xff0c;但是在特殊的情况下&#xff0c;我们我们队列中元素是带有一定优先级的&#xff0c;它需要…

北大:三阶段学习优化多模态推理问答

&#x1f4d6;标题&#xff1a;ReasVQA: Advancing VideoQA with Imperfect Reasoning Process &#x1f310;来源&#xff1a;arXiv, 2501.13536 &#x1f31f;摘要 &#x1f538;视频问答&#xff08;VideoQA&#xff09;是一项具有挑战性的任务&#xff0c;需要理解视频中…

从零开始:用Qt开发一个功能强大的文本编辑器——WPS项目全解析

文章目录 引言项目功能介绍1. **文件操作**2. **文本编辑功能**3. **撤销与重做**4. **剪切、复制与粘贴**5. **文本查找与替换**6. **打印功能**7. **打印预览**8. **设置字体颜色**9. **设置字号**10. **设置字体**11. **左对齐**12. **右对齐**13. **居中对齐**14. **两侧对…

Jason配置环境变量

jason官网 https://jason-lang.github.io/ https://github.com/jason-lang/jason/releases 步骤 安装 Java 21 或更高版本 安装 Visual Studio Code 根据操作系统&#xff0c;请按照以下具体步骤操作 视窗 下载 Jason 的最新版本&#xff0c;选择“jason-bin-3.3.0.zip”…

机器学习--概览

一、机器学习基础概念 1. 定义 机器学习&#xff08;Machine Learning, ML&#xff09;&#xff1a;通过算法让计算机从数据中自动学习规律&#xff0c;并利用学习到的模型进行预测或决策&#xff0c;而无需显式编程。 2. 与编程的区别 传统编程机器学习输入&#xff1a;规…

如何使用SliverGrid组件

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverList组件相关的内容&#xff0c;本章回中将介绍SliverGrid组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverGrid组件是一种网格类组件&#xff0c;主要用来…

大模型培训讲师老师叶梓分享:DeepSeek多模态大模型janus初探

以下视频内容为叶梓分享DeepSeek多模态大模型janus的部署&#xff0c;并验证其实际效果&#xff0c;包括图生文和文生图两部分。 叶梓老师人工智能培训分享DeepSeek多模态大模型janus初探 DeepSeek 的多模态大模型 Janus 是一款强大的 AI 模型&#xff0c;专注于图像和文本的多…

一文掌握ADB的安装及使用

文章目录 一、什么是ADB&#xff1f;二、 安装ADB2.1 下载ADB2.2 配置环境变量 三、连接Android设备四、 常用ADB命令五、ADB高级功能5.1 屏幕截图和录制5.2 模拟按键输入5.3 文件管理5.4 系统设置管理5.5 系统操作指令5.6 日志操作指令5.7 APK操作指令5.8 设备重启和恢复 六、…

【机器学习与数据挖掘实战】案例11:基于灰色预测和SVR的企业所得税预测分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…

bat脚本实现自动化漏洞挖掘

bat脚本 BAT脚本是一种批处理文件&#xff0c;可以在Windows操作系统中自动执行一系列命令。它们可以简化许多日常任务&#xff0c;如文件操作、系统配置等。 bat脚本执行命令 echo off#下面写要执行的命令 httpx 自动存活探测 echo off httpx.exe -l url.txt -o 0.txt nu…

Kafka下载

一、Kafka下载 下载地址&#xff1a;https://kafka.apache.org/downloads 二、Kafka安装 因为选择下载的是 .zip 文件&#xff0c;直接跳过安装&#xff0c;一步到位。 选择在任一磁盘创建空文件夹&#xff08;不要使用中文路径&#xff09;&#xff0c;解压之后把文件夹内容…

学习日记-250202

现在开始要继续写我的日记了......&#xff08;也可以当作笔记吧&#xff09; 一.论文 Prompt Transfer for Dual-Aspect Cross Domain Cognitive Diagnosis 主要内容&#xff1a; 主要是加入prompt提示&#xff0c; 为重叠实体设计个性化的提示&#xff0c;为非重叠实体设计共…

【人工智能学习笔记 一】 AI分层架构、基本概念分类与产品技术架构

新的一年2025要对AI以及LLM有个强化的学习&#xff0c;所以第一篇先对整体有个大概的认知&#xff0c;一直分不清LLM和AI的关系&#xff0c;在整个体系里的位置&#xff0c;以及AIGC是什么东西&#xff0c;AI AGENT类似豆包等和大语言模型的具体关系是什么&#xff0c;整个AI的…

git多人协作

目录 一、项目克隆 二、 1、进入克隆仓库设置 2、协作处理 3、冲突处理 4、多人协作分支的推送拉取删除 1、分支推送&#xff08;2种&#xff09; 2、远程分支拉取&#xff08;2种&#xff09; 3、远程分支删除 一、项目克隆 git clone 画船听雨眠/test1 (自定义的名…

线性数据结构:单向链表

放弃眼高手低&#xff0c;你真正投入学习&#xff0c;会因为找到一个新方法产生成就感&#xff0c;学习不仅是片面的记单词、学高数......只要是提升自己的过程&#xff0c;探索到了未知&#xff0c;就是学习。 目录 一.链表的理解 二.链表的分类&#xff08;重点理解&#xf…

linux下ollama更换模型路径

Linux下更换Ollama模型下载路径指南   在使用Ollama进行AI模型管理时&#xff0c;有时需要根据实际需求更改模型文件的存储路径。本文将详细介绍如何在Linux系统中更改Ollama模型的下载路径。 一、关闭Ollama服务   在更改模型路径之前&#xff0c;需要先停止Ollama服务。…

影视文件大数据高速分发方案

在当今的数字时代&#xff0c;影视行业的内容创作和传播方式经历了翻天覆地的变化。随着4K、8K高清视频的普及&#xff0c;以及虚拟现实(VR)和增强现实(AR)技术的发展&#xff0c;影视文件的数据量正以前所未有的速度增长。这就要求行业内的参与者必须拥有高效的大数据传输解决…

【AI】探索自然语言处理(NLP):从基础到前沿技术及代码实践

Hi &#xff01; 云边有个稻草人-CSDN博客 必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。 目录 引言 1. 什么是自然语言处理&#xff08;NLP&#xff09;&#xff1f; 2. NLP的基础技术 2.1 词袋模型&#xff08;Bag-of-Words&#xff0c;BoW&#xff…

HTMLCSS :下雪了

这段代码创建了一个动态的雪花飘落加载动画&#xff0c;通过 CSS 技术实现了雪花的下落和消失效果&#xff0c;为页面添加了视觉吸引力和动态感。 大家复制代码时&#xff0c;可能会因格式转换出现错乱&#xff0c;导致样式失效。建议先少量复制代码进行测试&#xff0c;若未能…