发现和集群形成设置
编辑发现和集群形成设置
编辑发现和集群形成 受以下设置影响
-
discovery.seed_hosts
-
(静态) 提供集群中主节点候选节点地址列表。也可以是单个字符串,其中地址用逗号分隔。每个地址的格式为
host:port
或host
。host
可以是通过 DNS 解析的主机名、IPv4 地址或 IPv6 地址。IPv6 地址必须用方括号括起来。如果主机名通过 DNS 解析为多个地址,Elasticsearch 将使用所有地址。DNS 查找受 JVM DNS 缓存 的影响。如果未给出port
,则会按以下顺序检查设置以确定端口-
transport.profiles.default.port
-
transport.port
如果这两个设置均未设置,则默认端口为
9300
。discovery.seed_hosts
的默认值为["127.0.0.1", "[::1]"]
。请参阅discovery.seed_hosts
。 -
-
discovery.seed_providers
- (静态) 指定要使用哪种类型的 种子主机提供程序 来获取用于启动发现过程的种子节点的地址。默认情况下,它是 基于设置的种子主机提供程序,它从
discovery.seed_hosts
设置获取种子节点地址。 -
discovery.type
- (静态) 指定 Elasticsearch 是否应形成多节点集群。默认为
multi-node
,这意味着 Elasticsearch 在形成集群时会发现其他节点,并允许其他节点稍后加入集群。如果设置为single-node
,Elasticsearch 将形成单节点集群并抑制cluster.publish.timeout
设置的超时。有关何时可能使用此设置的更多信息,请参阅 单节点发现。 -
cluster.initial_master_nodes
- (静态) 设置全新集群中主节点候选节点的初始集。默认情况下,此列表为空,这意味着此节点期望加入已启动的集群。集群形成后,请移除此设置,并且不要为此集群再次设置它。不要在非主节点候选节点上配置此设置。不要在加入现有集群的节点上配置此设置。不要在重新启动的节点上配置此设置。在执行完全集群重新启动时不要配置此设置。请参阅
cluster.initial_master_nodes
。
专家设置
编辑发现和集群形成还受以下专家级设置的影响,尽管不建议将任何这些设置更改为非默认值。
如果调整这些设置,则您的集群可能无法正确形成,或者可能变得不稳定或无法容忍某些故障。
-
discovery.cluster_formation_warning_timeout
- (静态) 设置节点在记录集群未形成的警告之前尝试形成集群的时间长度。默认为
10s
。如果在discovery.cluster_formation_warning_timeout
过期后集群尚未形成,则节点将记录一条以master not discovered
开头的警告消息,该消息描述了发现过程的当前状态。 -
discovery.find_peers_interval
- (静态) 设置节点在尝试另一轮发现之前等待的时间长度。默认为
1s
。 -
discovery.probe.connect_timeout
- (静态) 设置尝试连接到每个地址时等待的时间长度。默认为
30s
。 -
discovery.probe.handshake_timeout
- (静态) 设置尝试通过握手识别远程节点时等待的时间长度。默认为
30s
。 -
discovery.request_peers_timeout
- (静态) 设置节点在再次询问其对等节点后等待多长时间,然后再认为请求已失败。默认为
3s
。 -
discovery.find_peers_warning_timeout
- (静态) 设置节点在开始记录详细消息描述连接尝试失败的原因之前尝试发现其对等节点的时间长度。默认为
3m
。 -
discovery.seed_resolver.max_concurrent_resolvers
- (静态) 指定在解析种子节点的地址时要执行多少个并发 DNS 查找。默认为
10
。 -
discovery.seed_resolver.timeout
- (静态) 指定在解析种子节点的地址时执行的每个 DNS 查找等待的时间长度。默认为
5s
。 -
cluster.auto_shrink_voting_configuration
- (动态) 控制 投票配置 是否自动剔除已离开的节点,只要它仍然包含至少 3 个节点。默认值为
true
。如果设置为false
,则投票配置永远不会自动缩减,您必须使用 投票配置排除 API 手动移除已离开的节点。 -
cluster.election.back_off_time
- (静态) 设置每次选举失败后在选举前等待的上限增加的量。请注意,这是线性回退。默认为
100ms
。将此设置从默认值更改可能会导致您的集群无法选举主节点。 -
cluster.election.duration
- (静态) 设置每个选举允许花费的时间长度,在此时间长度之后,节点将认为选举已失败并安排重试。默认为
500ms
。将此设置从默认值更改可能会导致您的集群无法选举主节点。 -
cluster.election.initial_timeout
- (静态) 设置节点在最初或在选出的主节点失败后尝试第一次选举之前等待的时间长度的上限。默认为
100ms
。将此设置从默认值更改可能会导致您的集群无法选举主节点。 -
cluster.election.max_timeout
- (静态) 设置节点在尝试第一次选举之前等待的时间长度的最大上限,以便长时间持续的网络分区不会导致选举过于稀疏。默认为
10s
。将此设置从默认值更改可能会导致您的集群无法选举主节点。 -
cluster.fault_detection.follower_check.interval
- (静态) 设置选出的主节点在对集群中每个其他节点执行跟随者检查之间等待的时间长度。默认为
1s
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.fault_detection.follower_check.timeout
- (静态) 设置选出的主节点在等待跟随者检查的响应之前等待的时间长度,然后再认为它已失败。默认为
10s
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.fault_detection.follower_check.retry_count
- (静态) 设置每个节点必须发生多少次连续的跟随者检查失败,然后选出的主节点才认为该节点存在故障并将其从集群中移除。默认为
3
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.fault_detection.leader_check.interval
- (静态) 设置每个节点在检查选出的主节点之间等待的时间长度。默认为
1s
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.fault_detection.leader_check.timeout
- (静态) 设置每个节点在等待来自选出的主节点的领导者检查响应之前等待的时间长度,然后再认为它已失败。默认为
10s
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.fault_detection.leader_check.retry_count
- (静态) 设置必须发生多少次连续的领导者检查失败,然后节点才认为选出的主节点存在故障并尝试查找或选举新的主节点。默认为
3
。将此设置从默认值更改可能会导致您的集群变得不稳定。 -
cluster.follower_lag.timeout
- (静态) 设置主节点等待接收来自滞后节点的集群状态更新确认的时间长度。默认值为
90s
。如果节点在此期间内未成功应用集群状态更新,则认为它已失败并将其从集群中移除。请参阅 发布集群状态。 -
cluster.max_voting_config_exclusions
- (动态) 设置任何时间投票配置排除的最大数量限制。默认值为
10
。请参阅 在您的集群中添加和移除节点。 -
cluster.publish.info_timeout
- (静态) 设置主节点在等待每个集群状态更新完全发布到所有节点之前等待的时间长度,然后再记录一条消息,指示某些节点响应速度缓慢。默认值为
10s
。 -
cluster.publish.timeout
- (静态) 设置主节点等待每个集群状态更新完全发布到所有节点的时间长度,除非
discovery.type
设置为single-node
。默认值为30s
。请参阅 发布集群状态。 -
cluster.discovery_configuration_check.interval
- (静态) 设置一些检查的间隔,这些检查将记录有关不正确的发现配置的警告。默认值为
30s
。 -
cluster.join_validation.cache_timeout
- (静态) 当节点请求加入集群时,选出的主节点会向其发送最近集群状态的副本,以检测可能阻止新节点加入集群的某些问题。主节点会缓存它发送的状态,并在另一个节点很快加入集群时使用缓存的状态。此设置控制主节点在清除此缓存之前等待的时间长度。默认为
60s
。
-
cluster.no_master_block
-
(动态) 指定在集群中没有活动主节点时拒绝哪些操作。此设置有三个有效值
-
all
- 拒绝节点上的所有操作(读取和写入操作)。这也适用于 API 集群状态读取或写入操作,例如获取索引设置、更新映射和集群状态 API。
-
write
- (默认) 拒绝写入操作。读取操作成功,基于最后已知的集群配置。这种情况可能导致部分读取陈旧数据,因为此节点可能与集群的其余部分隔离。
-
metadata_write
- 仅拒绝元数据写入操作(例如映射更新、路由表更改),但常规索引操作继续工作。读取和写入操作成功,基于最后已知的集群配置。这种情况可能导致部分读取陈旧数据,因为此节点可能与集群的其余部分隔离。
cluster.no_master_block
设置不适用于基于节点的 API(例如,集群统计信息、节点信息和节点统计信息 API)。对这些 API 的请求不会被阻止,并且可以在任何可用的节点上运行。- 为了使集群完全运行,它必须有一个活动的主节点。
-
-
monitor.fs.health.enabled
- (动态) 如果为
true
,则节点会定期运行 文件系统健康检查。默认为true
。 -
monitor.fs.health.refresh_interval
- (静态) 相邻 文件系统健康检查 之间的间隔。默认为
2m
。 -
monitor.fs.health.slow_path_logging_threshold
- (动态) 如果 文件系统健康检查 所用时间超过此阈值,则 Elasticsearch 会记录警告。默认为
5s
。