Elastic Search 集群

ES 为什么要集群

  • 高可用。高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。
  • 负载均衡。将流量均衡的分布在不同的节点上,每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。
  • 高性能。将流量分发到不同机器,充分利用多机器多CPU,从串行计算到并行计算提高系统性能。

ES 集群的基本核心概念

Cluster 集群

  • 一个 Elastic Search 集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识。

Node 节点

  • 一个 Elastic Search 实例即一个 Node,一台机器可以有多个实例,正常使用下每个实例应该会部署在不同的机器上。Elastic Search 的配置文件中可以通过 node.master、node.data 来设置节点类型。
  • node.master:表示节点是否具有成为主节点的资格
    • true 代表的是有资格竞选主节点
    • false 代表的是没有资格竞选主节点
  • node.data:表示节点是否存储数据

Node节点组合

  • 主节点+数据节点(master+data)节点即有成为主节点的资格,又存储数据

    • node.master: true
    • node.data: true
  • 数据节点(data)节点没有成为主节点的资格,不参与选举,只会存储数据
    • node.master: false
    • node.data: true
  • 客户端节点(client)不会成为主节点,也不会存储数据,主要是针对海量请求的时候可以进行负载均衡
    • node.master: false
    • node.data: false

分片

每个索引有一个或多个分片,每个分片存储不同的数据。分片可分为主分片(primary shard)和复制分片(replica shard)。复制分片是主分片的拷贝。默认每个主分片有一个复制分片,一个索引的复制分片的数量可以动态地调整,复制分片从不与它的主分片在同一个节点上。

搭建 ES 集群

搭建步骤

  1. 拷贝 elasticsearch-7.2.0 安装包3份,分别命名 elasticsearch-7.2.0-a,elasticsearch-7.2.0-b,elasticsearch-7.2.0-c。
  2. 分别修改 elasticsearch.yml 文件。
  3. 分别启动 a,b,c 三个节点。
  4. 打开浏览器输入:http://localhost:9200/_cat/health?v,如果返回的 node.total 是3,代表集群搭建成功

第一个 yml 文件

#集群名称
cluster.name: my-application

#节点名称
node.name: node-1

#是不是有资格主节点
node.master: true

#是否存储数据
node.data: true

#最大集群节点数
node.max_local_storage_nodes: 3

#网关地址
network.host: 0.0.0.0

#端口
http.port: 9200

#内部节点之间沟通端口
transport.tcp.port: 9300

#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["localhost:9300","localhost:9400","localhost:9500"]

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

#数据和存储路径
#path.data: /Users/louis.chen/Documents/study/search/storage/a/data
#path.logs: /Users/louis.chen/Documents/study/search/storage/a/logs

第一个 yml 文件

第二个 yml 文件

#集群名称
cluster.name: my-application

#节点名称
node.name: node-2

#是不是有资格主节点
node.master: true

#是否存储数据
node.data: true

#最大集群节点数
node.max_local_storage_nodes: 3

#网关地址
network.host: 0.0.0.0

#端口
http.port: 9201

#内部节点之间沟通端口
transport.tcp.port: 9400

#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["localhost:9300","localhost:9400","localhost:9500"]

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

#数据和存储路径
#path.data: /Users/louis.chen/Documents/study/search/storage/a/data
#path.logs: /Users/louis.chen/Documents/study/search/storage/a/logs

第二个 yml 文件

第三个 yml 文件

#集群名称
cluster.name: my-application

#节点名称
node.name: node-3

#是不是有资格主节点
node.master: true

#是否存储数据
node.data: true

#最大集群节点数
node.max_local_storage_nodes: 3

#网关地址
network.host: 0.0.0.0

#端口
http.port: 9202

#内部节点之间沟通端口
transport.tcp.port: 9500

#es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["localhost:9300","localhost:9400","localhost:9500"]

#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-1", "node-2","node-3"]

#数据和存储路径
#path.data: /Users/louis.chen/Documents/study/search/storage/a/data
#path.logs: /Users/louis.chen/Documents/study/search/storage/a/logs

第三个 yml 文件

kibana

  • 打开配置 kibana.yml,添加 elasticsearch.hosts: ["http://localhost:9200","http://localhost:9201","http://localhost:9202"]
  • 启动 kibana,可以看到集群信息

ES 集群健康管理

查看集群的健康状态

http://127.0.0.1:9200/_cat/health?v

  • status:集群的状态,red红表示集群不可用,有故障。yellow黄表示集群不可靠但可用,一般单节点时就是此状态。green正常状态,表示集群一切正常。
  • node.total:节点数,这里是3,表示该集群有三个节点。
  • node.data:数据节点数,存储数据的节点数,这里是3。
  • shards:表示我们把数据分成多少块存储。
  • pri:主分片数,primary shards
  • active_shards_percent:激活的分片百分比,这里可以理解为加载的数据分片数,只有加载所有的分片数,集群才算正常启动,在启动的过程中,如果我们不断刷新这个页面,我们会发现这个百分比会不断加大。

查看集群的索引数

http://127.0.0.1:9200/_cat/indices?v

  • health:索引健康,green为正常,yellow表示索引不可靠(单节点),red索引不可用。与集群健康状态一致。
  • status:状态表明索引是否打开,索引是可以关闭的。
  • index:索引的名称
  • uuid:索引内部分配的名称,索引的唯一表示
  • pri:集群的主分片数量
  • docs.count:这里统计了文档的数量。
  • docs.deleted:这里统计了被删除文档的数量。
  • store.size:索引的存储的总容量
  • pri.store.size:主分片的容量

