mac下ElasticSearch 集群搭建,使用Kibana配置和管理集群

news2024/11/24 3:39:45

Elasticsearch如果做集群的话Master节点至少三台服务器或者三个Master实例加入相同集群,三个Master节点最多只能故障一台Master节点,如果故障两个Master节点,Elasticsearch将无法组成集群.会报错,Kibana也无法启动,因为Kibana无法获取集群中的节点信息。

现在在mac下安装三个ES实例,搭建伪集群。
 

一、安装流程

1.去官网下载合适的安装包,我是M1芯片的mac,下载的elasticsearch-7.17.0-darwin-aarch64版本,解压elasticsearch-7.17.0安装包3个,分别命名:

elasticsearch-7.17.0-cluster1

elasticsearch-7.17.0-cluster2

elasticsearch-7.17.0-cluster3

2.然后修改elasticsearch.yml文件。

3.然后启动启动cluster1、cluster2、cluster3三个节点。

打开浏览器输⼊:http://localhost:9201/_cat/health?v ,如果返回的node.total是3,代表集 群搭建成功

在此,需要我们特别注意的是,像本文这样单服务器多节点( 3 个节点)的情况,仅供测试使用,集群环境如下:

cluster namenode nameIP Addrhttp端口 / 通信端口
cluster-escluster-1localhost9201 / 9700
cluster-escluster-2localhost9202 / 9800
cluster-escluster-3localhost9203 / 9900

二、安装步骤

1.下载解压后拷贝3个份。

elasticsearch-7.17.0-cluster1

elasticsearch-7.17.0-cluster2

elasticsearch-7.17.0-cluster3

 2.新建logs,datas文件

3.修改每个节点下的elasticsearch.yml配置文件

vim /elasticsearch-7.17.0-cluster1/config/elasticsearch.yml 
vim /elasticsearch-7.17.0-cluster2/config/elasticsearch.yml 
vim /elasticsearch-7.17.0-cluster3/config/elasticsearch.yml 

3.1 下面是elasticsearch-7.17.0-cluster1配置文件

#集群名称
cluster.name: cluster-es
#节点名称
node.name: cluster-1 
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3 
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9700
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"] 
#数据和存储路径
path.data: /改成你的路径/elasticsearch-7.17.0-cluster1/datas
path.logs: /改成你的路径/elasticsearch-7.17.0-cluster1/logs

 3.2 下面是elasticsearch-7.17.0-cluster2配置文件

#集群名称
cluster.name: cluster-es
#节点名称
node.name: cluster-2 
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3 
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9800
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"] 
#数据和存储路径
path.data: /改成你的路径/elasticsearch-7.17.0-cluster2/datas
path.logs: /改成你的路径/elasticsearch-7.17.0-cluster2/logs

 3.1 下面是elasticsearch-7.17.0-cluster3配置文件

#集群名称
cluster.name: cluster-es
#节点名称
node.name: cluster-3 
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 3 
#ip地址
network.host: 0.0.0.0
#端口
http.port: 9203
#内部节点之间沟通端口
transport.tcp.port: 9900
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["localhost:9700","localhost:9800","localhost:9900"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["cluster-1", "cluster-2","cluster-3"] 
#数据和存储路径
path.data: /改成你的路径/elasticsearch-7.17.0-cluster3/datas
path.logs: /改成你的路径/elasticsearch-7.17.0-cluster3/logs

4.设置ES的JVM占用内存参数,防止内存不足错误

vim elasticsearch-7.17.0-cluster1/config/jvm.options
vim elasticsearch-7.17.0-cluster2/config/jvm.options
vim elasticsearch-7.17.0-cluster3/config/jvm.options

默认情况下,ES启动JVM最小内存1G,最大内存1G

-xms:最小内存
-xmx:最大内存

修改为256m

-Xms256m
-Xmx256m

5.启动并查看节点

5.1三个节点下分别启动

./bin/elasticsearch

5.2查看节点是否启动成功

http://localhost:9201/_cat/health?v
http://localhost:9202/_cat/health?v
http://localhost:9203/_cat/health?v

green状态显示成功

健康状况结果解释:

cluster 集群名称
status 集群状态 
	green代表健康;
	yellow代表分配了所有主分片,但至少缺少一个副本,此时集群数据仍旧完整;
	red 代表部分主分片不可用,可能已经丢失数据。
node.total代表在线的节点总数量
node.data代表在线的数据节点的数量
shards 存活的分片数量
pri 存活的主分片数量 正常情况下 shards的数量是pri的两倍。
relo迁移中的分片数量,正常情况为 0
init 初始化中的分片数量 正常情况为 0
unassign未分配的分片 正常情况为 0
pending_tasks准备中的任务,任务指迁移分片等 正常情况为 0
max_task_wait_time任务最长等待时间
active_shards_percent正常分片百分比 正常情况为 100%

三、使用Kibana配置和管理集群

1.集群配置

官网下载对应的Kibana版本kibana-7.17.0-darwin-aarch64,解压后修改配置文件

vim  kibana-7.17.0-cluster/config/kibana.yml

加入下面配置

elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]

