ElasticSearch高可用集群搭建

1.环境准备

本文已三个节点(服务器)为例,准备三台服务器

2.搭建过程

1).三台服务器分别搭建es (ES8+JDK17)

上传安装包和解压

tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz

新建一个用户,安全考虑,elasticsearch默认不允许以root账号运行

创建用户:useradd es_user
设置密码:passwd es_user

修改目录权限

# chmod是更改文件的权限   
# chown是改改文件的属主与属组  
# chgrp只是更改文件的属组。chgrp -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chown -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chmod -R  777 /usr/local/software/elk_test/elasticsearch-8.4.1

修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用

在文件内容最后添加后面两行(切记*不能省略)

vim /etc/security/limits.conf* soft nofile 65536
* hard nofile 65536

修改虚拟内存空间,默认太小

在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vim /etc/sysctl.confvm.max_map_count=262144

修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存

vim config/jvm.options-Xms1g
-Xmx1g

2).搭建集群

节点一

vim config/elasticsearch.ymlcluster.name: xdclass-cluster
node.name: node-1
path.data: /usr/local/software/elk_test/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elk_test/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
cluster.initial_master_nodes: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false

节点二

vim config/elasticsearch.ymlcluster.name: xdclass-cluster
node.name: node-2
path.data: /usr/local/software/elk_test/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elk_test/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
cluster.initial_master_nodes: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false

节点三