查看磁盘的分配情况

http://127.0.0.1:9200/_cat/allocation?v

  • shards:该节点的分片数量
  • disk.indices:该节点中所有索引在该磁盘所占的空间。
  • disk.used:该节点已经使用的磁盘容量
  • disk.avail:该节点可以使用的磁盘容量
  • disk.total:该节点的磁盘容量

查看集群的节点信息

http://127.0.0.1:9200/_cat/nodes?v

  • ip:ip地址
  • heap.percent:堆内存使用情况
  • ram.percent:运行内存使用情况
  • cpu:cpu使用情况
  • master:是否是主节点

查看集群的其他信息

http://127.0.0.1:9200/_cat

原文地址:https://www.cnblogs.com/jwen1994/p/12649682.html

时间: 2024-12-29 23:21:13

Elastic Search 集群的相关文章

Elastic search集群新增节点(同一集群,同一 物理机)

一开始,在电脑上同一个集群新增节点(node)怎么试也不成功,官网guide又语焉不详?集群健康值yellow(表示主分片全部可用,部分复制分片不可用).关于集群和多节点,有什么好处呢? 集群和多个节点,可以提高可用性,一个挂了,可从另外一个恢复,主节点挂了,会自动从剩余节点选举出一个主节点,并且当恢复主节点时,会自动拷贝主节点失效期间,新的更新数据:同时可以负载均衡,提高吞吐率(在多台物理机布置多个节点和集群的情况下) 最后,在stackoverflow上找到了答案.国内CSDN和博客园的方法

对Elastic集群配置TLS加密通信及身份验证

1.介绍 官方宣布从6.8和7.1开始,免费提供多项安全功能.其中包括tls加密通信,基于角色访问控制等功能. 可以使用企业CA证书来完成这一步骤,但是一般情况下,我们可以通过elasticsearch自带的elasticsearch-certutil的命令生成证书.然后各节点通过该证书可以进行安全通信. 2. 步骤 2.1 生成证书 搭建好了es集群,先拿第一个节点来操作,进入elasticsearch目录,然后执行以下命令. cd /usr/share/elasticsearch # 使用y

ElasticSearch的基本用法与集群搭建

ElasticSearch的基本用法与集群搭建 一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式支持需要ZooKeeper的支持. 这里有一个详细的ElasticSearch和Solr的对比:http://solr-vs-elasticsearch.com/ 二.基本用法 Elasticsearch集群可以包含多个索引(indices),每一个索

elasticsearch-1.7.1 集群搭建

##elasticsearch-1.7.1 集群搭建redis1:192.168.1.10redis2:192.168.1.11       redis3:192.168.1.12###java安装rpm –ivh  jdk-7u67-linux-x64.rpmvi /root/.bash_profile添加内容JAVA_HOME=/usr/java/jdk1.7.0_67PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JA

Elasticstack 5.1.2 集群日志系统部署及实践

Elasticstack 5.1.2 集群日志系统部署及实践 一.ELK Stack简介 ELK Stack 是Elasticsearch.Logstash.Kibana三个开源软件的组合,在实时数据检索和分析场合,三者通常是配合共用的. 可参考:https://www.elastic.co/products 二.Elasticstack重要组件 Elasticsearch: 准实时索引 Logtash: 收集数据,配置使用 Ruby DSL Kibana 展示数据,查询聚合,生成报表 Kafk

elk集群安装配置详解

#  一:简介 ``` Elasticsearch作为日志的存储和索引平台: Kibana 用来从 Elasticsearch获取数据,进行数据可视化,定制数据报表: Logstash 依靠强大繁多的插件作为日志加工平台: Filebeat 用来放到各个主机中收集指定位置的日志,将收集到日志发送到 Logstash: Log4j 直接与 Logstash 连接,将日志直接 Logstash(当然此处也可以用 Filebeat 收集 tomcat 的日志). ``` ####  port ```

ElasticSearch集群入门

一.下载与安装 Elasticsearch 依赖 java,在安装 ES 之前首先要配好 java,这个默认我们的电 脑已经完成. 首先从 elasticsearch官网下载安装包,我们是 linux 系统,下载 tar 包比较方便.当前版本为2.3.3,下载地址:Elasticsearch 2.3.3下载.下载完成之后解压tar文件: tar -zxvf elasticsearch-2.3.3.tar.gz 二.运行ElasticSearch 启动ElasticSearch命令: ./elas

ELKB5.2.2集群环境部署及优化终极文档

ELKB5.2.2集群环境部署 本人陆陆续续接触了ELK的1.4,2.0,2.4,5.0,5.2版本,可以说前面使用当中一直没有太多感触,最近使用5.2才慢慢有了点感觉,可见认知事务的艰难,本次文档尽量详细点,现在写文档越来越喜欢简洁了,不知道是不是不太好.不扯了看正文(注意这里的配置是优化前配置,正常使用没问题,量大时需要优化). 备注: 本次属于大版本变更,有很多修改,部署重大修改如下: 1,filebeat直接输出kafka,并drop不必要的字段如beat相关的 2,elasticsea

elastic search使用总结

1. elasticsearch安装 官方下载地址:https://www.elastic.co/downloads/elasticsearch 解压文件 elasticsearch-2.4.0.zip 修改配置文件 elasticsearch-2.4.0 cat config/elasticsearch.yml |grep -v "#" cluster.name: rainbow network.host: 127.0.0.1 http.port: 9200 配置说明 cluster