发现和集群形成设置

编辑

发现和集群形成 受以下设置影响

discovery.seed_hosts

(静态) 提供集群中符合主节点资格的节点的地址列表。也可以是包含逗号分隔地址的单个字符串。每个地址的格式为 host:porthosthost 可以是通过 DNS 解析的主机名、IPv4 地址或 IPv6 地址。IPv6 地址必须用方括号括起来。如果主机名通过 DNS 解析为多个地址,则 Elasticsearch 会使用所有这些地址。DNS 查找受 JVM DNS 缓存的影响。如果未给出 port,则会按顺序检查以下设置来确定端口

  1. transport.profiles.default.port
  2. transport.port

如果以上两个都没有设置,则默认端口为 9300discovery.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
(静态) 设置主节点等待接收来自滞后节点的集群状态更新确认的时间。默认值为 90 秒。如果节点在此时间内未成功应用集群状态更新,则会被视为失败并从集群中删除。请参阅发布集群状态
cluster.max_voting_config_exclusions
(动态) 设置在任何时候投票配置排除的最大数量。默认值为 10。请参阅在集群中添加和删除节点
cluster.publish.info_timeout
(静态) 设置主节点在将每个集群状态更新完全发布到所有节点之前,等待多长时间,以便记录一条消息,指示某些节点的响应速度较慢。默认值为 10 秒
cluster.publish.timeout
(静态) 设置主节点在将每个集群状态更新完全发布到所有节点之前等待多长时间,除非 discovery.type 设置为 single-node。默认值为 30 秒。请参阅发布集群状态
cluster.discovery_configuration_check.interval
(静态) 设置某些检查的间隔,这些检查会记录有关不正确的发现配置的警告。默认值为 30 秒
cluster.join_validation.cache_timeout
(静态) 当节点请求加入集群时,选定的主节点会向其发送最近集群状态的副本,以检测可能阻止新节点加入集群的某些问题。主节点缓存其发送的状态,如果另一个节点在此之后不久加入集群,则使用缓存的状态。此设置控制主节点等待清除此缓存的时间。默认为 60 秒
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
(静态) 连续的文件系统健康检查之间的间隔。默认为 2 分钟
monitor.fs.health.slow_path_logging_threshold
(动态) 如果文件系统健康检查花费的时间超过此阈值,则 Elasticsearch 会记录警告。默认为 5 秒