vim config/elasticsearch.ymlcluster.name: xdclass-cluster
node.name: node-3
path.data: /usr/local/software/elk_test/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elk_test/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
cluster.initial_master_nodes: ["172.31.101.11:9300","172.31.101.13:9300","172.31.101.12:9300"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false

配置说明

  • discovery.seed_hosts参数:

    • 功能:discovery.seed_hosts参数用于配置集群中用于发现其他节点的主机名或IP地址列表。
    • 作用:每个节点通过这个参数指定其他节点的地址,以便在启动时进行发现和加入集群。
    • 配置:在每个节点的elasticsearch.yml配置文件中设置该参数,指定其他节点的地址,多个地址使用逗号分隔。
  • cluster.initial_master_nodes参数:

    • 功能:cluster.initial_master_nodes参数用于配置初始主节点的名称。

    • 作用:当集群启动时,用于指定初始的主节点,以启动集群的选主过程。

    • 配置:只需在初始启动的几个节点的elasticsearch.yml配置文件中设置该参数,列出节点名称。

注意

cluster.initial_master_nodes参数和discovery.seed_hosts参数之间的设置应该保持一致,

确保集群中的所有节点都能正确发现和加入。

  • 启动ElasticSearch
切换到es_user用户启动, 进入bin目录下启动, &为后台启动,再次提示es消息时 Ctrl + c 跳出./elasticsearch &

常见命令,可以用postman访问(网络安全组记得开发端口)

#查看集群健康情况
http://112.74.167.42:9200/_cluster/health#查看分片情况
http://112.74.167.42:9200/_cat/shards?v=true&pretty#查看节点分布情况
http://112.74.167.42:9200/_cat/nodes?v=true&pretty#查看索引列表
http://112.74.167.42:9200/_cat/indices?v=true&pretty

集群状态说明

green:所有的主分片和副本分片都正常运行。

yellow:所有的主分片都正常运行,但有部分副本分片运行不正常。

red:主分片没能正常运行

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

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

相关文章

【Python-第三方库-pyautogui】随笔

pyautogui(PythonAutoGUI)随笔 常用 pyautogui.position() 【功能】 获取鼠标所在处的坐标; 【实操】 代码01 import pyautoguiprint(type(pyautogui.position())) while True:print("\r" str(pyautogui.position()), end"…

Rust语言GUI库之gtk安装

文章目录 工具链安装管理软件vcpkgvcpkg介绍安装vcpkg 安装gtk遇到的问题Rust其他依赖package-confg 工具链安装管理软件vcpkg vcpkg介绍 在使用C/C编写项目时, 引用第三方库是很麻烦的事, 需要手动下载源码然后编译最后再添加到项目里,配置头文件、lib、dll&…

应用程序映射的 5 个安全优势

现代企业依靠无数的软件应用程序来执行日常运营。这些应用程序相互连接并协同工作以提供所需的服务。了解这些应用程序如何相互交互以及底层基础设施对于任何组织都至关重要。这就是应用程序映射概念的用武之地。 顾名思义,应用程序映射是创建应用程序架构&#xf…

MTK Android P Sensor架构(二)

不过不同的芯片平台,kernel层中的sensor框架是不同的,这里针对的是mt8167s平台。不过这里提醒一下,MTK平台应该从kernel 3.x版本后就不支持温湿度传感器的框架了,不过幸好他们还保留了框架的雏形在,我们需要自行解决一…

Linux mv命令教程:如何高效地移动和重命名文件(附案例详解和注意事项)

Linux mv命令介绍 mv命令是Linux系统中的一个基本命令,全称为move,主要用于移动文件或者目录,也可以用来对文件或者目录进行重命名。 Linux mv命令适用的Linux版本 mv命令在所有的Linux发行版中都是可用的,包括但不限于Ubuntu,…

基于rsync+inotify-tools 同步geo主从节点的artifacts文件

文章目录 1. 背景2. 操作2.1 geo主节点查看仓库的路径2.2 安装 inotify-tools2.3 主从免密2.4 编写同步脚本2.5 同步文件 3. 验证 1. 背景 由于某个repo的主从artifacts目录偏差非常严重(主节点100G,从节点10G),为了保证主从目录数据的一致性&#xff0…

skynet 中 mongo 模块运作的底层原理解析

文章目录 前言总览全流程图涉及模块关系连接数据库函数调用流程图数据库操作函数调用流程图涉及到的代码文件 建立连接SCRAMSASL 操作数据库结语参考链接 前言 这篇文章总结 skynet 中 mongo 的接入流程,代码解析,读完它相信你对 skynet 中的 mongo 调用…

JMeter直连数据库

JMeter直连数据库 使用场景操作步骤 使用场景 用作请求的参数化 登录时需要的用户名,密码可以从数据库中查询获取 用作结果的断言 添加购物车下订单,检查接口返回的订单号,是否与数据库中生成的订单号一致 清理垃圾数据 添加商品后&#xff…

汽车IVI中控开发入门及进阶(十一):ALSA音频

前言 汽车中控也被称为车机、车载多媒体、车载娱乐等,其中音频视频是非常重要的部分,音频比如播放各种格式的音乐文件、播放蓝牙接口的音乐、播放U盘或TF卡中的音频文件,如果有视频文件也可以放出音频,看起来很简单,在windows下音乐播放器很多,直接打开文件就能播放各…

生产派工自动化:MES系统的关键作用

随着制造业的数字化转型和智能化发展,生产派工自动化成为了提高生产效率、降低成本,并实现优质产品生产的关键要素之一。制造执行系统(MES)在派工自动化中发挥着重要作用,通过实时数据采集和智能调度,优化生…

项目一:IIC读写EEPROM AT24C02

回头想了想在工作中调过的EEPROM还挺多的,有M24M02 、M28010 、AT24C02等,今天讲一下AT24C02吧 一、AT24C02简介 1.1 特点 文档已经上传了,需要的同学可以自行下载哈,晚点我会把下载链接附上来。 我大概照着文档翻译了一下&am…

C# Dictionary 利用 ContainsValue 查询指定值是否已经存在

.NET Framework : 4.7.2IDE : Visual Studio Community 2022OS : Windows 10 x64typesetting : Markdownblog : niaoge.blog.csdn.net 简介 本文介绍如何查询Dictionary 中某个值是否已经存在。 ContainsValue 命名空间: System.Collections.Generic 程序集: System.Collect…

排序算法-快速排序

1.快速排序(递归) 快速排序是 Hoare 于 1962 年提出的一种二叉树结构的交换排序方法,其基本思想为: 任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素…

已经写完的论文怎么降低查重率 papergpt

大家好,今天来聊聊已经写完的论文怎么降低查重率,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 已经写完的论文怎么降低查重率 背景介绍 在学术界,论文的查重率是评价论文质量的…

Command ‘npm‘ not found, but can be installed with:sudo apt install npm 解决方案

问题描述 今天在执行 npm install -g npx 报错 Command npm not found, but can be installed with: sudo apt install npm 解决方案 sudo apt-get remove npm sudo apt-get remove nodejs-legacy sudo apt-get remove nodejs sudo rm /usr/bin/node sudo apt-get install …

mysql的ON DELETE CASCADE 和ON DELETE RESTRICT区别

​​ON DELETE CASCADE​​​ 和 ​​ON DELETE RESTRICT​​ 是 MySQL 中两种不同的外键约束级联操作。它们之间的主要区别在于当主表中的记录被删除时,子表中相关记录的处理方式。 ON DELETE CASCADE: 当在主表中删除一条记录时,所有与之相关的子表中…

[Spring源码] 浅析 SpringApplication`的构造方法

文章目录 SpringApplication的构造方法获取 Bean Definition 源推断应用类型添加 ApplicationContext 初始化器添加事件监听器主类推断 SpringApplication的构造方法 Springboot的主启动类为: SpringBootApplication public class BootApplication {public static…

Java 入门第二篇,Java发展史

Java 入门第二篇,Java发展史 一,Java之诞生 Java的诞生可以追溯到20世纪90年代初。以下是Java诞生的背景和过程: 背景:在上世纪80年代和90年代初,计算机领域存在着多样化的硬件和操作系统,开发者需要为不同…

计算机操作系统-第十三天

目录 前言 进程通信(IPC) 进程通信的方法 共享存储 消息传递 直接通信方式 间接通信方式(信箱通信方式) 管道通信 本节思维导图 前言 !!!回归!!! …

SQL注入绕过技术

预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…