健康 API
编辑健康 API
编辑一个报告 Elasticsearch 集群健康状态的 API。
描述
编辑健康 API 返回一个报告,其中包含 Elasticsearch 集群的健康状态。该报告包含一个指标列表,这些指标构成了 Elasticsearch 的功能。
每个指标都有一个健康状态:green
、unknown
、yellow
或 red
。该指标将提供一个解释和元数据,描述其当前健康状态的原因。
集群的状态由最差的指标状态控制。
如果指标的状态为非绿色,则指标结果中可能会出现一个影响列表,其中详细说明了健康问题对功能造成的负面影响。每个影响都带有严重级别、受影响的系统区域以及对系统的影响的简单描述。
某些健康指标可以确定健康问题的根本原因,并规定一组可以执行的步骤,以改善系统的健康状况。根本原因和补救步骤封装在 diagnosis
中。诊断包含一个详细说明根本原因分析的原因、一个包含修复问题的步骤的简要描述的操作、受影响资源的列表(如果适用)以及修复诊断问题的详细分步故障排除指南。
健康指标执行非绿色健康状态的根本原因分析。频繁调用时,这可能会在计算上非常昂贵。在设置 API 的自动轮询以获取健康状态时,请将 verbose
设置为 false
以禁用更昂贵的分析逻辑。
路径参数
编辑-
<indicator>
-
(可选,字符串)将返回的信息限制为特定指标。支持的指标有
-
master_is_stable
- 报告关于处理健康请求的节点所看到的 master 节点的稳定性方面的健康问题。如果在短时间内观察到足够的 master 更改,此指标将旨在诊断并报告有关其检测到的集群形成问题的有用信息。
-
shards_availability
- 报告关于分片分配的健康问题。
-
disk
- 报告由磁盘空间不足引起的健康问题。
-
ilm
- 报告与索引生命周期管理相关的健康问题。
-
repository_integrity
- 跟踪存储库完整性,并报告如果存储库损坏、未知或无效时出现的健康问题。
-
slm
- 报告与快照生命周期管理相关的健康问题。
-
shards_capacity
- 报告与集群的分片容量相关的健康问题。
-
查询参数
编辑-
verbose
- (可选,布尔值)如果为
true
,则响应包括有助于解释每个非绿色指标状态的附加详细信息。这些详细信息包括其他故障排除指标,有时还包括健康状态的根本原因分析。默认为true
。 -
size
- (可选,整数)要返回的最大受影响资源数。由于诊断可以返回多种类型的受影响资源,因此此参数将每种类型返回的资源数限制为配置的值(例如,诊断可能返回
1000
个受影响的索引和1000
个受影响的节点)。默认为1000
。
响应正文
编辑-
cluster_name
- (字符串)集群的名称。
-
status
-
(可选,字符串)集群的健康状态,基于集群中所有指标的聚合状态。如果正在请求特定指标的健康状况,则将省略此顶级状态。状态为
-
green
- 集群是健康的。
-
unknown
- 无法确定集群的健康状况。
-
yellow
- 集群的功能处于降级状态,可能需要修复以避免健康状况变为
red
。 -
red
- 集群正在经历中断或某些功能不可用。
-
-
indicators
-
(对象)有关集群指标健康状况的信息。
indicators
的属性-
<indicator>
-
(对象)包含指标的健康结果。
<indicator>
的属性-
status
-
(字符串)指标的健康状态。状态为
-
green
- 指标是健康的。
-
unknown
- 无法确定指标的健康状况。
-
yellow
- 指标的功能处于降级状态,可能需要修复以避免健康状况变为
red
。 -
red
- 指标正在经历中断或某些功能不可用。
-
-
symptom
- (字符串)提供有关当前健康状态的消息。
-
details
- (可选,对象)一个对象,其中包含有关导致当前健康状态结果的集群的附加信息。此数据是非结构化的,每个指标都会返回 一组独特的详细信息。如果将
verbose
属性设置为 false,则不会计算详细信息。 -
impacts
-
(可选,数组)如果返回非健康状态,则指标可能包含此健康状态将对集群产生的影响列表。
impacts
的属性-
severity
- (整数)此影响对集群功能的重要性。值 1 为最高严重级别,值越大表示严重级别越低。
-
description
- (字符串)对集群的影响的描述。
-
impact_areas
-
(字符串数组)此影响影响的集群功能区域。可能的值为
-
search
-
ingest
-
backup
-
deployment_management
-
-
-
diagnosis
-
(可选,数组)如果返回非健康状态,则指标可能包含诊断列表,这些诊断封装了健康问题的原因以及为解决该问题而采取的措施。如果
verbose
属性为 false,则不会计算诊断。diagnosis
的属性-
cause
- (字符串)对该健康问题的根本原因的描述。
-
action
- (字符串)应该采取哪些步骤来解决该问题的简要描述。
help_url
字段提供了更详细的解决问题的分步指南。 -
affected_resources
- (可选,对象)一个对象,其中键表示资源类型(例如,索引、分片),值是受问题影响的特定资源的列表。
-
help_url
- (字符串)指向解决健康问题的故障排除指南的链接。
-
-
-
指标详细信息
编辑健康 API 中的每个健康指标都会返回一组详细信息,以进一步解释系统的状态。这些详细信息的内容和结构对每个指标都是唯一的。
master_is_stable
编辑-
current_master
-
(对象)有关当前选举的 master 的信息。
current_master
的属性-
node_id
- (字符串)当前选举的 master 的节点 ID,如果没有选举 master,则为 null。
-
name
- (字符串)当前选举的 master 的节点名称,如果没有选举 master,则为 null。
-
-
recent_masters
-
(可选,数组)最近一段时间内被选举为 master 或被替换为 master 的节点列表。如果 master 更改的速度足够快以至于导致问题,则此字段会显示;当指标为
green
时,也会作为附加信息显示。此数组仅包括选举的 master,并且不包括没有选举 master 的时段的空条目。recent_masters
的属性-
node_id
- (字符串)最近活动的 master 节点的节点 ID。
-
name
- (字符串)最近活动的 master 节点的节点名称。
-
-
exception_fetching_history
-
(可选,对象)如果被查询的节点看到选举的 master 已多次降级,则会从最近选举的 master 节点请求 master 历史记录以进行诊断。如果获取此远程历史记录失败,则异常信息将在此详细信息字段中返回。
exception_fetching_history
的属性-
message
- (字符串)获取历史记录操作失败的异常消息。
-
stack_trace
- (字符串)获取历史记录操作失败的堆栈跟踪。
-
-
cluster_formation
-
(可选,数组)如果最近没有选举的 master 节点,则被查询的节点会尝试收集有关为什么集群无法形成的信息,或者如果集群已形成,则会尝试收集有关为什么被查询的节点无法加入集群的信息。此数组可能包含每个符合 master 条件的节点对集群形成的视图的任何条目。
cluster_formation
的属性-
node_id
- (字符串)符合 master 条件的节点的节点 ID
-
name
- (可选,字符串)符合 master 条件的节点的节点名称
-
cluster_formation_message
- (字符串)详细描述了集群形成过程出现的问题,或者如果集群已形成,则说明了此节点无法加入集群的原因。
-
shards_availability
编辑-
unassigned_primaries
- (整数)由于初始化或重新定位以外的原因而未分配的主分片数量。
-
initializing_primaries
- (整数)正在初始化或恢复的主分片数量。
-
creating_primaries
- (整数)由于最近刚创建而未分配的主分片数量。
-
creating_replicas
- (整数)由于最近刚创建而未分配的副本分片数量。
-
restarting_primaries
- (整数)由于节点关闭操作而正在重新定位的主分片数量。
-
started_primaries
- (整数)系统上处于活动状态且可用的主分片数量。
-
unassigned_replicas
- (整数)由于初始化或重新定位以外的原因而未分配的副本分片数量。
-
initializing_replicas
- (int) 正在初始化或恢复的副本分片数量。
-
restarting_replicas
- (int) 由于节点关闭操作而正在重新定位的副本分片数量。
-
started_replicas
- (int) 系统上处于活动状态且可用的副本分片数量。
磁盘
编辑-
indices_with_readonly_block
- (int) 由于集群空间不足,系统强制执行只读索引块(
index.blocks.read_only_allow_delete
)的索引数量。 -
nodes_with_enough_disk_space
- (int) 具有足够可用磁盘空间以正常运行的节点数量。
-
nodes_over_high_watermark
- (int) 磁盘空间不足且可能即将耗尽的节点数量。 它们的磁盘使用量已达到高水位线阈值。
-
nodes_over_flood_stage_watermark
- (int) 磁盘空间已耗尽的节点数量。 它们的磁盘使用量已达到洪水阶段水位线阈值。
-
unknown_nodes
- (int) 无法确定其磁盘健康状况的节点数量。
存储库完整性
编辑-
total_repositories
- (可选, int) 系统上当前配置的存储库数量。 如果没有配置存储库,则会省略此详细信息。
-
corrupted_repositories
- (可选, int) 系统上已被确定为已损坏的存储库数量。 如果没有检测到损坏的存储库,则会省略此详细信息。
-
corrupted
- (可选, 字符串数组) 如果在系统中检测到损坏的存储库,则此字段中会显示最多十个存储库的名称。 如果未找到损坏的存储库,则会省略此详细信息。
-
unknown_repositories
- (可选, int) 至少被一个节点确定为未知的存储库数量。 如果没有检测到未知的存储库,则会省略此详细信息。
-
invalid_repositories
- (可选, int) 至少被一个节点确定为无效的存储库数量。 如果没有检测到无效的存储库,则会省略此详细信息。
ILM
编辑-
ilm_status
- (string) 索引生命周期管理功能的当前状态。 取值为
STOPPED
,STOPPING
或RUNNING
。 -
policies
- (int) 系统正在管理的索引生命周期策略的数量。
-
stagnating_indices
- (int) 由索引生命周期管理管理的,停滞时间超过预期时间的索引数量。
-
stagnating_indices_per_action
-
(可选, map) 按操作分组,停滞时间超过预期时间的索引数量的摘要。
stagnating_indices_per_action
的属性-
downsample
- (int) 处于
downsample
操作中停滞的索引数量。 -
allocate
- (int) 处于
allocate
操作中停滞的索引数量。 -
shrink
- (int) 处于
shrink
操作中停滞的索引数量。 -
searchable_snapshot
- (int) 处于
searchable_snapshot
操作中停滞的索引数量。 -
rollover
- (int) 处于
rollver
操作中停滞的索引数量。 -
forcemerge
- (int) 处于
forcemerge
操作中停滞的索引数量。 -
delete
- (int) 处于
delete
操作中停滞的索引数量。 -
migrate
- (int) 处于
migrate
操作中停滞的索引数量。
-
SLM
编辑-
slm_status
- (string) 快照生命周期管理功能的当前状态。 取值为
STOPPED
,STOPPING
或RUNNING
。 -
policies
- (int) 系统正在管理的快照策略的数量。
-
unhealthy_policies
- (map) 由于连续多次调用失败而被认为不健康的策略的详细视图。
count
键表示不健康策略的数量 (int)。invocations_since_last_success
键将报告一个映射,其中不健康策略的名称是键,其对应的失败调用次数是值。
分片容量
编辑-
data
-
(map) 包含不属于冻结层的数据节点的分片当前容量信息的视图。
data
的属性-
max_shards_in_cluster
- (int) 表示集群可以容纳的最大分片数量。
-
current_used_shards
- (可选, int) 集群持有的分片总数。 仅在指标状态为
red
或yellow
时显示。
-
-
frozen
-
(map) 包含属于冻结层的数据节点的分片当前容量信息的视图。
frozen
的属性-
max_shards_in_cluster
- (int) 表示集群可以容纳的部分挂载索引的最大分片数量。
-
current_used_shards
- (可选, int) 部分挂载索引在集群中拥有的分片总数。 仅在指标状态为
red
或yellow
时显示。
-
示例
编辑resp = client.health_report() print(resp)
response = client.health_report puts response
const response = await client.healthReport(); console.log(response);
GET _health_report
该 API 返回一个响应,其中包含所有指标,无论当前状态如何。
resp = client.health_report( feature="shards_availability", ) print(resp)
response = client.health_report( feature: 'shards_availability' ) puts response
const response = await client.healthReport({ feature: "shards_availability", }); console.log(response);
GET _health_report/shards_availability
该 API 返回仅用于分片可用性指标的响应。
resp = client.health_report( verbose=False, ) print(resp)
response = client.health_report( verbose: false ) puts response
const response = await client.healthReport({ verbose: "false", }); console.log(response);
GET _health_report?verbose=false
该 API 返回包含所有运行状况指标的响应,但不会计算响应的详细信息或根本原因分析。 如果您想监控运行状况 API,并且不希望每次调用都计算额外的故障排除详细信息,这将很有帮助。