启动Kibana

sh ./bin/kibana

2.集群管理

打开http://localhost:5601/,点开 Stack Monitoring 集群监控

 显示Green,三个节点运行正常。

3.遇到问题 

Kibana的Stack Monitoring显示节点offline

 1.配置kibana.yml

首先要参考的是官网给出的详细配置说明https://www.elastic.co/guide/en/kibana/current/monitoring-data.html,官网中的这两个地方我都进行补充了。大家可以根据自己的需求看下有没有什么遗漏的配置

vim kibana-7.17.0-cluster/config/kibana.yml
monitoring.ui.elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]
monitoring.ui.enabled: true

2.配置3个节点的elasticsearch.yml

vim elasticsearch-7.17.0-cluster1/config/elasticsearch.yml
vim elasticsearch-7.17.0-cluster2/config/elasticsearch.yml
vim elasticsearch-7.17.0-cluster3/config/elasticsearch.yml

加上

xpack.monitoring.collection.enabled: true

3.最后重新各节点和kibana,显示正常了。主节点旁边带有星星。

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

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

相关文章

Python入门(未完待续。。。)

认识python 解释型(写完直接运行)、面向对象的高级编程语言;开源免费、支持交互式、可跨平台移植的脚本语言;优点:开源、易于维护、可移植、简单优雅、功能强大、可扩展、可移植;缺点:解释型→运…

【IoT】无线温度采集系统设计

随着工业和农业的发展,无线采集系统的应用范围变得更加广泛,对无线数据采集系统的测量参数也越来越多,精准度也越来越高。目前国内外有很多的无线温度采集系统,但很多的无线温度采集系统存在很多问题,如采集速度和稳定…

docker网络基

本文简单介绍下,容器之间的网络访问、容器与宿主机之间的网络访问、宿主机上有哪些网络接口。lolocal的简写,本地回环地址,127.0.0.1,它代表本地虚拟设备接口,默认被看作是永远不会宕掉的接口eth0ethernet的简写&#…

OraDump导出套件

OraDump导出套件 只需单击几下即可将数据从Oracle转储文件导出到流行的数据库和格式。 OraDump Export Kit是一个将数据从Oracle转储文件导出到流行数据库和格式的软件包。该产品具有高性能,因为它直接读取转储文件。命令行支持允许编写脚本、自动化和安排转换过程。…

结构建模设计——Solidworks软件之装配体操作基本总结三(高级配合、机械配合、快捷菜单功能)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

纹理开启Mipmap导致压缩失败的问题

1)纹理开启Mipmap导致压缩失败的问题 ​2)使用TextMeshPro能否避免使用Resources文件夹 3)用透视摄像机去分层管理UI的优势和好处 4)Houdini中切线空间向量怎么在Unity Shader还原出原向量 这是第325篇UWA技术知识分享的推送&…

多项新规重磅发布,微信视频号近期需要关注这几点

随着功能的完善和内容生态的丰富,视频号逐渐放慢产品更新频率,将重点放到商家准入标准、创作者扶持计划上来,本期我们将更侧重解读平台新规,帮助大家了解行业动向,把握最新趋势。01 视频号小店结算规则修订 取消48小时…

