es的健康检查


ES集群健康状态API

(1)安装jq工具 yum -y install epel-release yum -y install jq

(2)测试取数据 curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .status curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .active_shards_percent_as_number

相关参数说明:
    cluster_name
        集群的名称
status
    集群的健康状态,基于其主分片和副本分片的状态。
    ES集群有以下三种状态:
        green
            所有分片都已分配。
        yellow
            所有主分片都已分配,但一个或多个副本分片未分配。
            如果集群中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用。
        red
            一个或多个主分片未分配,因此某些数据不可用。这可能会在集群启动期间短暂发生,因为分配了主分片。

timed_out
    是否在参数false指定的时间段内返回响应(默认情况下30秒)。

number_of_nodes
    集群内的节点数。

number_of_data_nodes
    作为专用数据节点的节点数。

active_primary_shards
    可用主分片的数量。

active_shards
    可用主分片和副本分片的总数。

relocating_shards
    正在重定位的分片数。

initializing_shards
    正在初始化的分片数。

unassigned_shards
    未分配的分片数。

delayed_unassigned_shards
    分配因超时设置而延迟的分片数。

number_of_pending_tasks
    尚未执行的集群级别更改的数量。

number_of_in_flight_fetch
    未完成的提取次数。

task_max_waiting_in_queue_millis
    自最早启动的任务等待执行以来的时间(以毫秒为单位)。

active_shards_percent_as_number
    集群中活动分片的比率,以百分比表示

es集群的设置及优先级


ES集群的设置及优先级(settings)
如果您使用多种方法配置相同的设置,Elasticsearch 会按以下优先顺序应用这些设置:
	(1)Transient setting(临时配置,集群重启后失效)
	(2)Persistent setting(持久化配置,集群重启后依旧生效)
	(3)elasticsearch.yml setting(配置文件)
	(4)Default setting value(默认设置值)


(1)查询集群的所有配置信息
GET http://10.0.0.103:9200/_cluster/settings?include_defaults=true&flat_settings=true 


(2)修改集群的配置信息
PUT http://10.0.0.103:9200/_cluster/settings
{
    "transient": {
        "cluster.routing.allocation.enable": "none"
    }
}


相关参数说明:
"cluster.routing.allocation.enable":
	"all":
		允许所有分片类型进行分配。
	"primaries"
		仅允许分配主分片。
	"new_primaries"
		仅允许新创建索引分配主分片。
	"none":
		不允许分配任何类型的分配。
		
参考链接:
	https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-get-settings.html
	https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-update-settings.html

集群状态API


集群状态API
集群状态是一种内部数据结构,它跟踪每个节点所需的各种信息,包括:
	(1)集群中其他节点的身份和属性
	(2)集群范围的设置
	(3)索引元数据,包括每个索引的映射和设置
	(4)集群中每个分片副本的位置和状态
	
	
(1)查看集群的状态信息
GET http://10.0.0.103:9200/_cluster/state


(2)只查看节点信息。
GET http://10.0.0.103:9200/_cluster/state/nodes


(3)查看nodes,version,routing_table这些信息,并且查看以"oldboyedu*"开头的所有索引
http://10.0.0.103:9200/_cluster/state/nodes,version,routing_table/oldboyedu*


推荐阅读:
	https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-state.html

集群统计API

集群统计API
Cluster Stats API 允许从集群范围的角度检索统计信息。返回基本索引指标(分片数量、存储大小、内存使
用情况)和有关构成集群的当前节点的信息(数量、角色、操作系统、jvm 版本、内存使用情况、cpu 和已安装
的插件)。


(1)查看统计信息
GET http://10.0.0.103:9200/_cluster/stats


推荐阅读:
	https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-stats.html

查看集群的分片分配情况(allocation)

集群分配解释API的目的是为集群中的分片分配提供解释。

对于未分配的分片,解释 API 提供了有关未分配分片的原因的解释。

对于分配的分片,解释 API 解释了为什么分片保留在其当前节点上并且没有移动或重新平衡到另一个节点。

当您尝试诊断分片未分配的原因或分片继续保留在其当前节点上的原因时,此 API 可能非常有用,而您可能会对此有所期待。



(1)分析teacher索引的0号分片未分配的原因。
GET http://10.0.0.101:9200/_cluster/allocation/explain
{
  "index": "teacher",
  "shard": 0,
  "primary": true
}


推荐阅读:
	https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-allocation-explain.html