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 name node name IP Addr http端口 / 通信端口
cluster-es cluster-1 localhost 9201 / 9700
cluster-es cluster-2 localhost 9202 / 9800
cluster-es cluster-3 localhost 9203 / 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,显示正常了。主节点旁边带有星星。

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

  1. Elasticsearch集群搭建手册及配置详情(基于elasticsearch-8.5.2版本)

    Elasticsearch集群搭建手册及配置详情(基于elasticsearch-8.5.2版本) 0 安装前准备工作 0.1 安装包下载 组件 安装包 下载地址 es elasticsearch-8 ...

  2. Mac下使用ABTestingGateway快速搭建灰度网关

    Mac下使用ABTestingGateway快速搭建灰度网关 ABTestingGateway简介 ABTestingGateway 是新浪开源的一个可以动态设置分流策略的灰度发布系统,工作在7层,基 ...

  3. 搭建高可用的MongoDB集群:MongoDB的配置与副本集

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  4. 1、大数据集群搭建之----jdk安装和zookeeper集群安装

    这里废话不多说,上来就干.(如果配置不成功或遇到问题,可以留言,共同解决问题) 我的百度网盘里面有所有的用到的软件,永久有效无加密. https://pan.baidu.com/s/1pqW6bHxh ...

  5. K8S集群搭建:利用kubeadm构建K8S集群

    master主服务器配置 #--kubernetes-version=v1.14.1指定版本 #--pod-network-cidr=10.244.0.0/16 指定虚拟IP的范围(以10.244开头 ...

  6. mysql集群搭建及性能调优之一(集群搭建)

    本文讲解mysql的集群搭建 文章目录 1. docker安装并启动三台mysql 2. 创建基础库并设置可访问用户 3. 主从配置 3.1 主服务器配置 3.2 从服务器配置 1. docker安装 ...

  7. mac下java 开发环境搭建

    mac配置java开发环境: jdk1.7 +sdk1.7+maven +tomcat   1.先安装jdk ,才能安装sdk . 2 mac中jdk1.7的默认位置:/Library/Java/Ja ...

  8. mac下hadoop环境的搭建以及碰到的坑点

    提示:这里有Exit code: 127 Stack trace: ExitCodeException exitCode=127: 错误的解决的方法,在文章最后面 一.首先要配置好java环境 下载地 ...

  9. mac下hadoop环境的搭建

    提示:这里有Exit code: 127 Stack trace: ExitCodeException exitCode=127: 错误的解决的方法,在文章最后面 一.首先要配置好java环境  下载 ...

最新文章

  1. ClearTextBox.Text
  2. 解决:RabbitMQ 连接报错:amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
  3. mysql与citespace_CiteSpace与MySQL数据库的连接-科学网—博客.PDF
  4. java securerandom使用_Java中的SecureRandom nextBytes()方法
  5. 计算机不属于发明保护客体,如何判断两种类型的计算机程序发明能否成为专利保护客体?...
  6. springmvc错误java.lang.IllegalArgumentException
  7. linux下播放wma格式,Ubuntu 20.04中使Rhythmbox支持WMA格式文件播放
  8. 美图秀秀5 android,美图秀秀Android版v1.4.5上线 优化拼图排版秀北爱
  9. 雷云驱动2从云服务器,雷蛇云驱动 2 for mac(Mac雷蛇鼠标驱动设置工具)V1.88 官方版...
  10. Keil5下载烧录错误常见问题
  11. 数据版吐槽大会: 国产综艺节目年终盘点
  12. ALPS语言学校(西雅图)|ALPS Language School (Seattle)
  13. Python使用在线接口SDK模块(baidu-aip)实现人脸识别
  14. 用Python Matplotlib实现可视化混沌系统
  15. No view found for id 0x7f05003c (*) for fragment PlaceholderFragment
  16. Python画了一朵花
  17. pandas 如何删掉第一行_pandas删除指定行详解
  18. 步进电机S(SigMoid)曲线加减速【查表法】
  19. queue与topic的区别
  20. 论文查重字数和重复率有什么关系吗?

热门文章

  1. 【编译原理】-- 第一章(翻译程序、编译程序、汇编程序、解释程序、编译过程概述)
  2. DNS协议与DNS服务器搭建(bind)
  3. Java实验项目二——打印某年某月日历
  4. 北大联合腾讯发布泛在操作系统研究报告:泛在操作系统成产业趋势,研究与实践进入加速期...
  5. Linux: strace总结
  6. Rust 不同方式创建Arc对象性能对比
  7. [原创] 我的项目管理之路--7、亲密接触六希格码(二)
  8. 简单步骤,使用 Android studio 实现保存 QQ 账号密码,和简易 QQ 用户登录界面
  9. android+touch声音大小,Android 获取/设置按键音(Touch Sounds)
  10. 什么是epub格式,windows上有什么好用的epub阅读器