java使用tesseract-ocr进行文字识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、tesseract-ocr是什么?二、使用步骤1.下载exe安装包2.安装3.使用3.设置全局path二、java如何进行调用1.引入依赖2.demo使用3.环境变量配置前言 公…

【Java】Spring更简单的读取和存储

文章目录Spring更简单的读取和存储对象1. 存储Bean对象1.1 前置工作:配置扫描路径1.2 添加注解存储Bean对象1.2.1 Controller(控制器存储)1.2.2 Service(服务存储)1.2.3 Repository(仓库存储)1.2.4 Component(组件存储)1.2.5 Configuration1.3 为什么要这么多类注解…

筑基七层 —— 数据在内存中的存储?拿来吧你

目录 零:移步 一.修炼必备 二.问题思考 三.整型在内存中的存储 三.大端字节序和小端字节序 四.浮点数在内存中的存储 零:移步 CSDN由于我的排版不怎么好看,我的有道云笔记相当的美观,请移步至有道云笔记 一.修炼必备 1.入门…

web客户端-websocket

1、websocket简介 WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手&#xff0c…

一文教你把ChatGPT变成MySQL数据库,颠覆你的认知

ChatGPT是当前最热门的产品了,很多人已经在用ChatGPT问答、写文章、编程、做题甚至是通过了各种考试。今天我用几个步骤来带着大家体验如何把ChatGPT变成MySQL数据库。 首先,我们需要创建一个数据库,让chatgpt把自己当做一个数据库,可以给它一个定义: 你来充当一个mysql数…

自定义复杂图片水印

我的社交能力还不如5岁儿童和狗。 文章目录前言一、主要工具类总结前言 之前写过一些简单的图片压缩和图片加水印:JAVA实现图片质量压缩和加水印 本次主要是针对图片加水印进行一个升级,图片水印自定义,自适应大小。 来,先看几…

JS语法让人困惑的点 “==与===”

在JS中有很多神奇的语法,非常让人困惑,我们就先一一道来,相信你在开发中或多或少都踩过这些坑,或者让人无法理解。 今天我们就来说下【】和【】 这题对于很多没有系统学过前端开发的技术人员来说,算个重点&#xff0c…

LLFlow沦为和代码解读

LLFlow沦为和代码解读 1.测试时代码的运行位置 sr:什么意思 sr 和 z 这里又将模型设置为了训练模式 所以下面这部分代码应该是测试时运行的所有代码 这个就是测试时使用的网络模型框架 下面应该就是self.netG的网络模型框架 但是这个z的网络模型框架代码还不…

前端基础之HTML扫盲

文章目录一. 第一个HTML程序1. 创建一个HTML文件并运行2. HTML的基本结构二. HTML常见标签1. 注释标签2. 标题标签3. 段落标签4. 换行标签5. 格式化标签6. 图片标签7. 超链接标签8. 表格标签9. 列表标签10. 表单标签10.1 input标签10.2 select标签10.3 textarea标签11. 无语义标…

Outlook账号被封?别慌,一步步教你怎么申诉

相信很多兄弟们使用Outlook不止是为了注册第三方平台,很多时候还会用来发送一些营销广告。但是广告邮件发多了很容易被官方检测到并查封。龙哥考虑到这个问题,就干脆给兄弟们也出一份Outlook的申诉教程,保证大家都从注册、养号、防关联到解封…

DataGear 使用数据集计算属性功能制作数据可视化图表

DataGear 在4.5.0版本新增了数据集计算属性特性,支持在定义数据集时对原始数据进行二次计算处理。 利用这一特性,可以更加方便灵活地制作数据可视化图表。 本文以某公司近两年季度销售额Excel为例,介绍如何基于数据集计算属性功能制作数据可…

Vue跨级通信(重点)

当不使用Vuex的前提下,子孙传递就得使用另外一种办法:provide 和 inject 总结:provide / inject 类似于消息的订阅和发布。- inject接收数据。- provide提供或发送数据,(1)provide(name&#xf…

Dubbo性能调优参数以及原理

Dubbo作为一个服务治理框架,功能相对来说比较完善,性能也挺不错。但很多同学在使用dubbo的时候,只是简单的参考官方说明进行配置和应用,并没有过多的去思考一些关键参数的意义,最终做出来的效果总是差强人意,接下来我们…