Elasticsearch集群管理
概述
本文主要讲解一下通过 API 管理 Elasticsearch 集群的一些信息。
集群健康值
查看集群健康 API 的简单情况。
|
|
返回结果:
|
|
查看指定索引的健康情况:
|
|
返回结果:
|
|
集群状态
可以查看整个集群的综合状态信息。
|
|
集群统计
注意跟上述 API 有所区别,集群统计信息可以通过 API_cluster/stats,返回两个最基本的信息,一个是索引信息,比如分片的数量、存储大小、内存使用等。另一个是集群节点的信息,比如节点数量、角色、操作系统、JVM 版本、内存使用率、CPU、和插件的安装信息。
|
|
节点信息
集群节点信息接口用于搜索一个或多个集群节点信息。
|
|
集群分片迁移
在 ES 中可以通过集群路由 API_cluster/reroute 来对集群中的分片进行曹组 ,例如可以在集群中把一个分片从一个节点迁移到另一个节点,把未分配的分片可以分配到一个特定的节点上等。
集群节点配置
启动 ES 实例,就会启动至少一个节点,相同集群名的多个节点的连接就组成一个集群,在默认情况下,集群中的每个节点都可以处理 HTTP 请求和集群节点的数据传输。集群中所有的节点都知道集群中其他所有的节点,可以把客户端请求转发到适当的节点。节点分为以下类型:
- 主节点 master:在上一个节点上当 node.master 设置为 true 的时候,他有资格被选作为主节点,控制整个集群。
- 数据节点 data:在一个节点 node.data 设置为 true 的时候,该节点保存数据和执行数据相关操作,如增删改查、搜索或聚合。
- 客户端节点:当一个节点的 node.master 和 node.data 都设置为 false 的时候,既不是主节点也不能称为客户端节点。
- 部落节点:当一个节点配置 tribe.* 的时候,它是一个特殊的客户端,可以连接多个集群,在所有连接的集群上执行搜索和其他操作。
主节点
主节点的主要职责是和集群操作相关的内容,如创建和删除索引,跟踪那些节点是集群的一部分,并决定哪些分片分配给相关节点。稳定的主节点对集群的健康是非常重要的。
索引数据和搜索查询等操作会占用大量 CPU、内存、IO 资源,为确保一个集群的稳定,分离主节点和数据节点是比价好的一个选择。
数据节点
数据节点主要是存储索引数据的节点,主要对文档进行增删改查、聚合操作等。数据节点对 CPU、内存、IO 要求比较高,在优化的时候需要监控数据节点的状态。
节点发现
在 ES 中,节点之间可以进行相互发现,并把相同集群名称的节点统一成一个集群。
主节点选举
在集群中系统会自动通过 ping 来进行选举主节点或者加入主节点,这些都是自动完成的。
故障检测
有两种方式进行故障检测,第一个是由主节点到其他节点的验证,证明它们还活着。另一种是每个节点 ping 主节点验证,当主节点有故障的时候会启动选举过程。